3

Я бы хотел перенаправить порт 80 на 8080. Поэтому я попытался отредактировать /etc/syscongfig/iptables:

-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Но получил:

# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: 
          Line 8 seems to have a -t table  option.

В чем проблема? Как это должно быть сделано?

2 ответа2

2

Имеет ли файл /etc/syscongfig/iptables правильную структуру для iptables-restore?

Попробуйте добавить это правило вручную в брандмауэр

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

И сравните /etc/sysconfig/iptables с выводом команды iptables-save

1

Это ваше правило iptables :

-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Но я считаю, что это должно быть что-то вроде этого:

-A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

Обратите внимание, что -m tcp добавлен. Хотя -p tcp соответствует протоколу правила или пакета для проверки, -m tcp явно указывает IPTables на соответствие TCP-пакету. Это кажется странным, но, насколько я знаю, -p tcp должен быть связан с -m tcp когда вызываются определенные для порта правила.

Если кто-то может расширить обоснование / логику этого требования, пожалуйста, сообщите об этом в комментариях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .