Risposte:
Perché le preferenze di sistema -> rete -> (seleziona una rete sul lato sinistro della finestra e scegli Avanzate in basso a destra) -> Proxy (scheda in alto) che funzionano per te?
Mentre l'impostazione delle impostazioni proxy a livello di sistema è un buon inizio, potresti anche voler esaminare l'uso di iptables per assicurarti che tutto il traffico passi attraverso il proxy. Alcune applicazioni non utilizzano le impostazioni di configurazione del sistema (tra cui Firefox), pertanto è indispensabile personalizzare le regole per non consentire connessioni dirette e instradare solo il traffico attraverso il proxy.
EDIT: Mentre uso personalmente le iptables
regole per gestire il potenziale "leakage" dalla mia VPN, in realtà mi sbagliavo originariamente pensando che iptables potesse funzionare direttamente con un proxy socks. Avrai bisogno di qualcosa come tun2socks per creare un'interfaccia tunnel virtuale (come l'uso di vpn).
Successivamente, è possibile impostare uno script iptables simile al seguente:
#!/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
Naturalmente vorrai che questo script rifletta la tua particolare rete (ad esempio, se stai usando qualcosa come una sottorete 192.168.0.0/24, modifica di conseguenza). Inoltre, è strettamente basato su uno script che utilizzo con una VPN, quindi, tutte le menzioni MYVPN o VPN - mentre non stai utilizzando una VPN, tun2socks
si comportano efficacemente come te, quindi tutto dovrebbe funzionare allo stesso modo.
E un ringraziamento speciale a questa risposta su Unix.SE per avermi guidato nella giusta direzione per rispondere a questa.
EDIT again: Quindi, sembra che OS X lo farebbe ipfw
piuttosto che con iptables (scusate, sono principalmente una persona Linux, e pensavo che OS X avesse iptables disponibili). Esistono equivalenze tali che la sceneggiatura può essere adattata, alcune delle quali sono indicate qui . man ipfw
dovrebbe metterti direttamente sulla sintassi. Lascerò lo iptables
script originale come modello in modo da poter vedere cosa sta succedendo concettualmente. WaterRoof sembra che possa aiutare a rendere l'utilizzo ipfw
un po 'più user friendly; potrebbero essere disponibili anche altri front-end.
tun2socks
non richiede SSH e un server; l'esempio sul loro sito è per usare SSH per creare il proxy SOCKS in primo luogo. Se hai già un proxy SOCKS, non è del tutto necessario. E sì, è iptables
stato un modo sbagliato da parte mia. OS X, essendo basato su BSD, usa ipfw
piuttosto che iptables
, che è per il kernel Linux. Per quanto sia complicato, potresti essere in grado di trovare un frontend che lo configurerà per te in un modo più facile da usare, ma non ho esperienza su questo argomento. Essere complicati a un livello basso ha comunque molto a che fare con il motivo per cui è così capace per il lavoro.
ipfw
più facilmente.
Se riesci a impostare un server SSH, lo sshuttle gratuito può eseguire il tunneling di tutto il traffico TCP attraverso la connessione, facendo funzionare tutto il firewall per te.
Per inoltrare tutto il traffico TCP e le richieste DNS a un server SSH remoto, il comando è abbastanza semplice:
sshuttle --dns -vr ssh_server 0/0
Oltre a TCP e DNS, sshuttle non inoltra altre richieste come UDP, ICMP, ping ecc.
Per ulteriori informazioni ed esempi vedere l'articolo Uso di Sshuttle nel lavoro quotidiano .
Sono disponibili numerose soluzioni. Nessuno di questi è semplice come modificare alcune impostazioni: il motivo è che questo sconfigge l'intero obiettivo del proxy, ovvero quello di instradare un'applicazione specifica attraverso un percorso diverso (a fini di invisibilità, sicurezza, protezione dell'identità ...) lasciando accedi al percorso locale (apparentemente più veloce).
Alcuni devono essere scartati a causa delle tue esigenze, ma lasciatemi solo menzionarli per completezza: una VPN, un tunnel SSH, l'uso di pfctl (il filtro pacchetti e l'interfaccia di controllo NAT). Inoltre, Tor, sebbene certamente non progettato per l'uso che hai in mente, ti consente di instradare tutto il traffico attraverso i loro proxy.
Tutte queste applicazioni sono gratuite e richiedono al massimo un po 'di ingegnosità per farle funzionare. D'altra parte, ci sono domande a pagamento, in cui la maggior parte del lavoro è stata eseguita da qualcun altro, anche se a un prezzo.
ti consente di reindirizzare le connessioni di rete del tuo computer tramite server proxy. Puoi indicare a ProxyCap quali applicazioni si collegheranno a Internet tramite un proxy e in quali circostanze. Questo viene fatto attraverso un'interfaccia intuitiva, senza la necessità di riconfigurare nessuno dei tuoi client Internet
In alternativa, c'è Proxifier per Mac (attenzione: supporta solo fino a 10.8). quale
consente alle applicazioni di rete che non supportano il funzionamento tramite server proxy di operare attraverso un proxy SOCKS o HTTPS e catene.