Как я могу убедиться, что весь TCP-трафик моего Mac проходит через прокси-сервер SOCKS5?

У меня есть SOCKS прокси с портом.

Как я могу заставить свой MAC использовать его? Какие параметры можно изменить в разделе Параметры сети?

17
задан Alex
24.11.2022 16:49 Количество просмотров материала 3161
Распечатать страницу

5 ответов

Почему Системные настройки - > Сеть - > (выберите сеть в левой части окна и выберите дополнительно в правом нижнем углу) -> Прокси (вкладка вверху) работает для вас?

enter image description here

3
отвечен Everett 2022-11-26 00:37

в то время как Установка системных настроек прокси является хорошим началом, вы также можете посмотреть на использование iptables, чтобы убедиться, что весь трафик проходит через прокси. Некоторые приложения не используют общесистемные настройки конфигурации (в том числе Firefox), поэтому крайне важно настроить правила таким образом, чтобы не разрешать прямые соединения и только маршрутизировать трафик через прокси-сервер.

EDIT: в то время как я лично использую iptables правила для управления потенциальной "утечкой" из моего VPN, я был на самом деле первоначально ошибочно думать, что iptables может работать с прокси-сервером socks напрямую. Вам понадобится что-то вроде 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 для того, чтобы направить меня в правильном направлении, чтобы ответить на этот вопрос.

EDIT again: Итак, похоже, OS X на самом деле будет делать это с ipfw, а не iptables (извините, я в основном человек linux, и думал, что в OS X были доступны iptables). Есть такие эквивалентности, что сценарий может быть адаптирован, некоторые из которых указаны здесь. man ipfw должны установить вас прямо на синтаксис. Я оставлю оригинал iptables script up в качестве шаблона, чтобы вы могли видеть, что происходит концептуально. WaterRoof похоже, что это может помочь сделать использование ipfw немного более дружественное; другие начала могут быть доступны также.

5
отвечен 0xDAFACADE 2022-11-26 02:54

Если вы можете установить себе SSH сервер, то свободный sshuttle может туннелировать весь TCP-трафик через соединение, выполняя всю работу брандмауэра за вас.

для пересылки всего TCP трафика и DNS запросов на удаленный SSH сервер, команда достаточно проста:

sshuttle --dns -vr ssh_server 0/0

кроме TCP и DNS, sshuttle не пересылает другие запросы, такие как UDP, ICMP, ping и т.д.

дополнительные сведения и примеры см. В статье используя Sshuttle в повседневной работе.

4
отвечен harrymc 2022-11-26 05:11

существует несколько решений. Ни один из них не так прост, как изменение некоторых настроек: причина в том, что это побеждает всю цель проксирования, которая заключается в маршрутизации некоторых specific приложения через другой маршрут (в целях скрытности, безопасности, защиты личности...) оставляя доступ к (якобы быстрее) местный маршрут.

Некоторые быть сброшенным из-за ваших требований, но позвольте мне как раз упомянуть их ради комплектность: VPN, SSH туннель, использование pfctl (пакетный фильтр и интерфейс управления NAT). Кроме того, Tor, хотя и не предназначен для использования, которое вы имеете в виду, позволяет направлять весь трафик через их прокси.

все эти приложения бесплатны и требуют не более некоторой изобретательности, чтобы заставить их работать. С другой стороны, есть платные приложения, где большая часть работы была сделана кем-то другим, хотя и по цене.

Proxycap

позволяет перенаправлять сетевые подключения вашего компьютера через прокси-серверы. Вы можете указать ProxyCap, какие приложения будут подключаться к Интернету через прокси и при каких обстоятельствах. Это сделано через дружественный интерфейс, без потребности заново скомпоновать любой из ваших клиентов Интернета

кроме того, есть Proxifier для Mac (осторожно: поддерживает только до 10.8). какой

позволяет сетевым приложениям, которые не поддерживают работу через прокси-серверы, работать через SOCKS или HTTPS прокси и цепочки.

0
отвечен MariusMatutiae 2022-11-26 07:28

перейти в Настройки - > Сеть посмотреть, если есть блокировка на что, нажмите на него и дать пароль учетной записи системного администратора. Затем дополнительно - > Прокси - > проверить на Socks прокси. Дайте настройки прокси.

0
отвечен Saikrishna 2022-11-26 09:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

mac
macos
osx-mavericks
proxy
socks-proxy
Вверх