Відповіді:
Чому системні налаштування -> мережа -> (Виберіть мережу в лівій частині вікна та виберіть Додатково внизу праворуч) -> Проксі (вкладка вгорі) не працює для вас?
Якщо ви можете встановити собі SSH-сервер, то безкоштовна перекладка може тунелювати весь трафік TCP через з'єднання, виконуючи всю роботу брандмауера за вас.
Для пересилання всіх запитів TCP-трафіку та DNS на віддалений сервер SSH команда досить проста:
sshuttle --dns -vr ssh_server 0/0
Крім TCP та DNS, sshuttle не пересилає інші запити, такі як UDP, ICMP, ping тощо.
Для отримання додаткової інформації та прикладів дивіться статтю Використання Sshuttle у щоденній роботі .
Хоча налаштування системних налаштувань проксі-сервера є гарним початком, ви також можете вивчити використання iptables, щоб переконатися, що весь трафік проходить через проксі. Деякі програми не використовують налаштування конфігурації для всіх систем (Firefox серед них), і тому обов'язково потрібно налаштувати свої правила не допускати прямих з'єднань і лише маршрутизувати трафік через проксі.
EDIT: Хоча я особисто використовую iptables
правила для управління можливим "витоком" з моєї VPN, я фактично помилявся, думаючи, що iptables можуть працювати безпосередньо з проксі-носками. Вам знадобиться щось на зразок tun2socks , щоб зробити віртуальний інтерфейс тунелю (наприклад, використання vpn ).
Після цього ви можете встановити сценарій iptables, подібний до наступного:
#!/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
Звичайно, ви хочете, щоб цей скрипт відображав вашу конкретну мережу (тобто, якщо ви використовуєте щось на зразок підмережі 192.168.0.0/24, відрегулюйте відповідно). Крім того, він дуже тісно базується на сценарії, який я використовую з VPN, отже, всі згадує MYVPN або VPN - хоча ви не використовуєте VPN, tun2socks
ефективно веде себе так, як ніби є, тому все повинно працювати так само.
І особлива подяка за цю відповідь на Unix.SE за те, що я направляв мене в правильному напрямку, щоб відповісти на цю.
Знову редагуйте: Отже, схоже, що OS X насправді робив би це, ipfw
а не iptables (вибачте, я здебільшого людина з Linux, і думав, що в OS X є iptables). Є еквіваленти, такі, що сценарій можна адаптувати, деякі з яких вказані тут . man ipfw
має встановити вас прямо на синтаксис. Я залишу оригінальний iptables
сценарій як шаблон, щоб ви могли побачити, що відбувається концептуально. WaterRoof видається так, що це може допомогти зробити ipfw
трохи більш зручним для користувачів; можуть бути доступні й інші передні кінці.
tun2socks
не вимагає SSH та сервера; приклад на їхньому сайті - це використання SSH для створення проксі-сервера SOCKS. Якщо у вас вже є проксі-сервер SOCKS, це зовсім непотрібно. І так, iptables
був неправильний шлях з мого боку. OS X, базуючись на BSD, використовує, ipfw
а не те iptables
, що для ядра Linux. Що стосується того, що це ускладнюється, ви, можливо, зможете знайти інтерфейс, який налаштує його вам простіше у використанні, але я не маю досвіду з цього приводу. Це ускладнення на низькому рівні все одно має багато спільного з тим, чому він такий працездатний.
ipfw
.
Існує ряд рішень. Жодна з них не є такою простою, як зміна деяких налаштувань: причина полягає в тому, що це перемагає всю ціль проксі-доступу, а саме - прокласти певний конкретний додаток іншим маршрутом (для цілей схованості, безпеки, захисту особи ...), поки виїжджаючи Ви отримуєте доступ до (нібито швидшого) місцевого маршруту.
Деякі з них слід відкинути через ваші вимоги, але дозвольте мені лише згадати їх заради повноти: VPN, тунель SSH, використання pfctl (фільтр пакетів та інтерфейс управління NAT). Крім того, Tor, хоча, звичайно, не призначений для використання, яке ви маєте на увазі, дозволяє вам прокладати весь трафік через їхні проксі.
Усі ці програми безкоштовні та потребують принаймні деякої винахідливості, щоб змусити їх працювати. З іншого боку, є додатки на оплату праці, де більшу частину роботи провів хтось інший, хоча і за ціною.
дозволяє перенаправляти мережеві з'єднання комп'ютера через проксі-сервери. Ви можете повідомити ProxyCap, які програми підключатимуться до Інтернету через проксі і за яких обставин. Це робиться через зручний інтерфейс, не потребуючи перенастроювання будь-якого з ваших Інтернет-клієнтів
Крім того, існує Proxifier для Mac (обережно: підтримується лише 10,8). котрий
дозволяє мережевим програмам, які не підтримують роботу через проксі-сервери, працювати через проксі-ланцюги та ланцюги SOCKS або HTTPS.