Рейтинг:0

Направить весь трафик с одного IP-адреса на другой IP-адрес и порт

флаг cn

У меня есть UDM PRO 192.168.1.1 с ShadowSocks на 192.168.1.1:1080.

Вот что я пытаюсь сделать.

  1. Я хотел бы знать правила IPTABLES для компьютера в моей сети 192.168.1.100, чтобы направить весь трафик на сервер ShadowSocks. Например. Весь трафик с моего компьютера должен идти только на сервер ShadowSocks.

  2. Я хотел бы отправить трафик на определенный порт, скажем, 5036, на сервер ShadowSocks. Это означает, что любое устройство в этой сети, которое пытается использовать 5036, должно быть перенаправлено на сервер ShadowSocks. Например. Любое устройство в моей сети, использующее определенное приложение, должно быть перенаправлено на сервер ShadowSocks.

Я пытаюсь применить эти правила к UDM PRO IPTABELS через SSH.

флаг in
Если я не ошибаюсь, shadowsocks предоставляет прокси socks5. Это означает, что вам нужно инкапсулировать данные в протокол socks5, чтобы использовать его, и вы не можете просто перенаправить на него трафик с помощью iptables.
флаг cn
Клиент ShadowSocks, установленный в UDM, имеет работающий локальный сервер, который перенаправляет весь трафик с 192.168.1.1:1080 на внешний экземпляр AWS для неограниченного доступа в Интернет. Итак, что было бы лучшим вариантом для этого? Как телефонные приложения просто перенаправляют весь трафик при включении клиентского приложения ShadowSocks?
флаг in
Приложения могут сами реализовывать протокол shadowsocks и перенаправлять трафик через него или инкапсулировать трафик в socks и отправлять его клиенту. Стандартный клиент поддерживает только socks5, однако shadowsocks-rust (https://github.com/shadowsocks/shadowsocks-rust) поддерживает tproxy, который можно использовать с iptables. Это зависит от клиента, который вы используете.
флаг cn
Интересно. Теперь это имеет смысл. В таком случае, как мне установить IPTABLES, предполагая, что я использую shadowsocks-rust?
флаг in
Предполагая, что сервер tproxy находится на порту 1080, что-то вроде `iptables -t mangle -A PREROUTING -p TCP --dport 5036 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 1080` перенаправит трафик на порт tcp. 5036 в Shadowsocks. `iptables -t mangle -A PREROUTING -s 192.168.1.100 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 1080` будет перенаправлять весь трафик с 192.168.1.100 на shadowsocks. Обратите внимание, что вам, вероятно, потребуется выполнить первую часть https://www.kernel.org/doc/html/latest/networking/tproxy.html перед перенаправлением трафика. Я давно не работал с tproxy, поэтому может потребоваться отладка.
флаг cn
Я заставил это работать. Решение состоит в том, чтобы запустить сервис TCP для SOCKS5 REDSOCKS https://github.com/darkk/redsocks. REDSOCKS настроен в UDM PRO, и таблицы IP обновляются следующим образом. iptables -t nat -A PREROUTING -s 192.168.1.118 -j REDSOCKS
флаг in
Обратите внимание, что это только туннелирует TCP-трафик. Если вы следовали разделу iptables в файле readme redsocks, UDP (включая DNS) просто обходит теневые соки.

Ответить или комментировать

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