ナチュラル @rch850

ナチュラル丼発祥の地、福井からお届けします。技術的な話題とか、雑談とか。

netstat が万能だと思っていた話

Linux サーバで、どんなポートが空いてるか(外からつなぐことができるか)確認するには、

$ netstat -nlt

で十分だろう。と、ずっと思ってた。

ある日、Elastic Beanstalk で Node.js の環境を作った。どんな風に動いているんだろうと疑問に思って、ログインしてみて、netstat を打ってみたんだけど、どういうわけか 80 番が開いていない。でも 80 番に対するアクセスはできる。どういうことだろう?

結論から言うと、iptables で 80 番が別のポートに転送されていた。どういう調べ方でその原因を見つけたか忘れたけど、そういう結論だった。

参考: 80番ポートへ届いたパケットをiptablesでローカルの上位ポートに転送する - Qiita

netstat で全てわかると思ってた自分にとってはだいぶショックだった。今度から開いてるポート調べるときには netstat だけじゃなくて iptables も確認するようにしよう。

(6月11日追記)

昨今バズってる記事「訳:非推奨になったLinuxネットワークコマンドの代替コマンド - aws memo」に従って ss -nlt したけど結果は変わらなかった。