LINUX.ORG.RU

Как перенаправлять трафик Wireguard на SOCKS5 прокси

 , ,


1

3

Всем привет! Можно ли трафик wireguard с сервера перенаправлять на прокси SOCKS5 (прокси в другой стране без аутентификации)

То есть, клиент подключается к серверу wireguard, а с сервера трафик как то проксируется на прокси, а оттуда уже в интернет


А в чём проблема-то? Wireguard это VPN, поверх него можно чорта лысого гонять. Или просто лысого…

Короче, гонишь трафик сокс поверх VPN, и никаких проблем: пусть сервер у тебя 10.0.0.1, клиент 10.0.0.2. На сервере 10.0.0.1 ты поднимаешь SOCKS прокси на порту 9000. Дальше с клиента 10.0.0.2 ты соединяешься на SOCKS 10.0.0.1:9000, et voila.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Сокся на другой серваке, то есть не на том же сервере где и wg, соответственно трафик надо гнать на другой сервак, то есть не на 10.0.0.1 , а на весь 134.147.x.x

Или думаешь поднять прокси локально, который будет гнать трафик на другую проксю, и получится что мы подключаемся к прокси через 10.0.0.1:9000, а этот прокси уже на другой прокси проксирует

Leo_D
() автор топика
Ответ на: комментарий от Leo_D

Сокся на другой серваке, то есть не на том же сервере где и wg, соответственно трафик надо гнать на другой сервак, то есть не на 10.0.0.1 , а на весь 134.147.x.x

Ну и гони ) На клиенте настрой маршрут до этого хоста, на сервере включи пересылку и NAT.

Хотя tun2socks может оказаться проще.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Хорошо, всем спасибо, буду пытаться

Кто нибудь сможет рассказать, почему нельзя просто купить два сервака поднять там wg клиент и сервак, и потом взять и с своего пк кинуть SSH туннель до клиента вг и вот так вот гонять трафик в интернет

Идет трафик по ссх туннелю на сервак, пытается выйти в интернет, а вг его подхватывает и кидает на другой сервак)

Leo_D
() автор топика
Ответ на: комментарий от Aceler

Вроде как топик подходящий, похожая проблема: есть WG сервер на linux, клиенты приходят через проброс на роутере в локалку этого сервера и вот тут весело: сразу же услышал про tun2socks и решил настроить, но во всех гайдах поднимается виртуальный интерфейс и через него роутится ВЕСЬ трафик из-за дэфолного gw на интерфейсе tun0. Но у меня на этом сервере есть куча сервисов, оперирующих исключительно в локальной сети или выходящие в интернет через https как web сервисы, то есть мне их не нужно через прокси пропускать в приниципе, я пытался через ip tables в конфиге wg в Prerouting сделать dnat на мой bydpi, но чего-то интернет сказал пока сразу же.

Подскажите, что делаю не так и если есть вариант, можно ли зараутить tun0 не как дэфолтный gw, а как gw исключительно для конкретной подсети клиентов wg, а раутить весь остальной трафик через обычный дэфолтный gw интерфейса (в моем случае wlan0)

AdLf
()
Ответ на: комментарий от Aceler

Так wg у меня и не дэфолтный, у меня не получается сделать tun0 не дэфолтным, то есть он скорее должен быть вспомогательным и вообще не обладать дэфолтным маршрутом, а скорее я бы просто прописал tun0 маршрут на подсесть wlan0 и все, а там уже если и маршрут есть, то смог бы сделать dnat,но вот пока без успеха, я в linux только вот начинаю разбираться, всего пол года уюзаю, могу тупить, мне главное знать,что двигаюсь в правильном направлении и что,то что я пытаюсь сделать выполнимо технически, а то время впустую трачу

AdLf
()
Ответ на: комментарий от AdLf

Не понял откуда вдруг взялось tun, если изначально про wireguard было.

Попробуй тут поискать «рецепты». ТС, тоже думаю что-нибудь полезное найдешь

https://www.procustodibus.com/blog/2022/11/wireguard-jumphost/

https://www.procustodibus.com/blog/2023/11/wireguard-port-forward-from-internet-multi-hop/

NyXzOr ★★★★
()

В общем случае эта задача не решается, т.к. протоколы разного уровня. wireguard инкапсулирует IP пакеты, socks5 работает с TCP потоками и опционально с UDP-датаграммами.

