2016-04-22 14 views
-2

私は困惑しています。iptablesポート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 

上に設定されているどのように基本的に私はまたのApache Tomcatのインスタンスは、例えば、ポート8090上で実行されていると聞いているポート8090

にポート80を転送しています

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ルールを持っています。これはマシンを別のアドレスに転送するルールを受け入れるか拒否しますが、実際にはターゲットポートを変更するものはありません。接続。

実際に接続のいくつかの側面を変更する場合は、デフォルトのfilterテーブルではなく、natテーブルで実行される「ネットワークアドレス変換」(NAT)の広いカテゴリに分類されます。 REDIRECTルールが唯一がローカルホストに由来していないことトラフィック上で動作すること

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

注:

は、おそらくあなたは、あなたの natテーブル内 REDIRECTルールを必要としています。ネットワーク上の別のホスト(またはコンテナやVM内)からこれをテストする必要があります。

また、haproxyなどのプロキシソフトウェアを使用して同様のことを達成できます。

いくつかの追加の読書:

おそらくより良い
関連する問題