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

iptables: перенаправить порт 80 на порт 8080

Как я могу перенаправить порт 80 изнутри на порт 8080?

Моя цель состоит в том, чтобы сервер веб-приложений (Glassfish) работал на порту 8080, но чтобы внешний мир мог нормально обращаться к нему через порт 80. Это делается для того, чтобы мне не приходилось запускать Glassfish с правами root.

Я попытался добавить в свой / etc / sysconfig / iptables следующее правило:

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

но это приводит к следующей ошибке:

Applying iptables firewall rules: iptables-restore v1.3.5: Line 21 seems to have a -t table option.

Вы не можете указать такую ​​таблицу в/etc/sysconfig/iptables. Каждая таблица помечается звездочкой, а затем именем таблицы. Вот скелет того, что бы вы сделали:

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :8080
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

Вместо редактирования файла вы также можете вручную настроить правила, которые вам нравятся, используя iptables команду, а затем выполнить iptables-save > /etc/sysconfig/iptables или service iptables save.

ты был близок

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination: 8080

Он должен использовать NAT, чтобы при отправке ответа клиенту казалось, что он пришел с порта 80, а не 8080.