サーバー管理やトラブルシューティングの現場で、ネットワークの状態を把握することは非常に重要です。Linuxにはネットワーク接続状況を簡単に確認できる便利なコマンドがいくつもありますが、その中でも代表的なものが「netstat
」です。
この記事では、「netstat -tulnp
」というオプションを指定した形式について、その意味や使い方、活用方法まで丁寧に解説します。ネットワークポートの監視や不審なプロセスの発見、サーバーの初期設定時の確認作業など、実務での使いどころも合わせて紹介します。初心者の方でも理解しやすいよう、コマンドの出力例やよくある注意点も交えて解説していきます。
netstatとは?基本からおさらい
「netstat
(network statistics)」は、ネットワークの接続状況やポートの使用状況、ルーティングテーブルなどを表示できるLinuxの定番コマンドです。古くから使われているコマンドで、多くのLinuxディストリビューションに標準で搭載されています。
例えば、以下のような情報を確認できます。
- 現在開いているTCP/UDPポート
- どのプログラムがそのポートを使っているか
- 外部と確立している接続の一覧
- ネットワークインターフェースの状態
このような情報は、サーバー運用において非常に役立ちます。特にファイアウォール設定後の確認や、不要なプロセスがポートを使用していないかのチェックなどに便利です。
netstat -tulnpの意味と各オプションの解説
「netstat -tulnp
」という形式は、実務でもっともよく使われる組み合わせです。それぞれのオプションの意味を分解してみましょう。
オプション | 意味 |
---|---|
-t | TCP接続を表示 |
-u | UDP接続を表示 |
-l | LISTEN状態(待機中)のポートのみを表示 |
-n | アドレスやポート番号を名前に変換せず数値で表示 |
-p | どのプロセスがポートを使用しているかを表示 |
この組み合わせを使うと、「現在LISTEN状態のTCP/UDPポート」と「それを使っているプロセスIDと名前」をすばやく確認できます。これは、外部に公開されているポートのチェックに最適です。
実行例と出力内容の解説
以下は、netstat -tulnp
を実行したときの出力例です。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 5678/dhclient
各項目の意味
- Proto: プロトコル(tcpまたはudp)
- Recv-Q / Send-Q: 受信・送信キューのデータ量(通常0)
- Local Address: ローカルIPアドレスとポート番号
- Foreign Address: 外部の接続先(LISTEN状態では
*
) - State: 通信状態(LISTEN, ESTABLISHEDなど)
- PID/Program name: プロセスIDと実行ファイル名
この情報から、例えばsshd
(SSHサーバー)がポート22番で接続待機していることが確認できます。
netstat -tulnpを使う上での注意点
root権限での実行が必要
「-p
」オプションを使ってプロセス情報を表示するには、通常のユーザー権限では情報が制限される場合があります。すべてのプロセス情報を表示させたいときは、sudo
をつけて実行しましょう。
sudo netstat -tulnp
netstatが使えない?代替コマンドも覚えておこう
最近のディストリビューション(例:Ubuntu 20.04以降)では、net-tools
が標準でインストールされていないことがあります。その場合、netstat
は使用できず、代替として以下のコマンドを使うことが推奨されます。
ss -tulnp
ss
はnetstat
よりも高速で、同様の出力を得ることができます。
実務での活用シーン
サーバーの公開ポートを確認したいとき
新しく構築したサーバーが、正しいポートをリッスンしているか確認する際に使います。例えばWebサーバーなら、ポート80や443がLISTEN状態になっているかをチェックします。
sudo netstat -tulnp | grep ':80 '
不審なポートやプロセスを特定したいとき
セキュリティ的に不要なサービスが動いていないか、不正アクセスの痕跡がないか調べたいときにも便利です。見覚えのないプロセスが特定ポートをLISTENしている場合、調査対象になります。
Dockerや仮想環境のポート確認にも便利
Dockerコンテナや仮想マシンのネットワーク設定で、どのポートがホストと繋がっているかを調べるのにも使えます。特に開発環境で複数のサービスを並行して動かしている場合に重宝します。
よくあるQ&A
Q. netstatが見つからないと出る場合は?
Command 'netstat' not found
この場合、net-tools
パッケージがインストールされていない可能性があります。以下のようにしてインストールできます(Ubuntu系の場合):
sudo apt install net-tools
Q. LISTEN状態にないポートは確認できないの?
はい、-l
オプションは「待ち受け中のポート」だけを表示するので、確立済みの接続や過去の接続は表示されません。そういった情報を見たい場合は、-a
(すべて)オプションを追加しましょう。
sudo netstat -tunp
まとめ:ネットワーク状態の把握には欠かせないコマンド
「netstat -tulnp
」は、Linux環境でのネットワーク状態をすばやく確認できる非常に便利なコマンドです。TCPとUDPの両方のリッスンポートと、それに対応するプロセスを一目で把握できるため、セキュリティ確認やトラブルシューティング、サーバー構築の初期設定など、さまざまな場面で活用できます。
近年ではss
コマンドが代替として使われる場面も増えていますが、netstat
は今なお多くの現場で使われ続けているツールです。まずは一通り基本のオプションを使いこなし、ネットワークの可視化に役立てましょう。