LINUX.ORG.RU
ФорумAdmin

Проброс наружу порта.


0

0

Нужно высунуть наружу один порт с машины с серым IP. У меня есть белый IP 212.122.221.222, серый IP той машины 192.168.1.1, порт, который нужно высунуть наружу 2345.

Правильно я понимаю, что для того чтобы все обращения из вне по порту 2345 попадали на 192.168.1.1:2345 достаточно одного правила:

iptables -t nat -A PREROUTING -p tcp -d 212.122.221.222 --dport 2345 -j DNAT --to-destination 192.168.1.1:2345

ip forwarding разрешён

# cat /proc/sys/net/ipv4/ip_forward 1

Этого достаточно, чтобы сервис работающий на 192.168.1.1:2345 был доступен из интернетов? Маршрутизация настроена.

★★★★★

iptables -I PREROUTING -t nat -p tcp --dport 2345 -i eth0 -j DNAT --to 192.168.1.1
iptables -I FORWARD -p tcp -d 192.168.1.1 --dport 2345 -i eth0 -o eth1 -j ACCEPT
iptables -I FORWARD -p tcp -s 192.168.1.1 --sport 2345 -i eth1 -o eth0 -j ACCEPT

Sylvia ★★★★★
()

ssh -L
или
ssh -R
по вкусу

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

>у меня работает, я с роутера копипастила
если его машина с белым ип является default gateway для мошины с серым ип, то работать будет

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

Не вылазит.

>iptables -I PREROUTING -t nat -p tcp --dport 2345 -i eth0 -j DNAT --to 192.168.1.1 >iptables -I FORWARD -p tcp -d 192.168.1.1 --dport 2345 -i eth0 -o eth1 -j ACCEPT >iptables -I FORWARD -p tcp -s 192.168.1.1 --sport 2345 -i eth1 -o eth0 -j ACCEPT

Не помогло.

SNAT не может мешать? Я через 212.122.221.222 инет раздаю в локалку.

Пытаюсь высунуть наружу VNC-HTTP (порт 5800) наружу, но что-то не достигаю успеха :-(

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

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

Sylvia ★★★★★
()
Ответ на: Не вылазит. от Camel

добавть что-то вроде
iptables -I POSTROUTING -t nat -p tcp -d 192.168.1.1 --dport 2345 -j SNAT --to-source [ip адрес сервака с белым ип внутри локалки]

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

>у меня работает, я с роутера копипастила

Только если служба отдает по произвольному порту запрос. А если по тому же (а-ля ssh), то надо POSTROUTE + если это какой-нить vpn, то еще и route соответствующий добавить.

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

Вот так я прокидывал SSH. Без нижней строчки не работает.

$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 3002 -j DNAT --to-destination 172.16.128.10:22
$IPTABLES -A FORWARD -i $EXT_IF -d 172.16.128.10 -p tcp --dport 22 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -p tcp --dst 172.16.128.10 --dport 22 -j SNAT --to-source $EXT_IP:3002

jackill ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.