Da sich die Proxy-Einstellungen zwischen der Firewall des Unternehmens und der direkten Verbindung zum Internet auf Reisen oder zu Hause unterscheiden, richten Sie einen Forward-Proxy lokal in Apache2 ein und ändern Sie ihn auf einmal mit den Forward-Proxy-Einstellungen. Alle Proxy-Einstellungen jedes Programms legen den lokalen Proxy fest. Die Umgebung, die ich benutze, ist Ubuntu 20.10.
Es wird davon ausgegangen, dass Apache2 installiert ist und ausgeführt wird.
Aktivieren Sie das Modul für den Proxy.
sudo a2enmod proxy proxy_http proxy_ftp proxy_ssl proxy_connect
Basierend auf / etc / apache2 / mods-available / proxy.conf
wird es in / etc / apache2 / sites-available /
vorbereitet.
Passen Sie die Portnummer, die Intranet-Proxy-Adresse (ProxyRemote-Einstellung) und die Direktzugriffsadresse (NoProxy-Einstellung) je nach Umgebung an. Diesmal habe ich die Portnummer auf 8888 gesetzt.
/etc/apache2/sites-available/proxy.conf
<IfModule mod_proxy.c>
#Angemessene freie Portnummer
Listen 8888
#Passen Sie die Listen-Einstellung an die Portnummer an
<VirtualHost *:8888>
# If you want to use apache2 as a forward proxy, uncomment the
# 'ProxyRequests On' line and the <Proxy *> block below.
# WARNING: Be careful to restrict access inside the <Proxy *> block.
# Open proxy servers are dangerous both to your network and to the
# Internet at large.
#
# If you only want to use apache2 as a reverse proxy/gateway in
# front of some web application server, you DON'T need
# 'ProxyRequests On'.
ProxyRequests On
SSLProxyEngine On
#AllowCONNECT 443
#CustomLog ${APACHE_LOG_DIR}/proxy.log combined
<Proxy *>
AddDefaultCharset off
Require all denied
Require local
</Proxy>
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
# Set to one of: Off | On | Full | Block
#ProxyVia Off
# Comment out ProxyRemote if conecting to the Internet directly.
#ProxyRemote * http://proxy.mycompany.com:8888
#NoProxy 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 .mygroup.mycompany.com
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Nur die ProxyRemote-Einstellung ist als "intranet.conf" unabhängig, sodass sie problemlos umgeschaltet werden kann. Legen Sie ProxyRemote als Proxy innerhalb des Unternehmens fest, der alle Anforderungen auslöst.
/etc/apache2/sites-available/intranet.conf
<IfModule mod_proxy.c>
# Comment out ProxyRemote if conecting to the Internet directly.
ProxyRemote * http://proxy.mycompany.com:8888
NoProxy 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 .mygroup.mycompany.com
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
sudo a2ensite proxy intranet
sudo systemctrl restart apache2
Stellen Sie in den "Einstellungen" von GNOME -> "Netzwerk" -> "Netzwerkproxy" den Proxy auf "Manuell" ein und geben Sie "localhost" und "8888" für HTTP / HTTPS / FTP an.
Festlegen systemweiter Umgebungsvariablen.
bash:/etc/profile.d/proxy.sh
#!/bin/bash
export HTTP_PROXY="http://localhost:8888"
export HTTPS_PROXY="http://localhost:8888"
export FTP_PROXY="http://localhost:8888"
apt
passende Einstellungen. 90 wurde angemessen entschieden.
config:/etc/apt/apt.conf.d/90proxy
// Configuration for Proxy
Acquire {
ftp::proxy "http://localhost:8888/";
http::proxy "http://localhost:8888/";
https::proxy "http://localhost:8888/";
}
snapd
Snapd-Einstellungen.
sudo systemctl edit snapd
Der Editor wird geöffnet. Speichern Sie ihn daher mit den folgenden Inhalten.
[Service]
Environment=http_proxy=http://localhost:8888
Environment=https_proxy=http://localhost:8888
Starten Sie den snapd-Daemon neu.
sudo systemctl restart snapd
~/.ssh/config
#
# Configuration for SSH
# ~/.ssh/config
#
Host github.com
User MyUserName
HostName ssh.github.com
Port 443
ProxyCommand nc -X connect -x localhost:8888 %h %p
Wenn Sie es einstellen müssen, setzen Sie es auf <http: // localhost: 8888>. Es mag Legacy sein, aber es ist problematisch, für jedes Programm eine Proxy-Einstellung zu haben.
Es ist in Ordnung, ein einfaches Skript zu schreiben, aber ich wechsle nicht sehr oft und es ist nicht viel Arbeit, also habe ich beschlossen, zwei Befehle zu drücken.
sudo a2ensite intranet
sudo systemctl reload apache2
sudo a2dissite intranet
sudo systemctrl reload apache2
Ich habe ein einfaches Skript erstellt.
~/bin/proxy.sh
#!/bin/bash
# Enable/Disable ProxyPass
if [ $# -eq 0 ]; then
a2query -s intranet
exit
fi
case "${1}" in
on)
echo "intranet"
a2ensite intranet > /dev/null
;;
off)
echo "the Internet"
a2dissite intranet > /dev/null
;;
*)
echo "$0 [on|off]"
exit
esac
systemctl reload apache2
Proxy aktiviert
sudo ~/bin/proxy.sh on
Proxy deaktiviert
sudo ~/bin/proxy.sh off
Bestätigung (sudo
wird nicht nur zur Bestätigung benötigt)
~/bin/proxy.sh
Recommended Posts