Назад | Перейти на главную страницу

Как настроить переадресацию портов, чтобы обеспечить доступ к внутренней службе с другого компьютера?

У меня есть существующая служба, которая слушает 127.0.0.1:2009, и я хочу получить доступ к этой службе с другого компьютера, поэтому я попытался настроить переадресацию портов для этого:

sudo /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d xx.xx.xx.xx --dport 8192 -j DNAT --to-destination 127.0.0.1:2009

Но это не работает. Я даже не увидел этого правила, когда попытался перечислить все правила "nat", используя:

$ sudo /sbin/iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Есть ли ошибки в командной строке iptables выше?

Eсть sysctl установка предотвращения dnat к шлейфу. заменить eth0 ниже с вашим внешним интерфейсом входит трафик.

Позволить это

# sysctl -w net.ipv4.conf.eth0.route_localnet=1

и проверить настройку.

# cat /proc/sys/net/ipv4/conf/eth0/route_localnet 

Теперь установите свой dnat к 127.0.0.1 буду работать.

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

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 8192 -j DNAT --to 127.0.0.1:2009
iptables -A INPUT -p tcp -m state --state NEW --dport 8192 -i eth0 -j ACCEPT

В противном случае опубликуйте свой полный список iptables с помощью

(sudo) iptables -L -n -v