ポート 80 で着信トラフィックが機能しません。

ポート 80 で着信トラフィックが機能しません。

Arch LinuxのインストールにApacheサーバーを設定しようとしています。本機にはパブリックIPアドレスを使用したイーサネット接続があります。外部コンピュータから何度も接続しようとしましたが、動作しませんでした。その後、ApacheでSSLを設定して接続できました。

テストのために次のように単純なhttpサーバーを起動するとき

$ sudo python3 -m http.server <port_here> --bind <public_ip_here> 

他のコンピュータから正常に任意のポートに接続できますとは別に80. それはできません。ポート443でも動作します。

ポート80がブロックされる理由と、この問題を解決する方法を知りたいです。

ベストアンサー1

次のコマンドを実行して、トラフィックが実際にシステムに入っていることを確認できます。

# iptables -I INPUT -p TCP --dport 80 -j LOG
# iptables -I INPUT -p TCP --dport 80 -j ACCEPT

-j LOG一致するトラフィックの履歴はメッセージログに送信されますが、ファイアウォールは引き続きルールを処理します。 2番目のルールは、ACCEPTすべてのポート80トラフィックに明示的なルールを設定します。これにより、ファイアウォールのボトルネックが解消されます。パケットカウンタ(出力の左側にある2つの数値列iptables -nvL)が上がると、ルールが一致することがわかり、メッセージを見て、トラフィックの着信方法に異常があるかどうかを確認できます(NATなど)。

netstat -tlpnまたは、実行してlsof -i tcp:80デーモンが現在ネットワークに接続できるIPを受信して​​いることを確認することもできます。たとえば、

[root@xxx01 ~]# lsof -i tcp:42499
COMMAND   PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
ruby    12659 puppet   10u  IPv4 37071710      0t0  TCP localhost:42499 (LISTEN)

ポート42499でリッスンして127.0.0.1()にバインドするRubyスクリプトがあるため、パブリックlocalhost:42499IPアドレスを指定するすべてのエントリがこのデーモンに到達しないことを示します。比較:

[root@xxx01 ~]# lsof -Pi tcp:80 | head -3
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    2247   root    4u  IPv6  12264      0t0  TCP *:80 (LISTEN)
httpd    7376 apache    4u  IPv6  12264      0t0  TCP *:80 (LISTEN)

アスタリスクは、利用可能なすべてのIPアドレス(ネットワークに接続できるIPアドレスを含む)を受信して​​いることを意味します。

おすすめ記事