Можно попробовать через tun2proxy сделать, это лучшее, что можно придумать. Конечно с ICMP пакетами это работать не будет по очевидным причинам, с другими протоколами кроме TCP/UDP тоже, но на практике, наверное, этого хватит.

Ну и заворачивание TCP в TCP, как правило, плохо сказывается на скорости, просто чтобы не было сюрпризом это.

В целом это идея странная и делать так не надо.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от NyXzOr

схема такая: приход пакета с wg на интерфейс wlan0(192.168.1.152/24) -> пакет переходит на виртуальный интерфейс wg0(с этим проблем нет, проверил) -> натирование этого пакета с подсети 172.16.2.0/24(подсеть wg) на 192.168.1.152 на 2000 порт (там стоит bydpi) -> sokcs прокси уже направляет пакет по wlan0 с запросом на роутер и в интернет. Изначально я вообще не хотел использовать tun2socks, в этом вся фишка. Этот вот сетап без виртуального интерфейса tun0, но так как вроде бы tun2socks должен был решить мою проблему, я решил заморочиться с tun0, но понял, что почему-то в мануалах везде фигурирует дэфолтный маршрут на этот интерфейс, а как я уже написал ранее, мне это не нужно, из-за локальных сервисов, которые не хочу проводить через прокси, по этой же причине я убрал дэфолтный маршрут на wg, чтобы в конечном итоге трфик как шел через wlan0, так и будет идти. Я сегодня решил проверить как все работает через tshark и wireshark у себя на роутере. В общем, если не натировать на bydpi все пакеты с подести 172.16.2.0/24, все работает отлично: то есть по сути ничего удивительного, пакеты ходят туда сюда - интернет есть, но как только добавляю сторчку с натированием всего трафика с подсети 172.16.2.0/24 на хоста 192.168.1.152 (пробовал и 127.0.0.1 разницы нет и да, socks прокси на той же машине, где и интерфейс wg, вот поэтому мне проблематично понять, что именно не так, может не понимаю логику перехода в локальных интерфейсах) интернет остается, все работает, но уже на «запрещенные» сайты попасть не могу, то есть dns проходит, ответ энкапсулируется опять в wg и уходит обратно, на клиенте действительно есть пинги до зарезолвленного домена, тут все ок, но заметил, что проблема возникает с QUIC - вижу в wireshark огромное количество, когда захожу на нельзяграм, но получаю в ответ connetcion_timeout_error

AdLf
()
Ответ на: комментарий от NyXzOr

Вот что происходит, когда я делаю tun2socks tun0 интерфейс дэфолтным gw(чисто по мануалу из проекта гита): INFO[0000] [DIALER] bind to interface: wlan0 INFO[0000] [STACK] tun://tun0 <-> socks5://192.168.1.152:2000 INFO[0001] [TCP] 198.18.0.1:58955 <-> 192.168.2.101:23 INFO[0001] [UDP] 198.18.0.1:44155 <-> 192.168.2.126:54321 INFO[0001] [UDP] 198.18.0.1:43445 <-> 192.168.2.132:54321 INFO[0001] [TCP] 198.18.0.1:51801 <-> 192.168.2.113:6668 INFO[0001] [UDP] 198.18.0.1:38961 <-> 192.168.2.124:54321 INFO[0001] [UDP] 198.18.0.1:55129 <-> 192.168.2.123:54321 INFO[0001] [UDP] 198.18.0.1:54279 <-> 192.168.2.101:23 WARN[0001] [UDP] dial 192.168.2.129:54321: client handshake: UDP ASSOCIATE: general SOCKS server failure WARN[0001] [UDP] dial 192.168.2.123:54321: client handshake: read tcp 192.168.1.152:59636->192.168.1.152:2000: read: connection reset by peer INFO[0001] [UDP] 198.18.0.1:41602 <-> 192.168.2.127:54321 INFO[0001] [UDP] 198.18.0.1:35498 <-> 192.168.2.126:54321 WARN[0001] [TCP] dial 192.168.2.101:23: connect to 192.168.1.152:2000: dial tcp 192.168.1.152:2000: connect: connection refused WARN[0001] [TCP] dial 192.168.2.113:6668: connect to 192.168.1.152:2000: dial tcp 192.168.1.152:2000: connect: connection refused

Эти сообщения появляются, потому что сразу же отваливается порт, на котором сидит bydpi, буквально две секунды и все, с чем это может быть связано?

AdLf
()