iptablesを使用してポート80と443を8080と8443にリダイレクトする方法は?

iptablesを使用してポート80と443を8080と8443にリダイレクトする方法は?

DSpaceというTomcat 6 Webアプリケーションのドキュメント、特に実行に関するドキュメントを見ています。標準ポート(http://の場合は80、https://の場合443)でDSpaceを実行します。

iptablesを使用してポート80と443から8080と8443にトラフィックをリダイレクトします:8080

以下は、マニュアルで提供されるコマンドです。

/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
/sbin/iptables -t nat -A OUTPUT -p tcp -d _[server_ip_address|server_ip_address]_ --dport 80 -j  REDIRECT --to-port 8080
/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443

2行目、特にその部分を変更しなければならない部分があると思います。-d _[server_ip_address|server_ip_address]_しかし、何かはよくわかりません。そのmanページを読みましiptablesたが、運がありませんでした。

私は-d _[server_ip_address|server_ip_address]_次のように変更してみました。

-d _[127.0.0.1|127.0.0.1]_ 

そして:

-d _[54.224.121.116|54.224.121.116]_

そして:

-d _[ec2-54-224-112-116.compute-1.amazonaws.com|ec2-54-224-112-116.compute-1.amazonaws.com]_

私が経験したエラーはBad argument 'REDIRECT'次のとおりです。

host/network '_127.0.0.1' not found

誰もが私が何を間違っているのかを見つけるのに役立ちますか?

修正する:2行目がなくてもリダイレクトが機能すると思いますが、まだその意図が何であるかよくわかりません...

答え1

このページの間違った句読点が混乱しているようです。文法の一部ではない特定のトークンの残余_です。また、この文字はIPを区切る文字としては使用できず、必ず使用(カンマ)する必要があります。[iptables|,

/sbin/iptables -t nat -A OUTPUT -p tcp -d 54.224.121.116,54.224.121.116 --dport 80 -j  REDIRECT --to-port 8080

答え2

fwiw 私は実際に通常のApacheでmod_proxy_ajpを使用することを検討します。人々がURLのサーバー名の末尾に:8080と:8443を入力/参照する必要がないようにしたいようです。 mod_proxy_ajpは通常、必要な作業に簡単で、後でコストを上げていくつかのロードバランシングを実行することにした場合は、すでにmod_proxy_ajp設定を使用している場合はそうするのが簡単です。これは私の本番サーバーの1つの設定です。

<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass         /   ajp://fqdn.for.server:8009/
ProxyPassReverse  /   ajp://fqdn.for.server:8009/

ProxyPass を VirtualHost 構成に配置でき、他のホストを構成するのとほぼ同じです。つまり、ポート443にSSLを設定し、ポート80にプレーンテキストを設定できます。取引全体のより深い理解を得るために

Apache + mod_proxyがこれを行う唯一の方法ではありませんが、私が最も経験した方法であり、あなたがやろうとしているもの(ポートを転送するためにファイアウォールを使用する)よりも少し少ない作業です。 )。

答え3

私が理解しているように、2番目のルールはサーバーからアウトバウンドとしてサーバーに接続しようとすると(したがって-d80にリダイレクトされることを8080指定します。ローカルで生成されたパッケージはPREROUTING(from)で処理されないためです。http://www.docum.org/docum.org/kptd/と「アップデート」)

注:私は通常、沿岸壁をファイアウォールとして使用しているので、私の答えは防水または虹の味であるとは思わない。

関連情報