Устранение неполадок переадресации портов iptables
Я пытаюсь перенаправить соединения через порт 18600 на порт 9980. У меня есть это в /etc/sysconfig/iptables
:
# Generated by iptables-save v1.3.5 on Mon Oct 21 18:30:43 2013
*nat
:PREROUTING ACCEPT [2:280]
:POSTROUTING ACCEPT [12:768]
:OUTPUT ACCEPT [12:768]
-A PREROUTING -p tcp -m tcp --dport 18600 -j REDIRECT --to-ports 9980
COMMIT
# Completed on Mon Oct 21 18:30:43 2013
а также /etc/init.d/iptables status
показывает мне это:
Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:18600 redir ports 9980
Тем не менее, я могу telnet с локального хоста на порт 9980, но не 18600. Что мне не хватает? (Это виртуальная машина на базе CentOS.)
1 ответ
Решение
Пакеты с локальной машины не проходят через таблицу NAT PREROUTING.
Тест с другой машины.
Если вам нужно DNAT трафика, который исходит от локальной машины, используйте таблицу NAT OUTPUT.