「どのプロセスがどのポートを使っているか、一発で知りたい」
Linuxサーバーのトラブル対応では、開放ポートやコネクション状態を素早く把握する必要があります。
この記事では、
netstatコマンドの基本的な使い方から、リッスンポート確認、プロセスとの紐付け(-p)、ルーティングテーブル表示、後継のssコマンドとの対応まで解説します。最新ディストリビューションではssが標準になっていますが、古い手順書や既存スクリプトとの互換のためnetstatを理解しておく意義は今も大きいです。・netstatはコネクション状態・リッスンポート・ルーティングなどを確認できる定番コマンド
・RHEL7以降は非推奨で、標準は
ssコマンド。出力項目はほぼ同じで覚え直しは不要・
-tlnp(TCPリッスン+プロセス)、-rn(ルーティング)が現場での最頻出パターンでも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
netstatとは?net-tools由来のネットワーク情報表示コマンド
netstatは、ネットワーク接続・ルーティングテーブル・インターフェース統計などを表示するコマンドです。ifconfigと同じくnet-toolsパッケージに含まれており、RHEL7/CentOS7以降は非推奨扱いです。最新ディストリビューションでは、後継のssコマンド(iproute2パッケージ)が標準になっています。・パッケージ:
net-tools・インストール:
sudo dnf install net-tools・後継:
ss(iproute2)基本的な使い方
1. リッスンポートを確認する(-tln)
サーバー運用で最も使うパターンです。TCPのLISTEN状態のポートだけを、名前解決せずに表示します。# TCP・LISTEN・数値表示 netstat -tln # UDPも含める netstat -tuln
2. プロセスと紐付けて表示する(-p)
-pを付けると「どのプロセスが開いているポートか」が分かります。rootでないと一部のプロセス情報が空欄になります。# TCP LISTEN + プロセス名 + PID sudo netstat -tlnp
3. 確立済みコネクションを確認する
-aで全状態を表示し、grepでESTABLISHEDだけを抽出するのが定番です。# 確立済みコネクションだけを表示 netstat -an | grep ESTABLISHED
4. ルーティングテーブルを表示する(-rn)
routeコマンドと同じ情報を、名前解決せずに数値で表示します。# ルーティングテーブル netstat -rn
応用・実務Tips
特定のポートを使っているプロセスを特定する
「80番ポートを誰が掴んでいるか」といった調査は、grepとの組み合わせが手早いです。# 80番ポートを掴んでいるプロセスを探す sudo netstat -tlnp | grep ':80 ' # lsofでも同じことができる sudo lsof -i :80
インターフェース別の統計を見る
-iでRX/TXパケット数を一覧できます。errorsやdroppedが増えていないか定期チェックするのに便利です。# インターフェース別統計 netstat -i
プロトコル別の統計を見る
-sでTCP/UDP/ICMPなどプロトコル別の統計が出ます。大量のSYN_RECVなど、攻撃の兆候を把握する用途にも使えます。# プロトコル別統計 netstat -s
ssコマンドとの対応関係
ssはnetstatより高速で、表示も同系統です。まずはこの表を押さえておけば移行で困りません。| netstat | ssコマンド |
|---|---|
netstat -tln |
ss -tln |
netstat -tlnp |
sudo ss -tlnp |
netstat -an | grep ESTABLISHED |
ss -ant state established |
netstat -i |
ip -s link |
netstat -rn |
ip route show |
netstat -s |
ss -s(概況) |
トラブルシュート・エラー対処
「netstat: command not found」が出る場合
net-toolsが入っていません。ssでの代替を推奨しますが、必要であれば追加してください。# net-toolsの追加インストール sudo dnf install -y net-tools
プロセス名が「-」と表示される場合
一般ユーザーで実行すると、他ユーザーのプロセス情報は見られません。sudoを付けて実行してください。大量のTIME_WAITが出ている場合
短時間に多数のTCP接続を行うアプリで発生します。通常は異常ではありませんが、ポートが枯渇する場合はnet.ipv4.ip_local_port_rangeやtcp_tw_reuseのチューニングを検討してください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| TCPリッスンポートを確認 | netstat -tln |
| リッスンポートとプロセスを確認 | sudo netstat -tlnp |
| 確立済みコネクションを見る | netstat -an | grep ESTABLISHED |
| ルーティングテーブルを見る | netstat -rn |
| インターフェース統計を見る | netstat -i |
| プロトコル別統計を見る | netstat -s |
| 後継コマンドで同じことをする | sudo ss -tlnp |
ポート・プロセス・通信状態をスピーディに切り分けられるエンジニアになりませんか?
「どのプロセスがどのポートで何をしているか」を即座に答えられる力は、障害対応のスピードに直結します。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:ifconfigコマンドでネットワークインターフェースを確認・設定する方法|ipコマンドとの違いも
- 前のページへ:mailコマンドでコマンドラインからメールを送受信する方法|件名・添付・スクリプト連携も
- この記事の属するカテゴリ:Linuxコマンド・LinuxコマンドK-O・ネットワーク管理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます