どーも!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:*
以上です!
ここまで読んでいただきありがとうございました!
コメント