私はCentOS 7サーバーで作業しており、JBossを希望どおりに動作させようとしています。私はJava 8とJBoss(wildly)8を実行しています。これらをインストールしてデフォルトのポートで動作させていますが、JBossをポート80で動作させたいのです。ルートとして実行すると、ポート80で動作するようになりますが、これは良い考えではないことを知っているため、ルートとして実行する必要はありません。
ポート80を8080に転送してみましたが、機能しません。ステップが欠けているように思いますが、何が欠けているのかわかりません。
Firewall-cmdを使用しています。両方のポート(80と8080)を開いて、パブリックゾーンのマスカレードを有効にしました。このコマンドを使用してポートを転送しました
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080.
私が見逃しているものはありますか?
私はこれを可能にする方法を見つけました:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=3001 --permanent
firewall-cmd
のadd-forward-portは、PREROUTING
NATチェーンにルールを追加します。これは、外部で生成されたパケットにのみ適用されます。ローカルホストに接続しようとしている場合(または、サーバーのローカルIP)サーバーのポート80で失敗します。これらのパケットはPREROUTING
を通過しないためです。
外部ソースからポート80に接続している場合、firewall-cmd
リストしたものは正しく動作するはずです。インターフェイスが実際に「パブリック」ゾーンにあることを確認することをお勧めします。
次のコマンドを実行して、ルールのパケット数を取得し、実際にヒットしていることを確認することもできます。
iptables -t nat -vnL | grep 8080 -B1
試行ごとにパケット数が増加する場合、ファイアウォールは適切に機能しており、ファイアウォールを超えていくつかの問題があります(おそらくJBOSSのACL?)。パケットが試行ごとに増加しない場合、ファイアウォールルールはまったくヒットしていないため、間違ったゾーンにいるか、ポート転送ルールに優先する他のルールがあることを示しています。