2016-04-22 6 views
-2

Я в тупике.iptables port forwding - ничего не возвращается

Это как мои Iptables настроены на Debian 7.

sudo iptables -S 
-P INPUT ACCEPT 
-P FORWARD ACCEPT 
-P OUTPUT ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 8090 -j ACCEPT 
-A FORWARD -d 127.0.0.1/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 8090 -j ACCEPT 
-A FORWARD -d 10.1.130.5/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 8090 -j ACCEPT 

В основном пересылка порта 80 на порт 8090.

У меня также есть экземпляр Apache Tomcat работает и прослушивает порт 8090. например,

sudo lsof -i :8090 
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 
java 15081 user1 36u IPv6 164737  0t0 TCP *:8090 (LISTEN) 

Однако, когда я пытаюсь подключиться через браузер, ничего не возвращается. То же самое с Wget. например

wget www.test.com/confluence 
--2016-04-22 16:59:22-- http://www.test.com/confluence 
Resolving www.test.com... 10.1.130.5 
Connecting to www.test.com|10.1.130.5|:80... connected. 
HTTP request sent, awaiting response... 302 Found 
Location: /bootstrap/selectsetupstep.action [following] 
--2016-04-22 16:59:22-- http://se- www.test.com/bootstrap/selectsetupstep.action 
Reusing existing connection to www.test.com:80. 
HTTP request sent, awaiting response... 
+0

, вероятно, лучше спросил на superuser.com – Soren

ответ

1

В вашем наборе правил ничего нет, что фактически пересылает порты. У вас есть правила INPUT, которые будут принимать или отклонять пакеты, предназначенные для локального хоста, и у вас есть правила FORWARD, которые будут принимать или отклонять правила, перемещающие машину на другой адрес, но у вас нет ничего, что фактически изменяет целевой порт связь.

Если вы действительно хотите изменить какой-либо аспект подключения, это относится к широкой категории «трансляция сетевых адресов» (NAT), которая выполняется в таблице nat, а не в таблице filter по умолчанию.

Возможно, вам нужно REDIRECT правило в вашем nat таблице:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 \ 
    -j REDIRECT --to-ports 8090 

Обратите внимание, что REDIRECT правило будет работать только на трафик, не зарождаются на локальном хосте. Вам нужно будет протестировать это с другого хоста в сети (или изнутри контейнера или vm).

В качестве альтернативы вы можете выполнить что-то подобное с помощью прокси-программного обеспечения, такого как haproxy.

Некоторое дополнительное чтение: