Antworten:
Warum funktionieren die Systemeinstellungen -> Netzwerk -> (Wählen Sie ein Netzwerk auf der linken Seite des Fensters und wählen Sie unten rechts Erweitert) -> Proxies (Registerkarte oben) nicht für Sie?
Das Festlegen der systemweiten Proxy-Einstellungen ist zwar ein guter Anfang, Sie können jedoch auch die Verwendung von iptables prüfen, um sicherzustellen, dass der gesamte Datenverkehr über den Proxy geleitet wird. Einige Anwendungen verwenden keine systemweiten Konfigurationseinstellungen (darunter auch Firefox). Daher müssen Sie Ihre Regeln unbedingt so anpassen, dass keine direkten Verbindungen zugelassen werden und nur der Datenverkehr über den Proxy geleitet wird.
BEARBEITEN: Während ich persönlich iptables
Regeln verwende, um potenzielle "Leckagen" aus meinem VPN zu verwalten, habe ich mich ursprünglich geirrt zu glauben, dass iptables direkt mit einem Socken-Proxy funktionieren könnten. Sie benötigen so etwas wie tun2socks , um eine virtuelle Tunnelschnittstelle zu erstellen (z. B. die Verwendung von VPN).
Anschließend können Sie ein iptables-Skript einrichten, das dem folgenden ähnelt:
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
# name of primary network interface (before tunnel)
PRIMARY=eth0
# gateway ip address (before tunnel - adsl router ip address)
# automatically determine the ip from the default route
GATEWAY=`route -n | grep $PRIMARY | egrep "^0\.0\.0\.0" | tr -s " " | cut -d" " -f2`
# provided by tun2socks: interface name
TUNNEL=tun0
# If you'd like, putting the tun2socks command here is a good idea. It may or may not be necessary to do so, but either way is more convenient than running the two commands separately.
# iptables rules - important!
LOCAL_NET=192.168.0.0/16
#LOCAL_NET=$GATEWAY
# Flush all previous filter rules, you might not want to include this line if you already have other rules setup
iptables -t filter --flush
iptables -t filter -X MYVPN
iptables -t filter -N MYVPN
# Add local routes to routing table
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -host 23.21.163.237 dev eth0 gw 192.168.1.1
# Add ssh routes to routing table
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1
# Exceptions for local traffic & vpn server
iptables -t filter -A MYVPN -o lo -j RETURN
iptables -t filter -A MYVPN -o ${TUNNEL} -j RETURN
iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
iptables -t filter -A MYVPN --dst $LOCAL_NET -j RETURN
iptables -t filter -A MYVPN --dst ${SERVER} -j RETURN
iptables -t filter -A MYVPN --dst ${VPN_SERVER} -j RETURN
# Add extra local nets here as necessary
iptables -t filter -A MYVPN -j DROP
# MYVPN traffic leaving this host:
iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
iptables -t filter -A OUTPUT -p icmp -j MYVPN
iptables -t filter -A OUTPUT -p udp -j MYVPN
Natürlich möchten Sie, dass dieses Skript Ihr spezielles Netzwerk widerspiegelt (dh wenn Sie so etwas wie ein 192.168.0.0/24 Subnetz verwenden, passen Sie es entsprechend an). Außerdem basiert es sehr eng auf einem Skript, das ich mit einem VPN verwende. Daher erwähnen alle Erwähnungen MYVPN oder VPN - obwohl Sie kein VPN verwenden, tun2socks
verhält es sich effektiv so, als ob Sie es wären, sodass alles gleich funktionieren sollte.
Ein besonderer Dank geht an diese Antwort bei Unix.SE, die mich in die richtige Richtung gelenkt hat, um diese zu beantworten.
Nochmals BEARBEITEN: Es sieht also so aus, als würde OS X dies tatsächlich mit ipfw
iptables tun (sorry, ich bin hauptsächlich eine Linux-Person und dachte, OS X hätte iptables verfügbar). Es gibt Äquivalenzen, so dass das Skript angepasst werden kann, von denen einige hier hervorgehoben werden . man ipfw
sollte Sie direkt auf die Syntax setzen. Ich werde das ursprüngliche iptables
Skript als Vorlage belassen, damit Sie sehen können, was konzeptionell vor sich geht. WaterRoof scheint dabei zu helfen, die Verwendung ipfw
etwas benutzerfreundlicher zu gestalten. Möglicherweise sind auch andere Frontends verfügbar.
tun2socks
benötigt kein SSH und keinen Server; Das Beispiel auf ihrer Site ist die Verwendung von SSH, um den SOCKS-Proxy zu erstellen. Wenn Sie bereits einen SOCKS-Proxy haben, ist dies völlig unnötig. Und ja, iptables
war meinerseits ein falscher Weg. OS X, das auf BSD basiert, verwendet ipfw
eher als iptables
, was für den Linux-Kernel ist. Da es kompliziert ist, können Sie möglicherweise ein Frontend finden, das es auf einfachere Weise für Sie einrichtet, aber ich habe keine Erfahrung in dieser Angelegenheit. Auf niedrigem Niveau kompliziert zu sein, hat sowieso viel damit zu tun, warum es für den Job so fähig ist.
ipfw
erleichtert.
Wenn Sie sich einen SSH-Server einrichten können, kann das kostenlose sshuttle den gesamten TCP-Verkehr über die Verbindung tunneln und die gesamte Firewall-Arbeit für Sie erledigen .
Der Befehl ist einfach genug, um den gesamten TCP-Verkehr und die DNS-Anforderungen an einen Remote-SSH-Server weiterzuleiten:
sshuttle --dns -vr ssh_server 0/0
Neben TCP und DNS leitet sshuttle keine anderen Anfragen wie UDP, ICMP, Ping usw. weiter.
Weitere Informationen und Beispiele finden Sie im Artikel Verwenden von Sshuttle in der täglichen Arbeit .
Es gibt eine Reihe von Lösungen. Keiner von ihnen ist so einfach wie das Ändern einiger Einstellungen: Der Grund dafür ist, dass dies das gesamte Ziel des Proxys zunichte macht, nämlich das Weiterleiten einer bestimmten Anwendung über einen anderen Weg (zum Zwecke der Tarnung, Sicherheit, des Identitätsschutzes ...) beim Verlassen Sie greifen auf die (angeblich schnellere) lokale Route zu.
Einige sind aufgrund Ihrer Anforderungen zu verwerfen, aber ich möchte sie der Vollständigkeit halber erwähnen: ein VPN, ein SSH-Tunnel, die Verwendung von pfctl (Paketfilter und NAT-Steuerungsschnittstelle). Obwohl Tor sicherlich nicht für die beabsichtigte Verwendung konzipiert ist, können Sie den gesamten Datenverkehr über deren Proxys leiten.
Alle diese Anwendungen sind kostenlos und erfordern höchstens etwas Einfallsreichtum, um sie zum Laufen zu bringen. Auf der anderen Seite gibt es kostenpflichtige Anwendungen, bei denen der größte Teil der Arbeit von jemand anderem erledigt wurde, allerdings zu einem Preis.
ermöglicht es Ihnen, die Netzwerkverbindungen Ihres Computers über Proxyserver umzuleiten. Sie können ProxyCap mitteilen, welche Anwendungen über einen Proxy eine Verbindung zum Internet herstellen und unter welchen Umständen. Dies erfolgt über eine benutzerfreundliche Oberfläche, ohne dass Sie einen Ihrer Internet-Clients neu konfigurieren müssen
Alternativ gibt es Proxifier für Mac (Vorsicht: unterstützt nur bis 10.8). welche
Ermöglicht Netzwerkanwendungen, die das Arbeiten über Proxyserver nicht unterstützen, den Betrieb über einen SOCKS- oder HTTPS-Proxy und Ketten.