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

Устранение неполадок переадресации портов 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 с localhost на порт 9980, но не на порт 18600. Что мне не хватает? (Это виртуальная машина на базе CentOS.)

Пакеты с локального компьютера не проходят через таблицу NAT PREROUTING.

Тест с другой машины.

Если вам нужно DNAT для трафика, исходящего с локального компьютера, используйте таблицу NAT OUTPUT.