どーも!marusukeです!
現在では非推奨ですが、開いているポートを確認するコマンドnetstatについてです!
netstatコマンドでできること
netstat [オプション]
netstatコマンドは、ネットワーク接続、ルーティングテーブル、インターフェースの統計、マスカレード接続、マルチキャストメンバーシップなど、システムのネットワーク情報を表示するためのコマンドです
ただし、netstatは現在、非推奨(deprecated)とされており、代替としてssコマンドの使用が推奨されています。netstatは古いシステムにしかインストールされていない場合が多いので、注意が必要です
netstatが非推奨になった背景
netstatコマンドが非推奨とされ始めたのは、2011年ごろからです。具体的には、Linuxカーネルのネットワークスタックの変更に伴い、より効率的でモダンなツールとしてssコマンド(iproute2パッケージの一部)が導入されました
iproute2パッケージの採用- Linuxでは、従来の
net-toolsを置き換えるために、新しいネットワーク管理ツールであるiproute2が導入されました
- Linuxでは、従来の
net-toolsのメンテナンス終了netstatは、古いネットワークユーティリティパッケージであるnet-toolsに含まれていました。しかし、このnet-toolsパッケージは2001年ごろから積極的な開発が行われなくなり、機能の更新やバグ修正が停止していました。ネットワーク管理の現代的な要件に対応できなくなりました
netstatの代替として、より高性能なssコマンドが提供されるようになりました
- パフォーマンスと機能性の向上
netstatは、システムコールを多く使用してネットワーク情報を収集するため、大規模なシステムや高負荷な環境ではパフォーマンスに制限がありましたssは直接カーネルの/procファイルシステムを参照して情報を取得するため、処理が高速で、より詳細な情報を提供できます
netstatコマンドの使用例
以下の例では、現在のネットワーク接続のリスニングソケットを表示しています
$ netstat -tuln
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
-t:TCP接続を表示-u:UDP接続を表示-l:リスニング状態のソケットのみを表示-n:アドレスやポートを名前解決せず数値で表示
netstatコマンドのオプション
| オプション | 説明 |
|---|---|
-a | すべてのソケットを表示します |
-t | TCPソケットを表示します |
-u | UDPソケットを表示します |
-n | アドレスとポートを数値で表示します |
-l | リスニング状態のソケットのみを表示します |
-p | 各接続に関連するプロセスIDとプロセス名を表示します |
-r | ルーティングテーブルを表示します |
-e | 拡張情報を表示します(インターフェース統計など) |
-c | 指定した間隔でコマンドを繰り返し実行します |
注意点
netstatは非推奨のため、代わりにssコマンドを使用することをお勧めします- 例として、
ss -tulnコマンドはnetstat -tulnと同等の出力を得るための方法です
以下はssコマンドを使用した例です
$ ss -tuln
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
以上です!
ここまで読んでいただきありがとうございました!


コメント