Email or username:

Password:

Forgot your password?
I'm not cryptopunk

задача: переброс всего tcp/udp трафика с одного сервера на другой

как сделать?
@tech@mastodon.ml @rf@mastodon.ml @b

13 comments
kurator88

@aurel1on_sol @rf @tech @b

Расскажи хоть что за проблему решаешь. И как ты себе представляешь результат

I'm not cryptopunk

@kurator88@mastodon.social @rf@mastodon.ml @tech@mastodon.ml @b@shitpost.poridge.club


на данный момент у меня есть домашний сервер и прокси-впс. Весь tcp трафик, который идёт на прокси-впс перебрасывается на домашний сервер - так отрисовываются git, status, nextcloud и так работают боты в мисскей у меня. Сейчас я хочу поднять игровой сервер, но haproxy не умеет в tcp/udp прокси (или я просто не умею настраивать)

kurator88

@aurel1on_sol @rf @tech @b

вопрос в сторону, у тебя вообще все-все-все tcp перекидываются или ты порты указывал ?

kurator88

@aurel1on_sol @rf @tech @b

мне тут недавно подсказывали, наверное и тебе поможет

nginx + wg vpn. С помощью nginx кидаешь весь трафик с порта на внутренний порт домашней машины.

OfShad0ws

@kurator88
мм, спасибо, узнал что как минимум Caddy умеет в TLS за прокси, осталось найти как - задача на выходные :)
с Nginx не удалось так сделать, я даже в гугле поискал - как будто никто и не пытался

Evv1L :blobcatlaptop:

@aurel1on_sol Xray позволяет создавать цепочку из прокси серверов. Возможно это тебя заинтересует.

@rf @tech @b

КМК-4 [GOTO COAXIAL@LOR.SH]

@aurel1on_sol
Я тебе даже могу дослать к часам 23 МСК команды
@rf @tech @b

КМК-4 [GOTO COAXIAL@LOR.SH]

@aurel1on_sol
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport [ПОРТ ПРИЕМА] -j DNAT --to-destination [IP КУДА]:[ПОРТ КУДА]
iptables -t nat -A POSTROUTING -d [IP КУДА]/32 -o eth0 -j MASQUERADE

Включить роутинг в sysctl
# sysctl -p
net.ipv4.ip_forward = 1

Если накручена таблица firewall, надо еще в цепочке FORWARD не забыть разрешить

iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp --dport [ПОРТ ПРИЕМА] -j ACCEPT

Ну и всё

@aurel1on_sol
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport [ПОРТ ПРИЕМА] -j DNAT --to-destination [IP КУДА]:[ПОРТ КУДА]
iptables -t nat -A POSTROUTING -d [IP КУДА]/32 -o eth0 -j MASQUERADE

Включить роутинг в sysctl
# sysctl -p
net.ipv4.ip_forward = 1

Если накручена таблица firewall, надо еще в цепочке FORWARD не забыть разрешить

КМК-4 [GOTO COAXIAL@LOR.SH]

@aurel1on_sol
Чуть объясню. Тут в итоге делается двойной NAT (twice NAT). При приеме на определенный порт сервер подменяет IP DST (и порт, если надо) на указанный DST вместо своего собственного, а IP SRC на свой собственный на eth0, вместо того, что ему прилетело в оригинальном пакете. В итоге сервер, куда ты роутишь, видит как будто ему сессия пришла от сервера-приемника. Балансировка в iptables тоже есть, кстати. Без всяких фич, как в haproxy и прочих жижинксах (отслеживание состояния, манипуляции с нагрузкой, решение на основе наргрузки и проч. проч. проч.), но есть

@aurel1on_sol
Чуть объясню. Тут в итоге делается двойной NAT (twice NAT). При приеме на определенный порт сервер подменяет IP DST (и порт, если надо) на указанный DST вместо своего собственного, а IP SRC на свой собственный на eth0, вместо того, что ему прилетело в оригинальном пакете. В итоге сервер, куда ты роутишь, видит как будто ему сессия пришла от сервера-приемника. Балансировка в iptables тоже есть, кстати. Без всяких фич, как в haproxy и прочих жижинксах (отслеживание состояния, манипуляции...

Go Up