%3F.png)
Я хотел бы перенаправить порт 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.
В чем проблема? Как это сделать?
решение1
Имеет ли файл /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
команды
решение2
Это ваш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
, когда вызываются правила, специфичные для порта.
Если кто-то может расширить обоснование/логику этого требования, пожалуйста, напишите об этом в комментариях.