netstatコマンドでネットワーク情報を確認する方法|後継のssコマンドとの対応表もコマンド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドK-O, ネットワーク管理コマンド > netstatコマンドでネットワーク情報を確認する方法|後継のssコマンドとの対応表もコマンド
「開いているポートを確認したいけど、netstatが入っていない」
「どのプロセスがどのポートを使っているか、一発で知りたい」
Linuxサーバーのトラブル対応では、開放ポートやコネクション状態を素早く把握する必要があります。

この記事では、netstatコマンドの基本的な使い方から、リッスンポート確認、プロセスとの紐付け(-p)、ルーティングテーブル表示、後継のssコマンドとの対応まで解説します。最新ディストリビューションではssが標準になっていますが、古い手順書や既存スクリプトとの互換のためnetstatを理解しておく意義は今も大きいです。
【この記事でわかること】
・netstatはコネクション状態・リッスンポート・ルーティングなどを確認できる定番コマンド
・RHEL7以降は非推奨で、標準はssコマンド。出力項目はほぼ同じで覚え直しは不要
-tlnp(TCPリッスン+プロセス)、-rn(ルーティング)が現場での最頻出パターン

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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コマンドとの対応関係

ssnetstatより高速で、表示も同系統です。まずはこの表を押さえておけば移行で困りません。
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_rangetcp_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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。