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

Переадресация портов iptables не работает, когда сервер и клиент находятся на одном компьютере?

У меня есть веб-сервер, работающий на порту 8080. Я хотел бы посетить его через порт 80, поэтому я сделал следующее:

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

он работает, если я получаю доступ к серверу с других машин, используя

http://ipoftheserver/  

но это не сработает, если я получу доступ к серверу с того же компьютера, используя

http://localhost/

это почему?

заранее спасибо.

В PREROUTING chain влияет на полученные пакеты до их маршрутизации. Локально сгенерированные пакеты начинаются с OUTPUT цепь.

Я не уверен, что вы можете делать то, что хотите через iptables, localhost не проходит маршрутизацию NAT. Посмотри это ТАК вопрос и это SF вопрос для подробностей.

Вы можете привязать сервер к нескольким портам, если это Apache. Подробности смотрите на этой странице, http://httpd.apache.org/docs/2.2/bind.html.

httpd.conf

Listen 80
Listen 8000

-или-

Listen 192.0.2.1:80
Listen 127.0.0.1:80
Listen 192.0.2.1:8000