(最終更新月:2023年4月)
✔このような方へ向けて書かれた記事となります
「netstatって何ができるの?」
「netstatでネットワークを正しく管理したい」
「netstatを使った実例が知りたい」
✔当記事を通じてお伝えすること
- netstatとは?
- netstatのオプションとその使い方
- netstatの実例
netstatコマンドについての基本はもちろん、ネットワーク接続やプロセスを確認する方法を紹介します。
コマンドは実例付きなので、初めての方でもわかりやすく、即実践に移せます。
ぜひ最後までご覧ください。
netstatについての基礎知識5選
netstatについて、まずは基礎知識を身につけましょう。
こちらに書いてあることは、簡単でも良いので目を通してください。
- netstatとは何か?
- netstatコマンドの基本構文
- netstatのインストール方法
- netstatの重要性と活用例
- netstatの歴史と開発背景
netstatとは何か?
netstatは、ネットワーク接続、ルーティングテーブル、インターフェースの統計情報などを表示するコマンドラインツールです。
ネットワークの状況を把握し、問題を特定する際に役立ちます。
当記事では、初心者にもわかりやすいようにnetstatの使い方を解説していきます。
netstatコマンドの基本構文
netstatコマンドの基本構文はこちら。
netstat オプション
オプションは、表示する情報や出力形式を制御するために使用されます。
例えば、「netstat -a」は、すべてのネットワーク接続を表示します。
$ netstat -a
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態
tcp 0 0 yulikepython-HP-D:51502 52.139.250.209:https ESTABLISHED
tcp 0 0 yulikepython-HP-D:38346 52.139.250.209:https ESTABLISHED
tcp 0 0 localhost:53884 localhost:35285 ESTABLISHED
tcp 0 0 yulikepython-HP-D:52340 ec2-34-237-73-95.:https ESTABLISHED
tcp 0 0 localhost:35285 localhost:53884 ESTABLISHED
tcp 0 0 yulikepython-HP-D:56418 ec2-35-174-127-31:https ESTABLISHED
tcp 0 0 yulikepython-HP-D:53226 ec2-3-113-73-133.:https ESTABLISHED
netstatの重要性と活用例
netstatは、システム管理者やネットワークエンジニアにとって重要なツール。
以下のように、さまざまな用途で使われます。
- 不正な接続の検出やポート競合の解決
- ネットワークパフォーマンスの確認
これらの例を通じて、netstatの使い方を習得することでネットワーク管理が容易になります。
netstatの歴史と開発背景
netstatは、1983年にUNIXシステム向けに開発されました。
その後、WindowsやLinuxなどの様々なオペレーティングシステムで利用可能となったのです。
netstatの開発は、ネットワーク管理者が容易にネットワーク状況を把握できるようにすることを目的としています。
netstatのインストール方法
Windowsでは、netstatはデフォルトでインストールされており、コマンドプロンプトやPowerShellで利用できます。
Linuxでは、netstatは「net-tools」パッケージに含まれており、ディストリビューションによってはインストールが必要です。
例えばUbuntuでは以下のようにインストールします。
sudo apt install net-tools
netstatをマスターするために知っておくべき用語4選
netstatによく出てくる用語をまとめました。
知らないまま進めると、理解が浅くなりますので、どんなものかはわかるようにしておきましょう。
- ネットワーク接続とは
- プロトコルの種類:TCPとUDP
- ポート番号について
- IPアドレスの役割
ネットワーク接続とは
ネットワーク接続とは、コンピュータやデバイスがインターネットやローカルネットワークに接続すること。
これにより、デバイス間でデータのやり取りが可能になります。
ネットワーク接続でとくに重要なのは以下の2つ。
- プロトコル:データをやり取りする際のルール
- ポート:通信の通り道
これらの用語についても、しっかりとイメージを持っておきましょう。
プロトコルの種類:TCPとUDP
プロトコルとは、データをやり取りする際の取り決め・ルールのこと。
郵便でいえば、はがきのレイアウトのようなもので、どこに何が書かれているかが決まっていることにより、はがきの送受信がスムーズに進む役割を果たしています。
ネットワーク接続においては以下の2つのプロとロコルが使われます。
- TCP(Transmission Control Protocol):送信されたデータが正確に届いたことを確認する機能がある
- UDP(User Datagram Protocol):高速通信を重視し、データの到達確認をおこなわない
これにより、リアルタイム性が重要なアプリケーション(例:オンラインゲームやストリーミング)で使用されます。
ポート番号について
ポート番号は、ネットワーク上で通信をおこなう際に、特定のアプリケーションやサービスにデータを送受信するための識別子です。
ポート番号は0~65535の範囲で定義されており、特定のポート番号は特定のサービスに割り当てられています。
例えば、HTTP通信は80番ポート、HTTPS通信は443番ポートを使用します。
IPアドレスの役割
IPアドレスは、インターネット上のデバイスを一意に識別するためのアドレスです。
IPv4アドレスは32ビットの数値で表現され、例えば「192.168.1.1」といった形で表されます。
IPv6アドレスは128ビットの数値で表現され、より多くのデバイスを識別できます。
netstatのオプションを紹介
netstatのオプションを一覧でまとめました。
各オプションについて、例もついているので参考にしてください。
オプション名 | 説明 | 例 |
-a | すべての接続とリスニングポートを表示する | netstat -a |
-n | アドレスとポート番号を数値で表示する | netstat -n |
-p | 接続に関連するプロセスを表示する | netstat -p |
-r | ルーティングテーブルを表示する | netstat -r |
-s | 各プロトコルの統計情報を表示する | netstat -s |
-t | TCP接続のみを表示する | netstat -t |
-u | UDP接続のみを表示する | netstat -u |
-o | 接続に関連するプロセスIDを表示する(Windowsのみ) | netstat -o |
-e | イーサネット統計情報を表示する(Windowsのみ) | netstat -e |
-c | 表示を継続的に更新する(Linuxのみ) | netstat -c |
-l | リスニングソケットのみを表示する(Linuxのみ) | netstat -l |
-i | インターフェースごとの統計情報を表示する(Linuxのみ) | netstat -i |
-g | IPv4とIPv6のマルチキャストグループメンバーシップ情報を表示する(Linuxのみ) | netstat -g |
-M | IPマスカレード接続を表示する(Linuxのみ) | netstat -M |
-W | 広い表示形式で出力する(Windowsのみ) | netstat -W |
実践!netstatコマンドでネットワーク情報を確認しよう
netstatを実際に使った例をご覧ください。
例を見ることで、イメージがわきやすく、すぐに使いこなせるようになります。
- ネットワーク接続の一覧表示
- プロセスIDとプログラム名を表示
- リスニングしているポートの一覧表示
- ネットワーク統計情報の表示
- よく使うオプションの組み合わせ
ネットワーク接続の一覧表示
netstat -a
すべてのネットワーク接続とリスニングポートを表示。
これにより、現在の接続状況を把握し、問題がある場合に特定できるのです。
プロセスIDとプログラム名を表示
netstat -p
各接続に関連付けられたプロセスIDとプログラム名を確認できます。
これにより、特定のプロセスが使用しているネットワークリソースを特定できます。
具体例はこちら。
$ netstat -p
(一部のプロセスが識別されますが, 所有していないプロセスの情報は
表示されません。それら全てを見るにはルートになる必要があります.)
稼働中のインターネット接続 (w/oサーバ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name
tcp 0 0 yulikepython-HP-D:51502 52.139.250.209:https ESTABLISHED 3339/chrome --type=
tcp 0 0 yulikepython-HP-D:38346 52.139.250.209:https ESTABLISHED 3339/chrome --type=
tcp 0 0 localhost:53884 localhost:35285 ESTABLISHED 2962/qemu-system-x8
tcp 0 0 yulikepython-HP-D:52340 ec2-34-237-73-95.:https ESTABLISHED 3339/chrome --type=
tcp 0 0 yulikepython-HP-D:40334 sv14149.xserver.j:https ESTABLISHED 3339/chrome --type=
リスニングしているポートの一覧表示
リスニング中のポートを確認したい場合は、Linuxであれば「-l」オプション、Windowsであれば「-a」オプションを使います。
こちらはLinuxでの例になります。
$ netstat -l
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:35285 0.0.0.0:* LISTEN
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
ネットワーク統計情報の表示
netstat -s
各プロトコルごとのネットワーク統計情報を表示できます。
これにより、ネットワークのパフォーマンスや問題の原因を特定する手がかりを得られます。
具体例もご覧ください。
$ netstat -s
Ip:
Forwarding: 1
470014 total packets received
0 forwarded
0 incoming packets discarded
464778 incoming packets delivered
454987 requests sent out
20 outgoing packets dropped
2 fragments received ok
4 fragments created
よく使うオプションの組み合わせ
よく使われるオプションを組み合わせることで、必要な情報を効率的に取得できます。
例えば、以下のような組み合わせです。
- netstat -an:すべての接続とリスニングポートを数値で表示
- netstat -ant:TCP接続のみを数値で表示
- netstat -anp:すべての接続とリスニングポートを数値で表示し、関連するプロセスIDとプログラム名を示す
これらのオプションの組み合わせを覚えることで、より効率的なネットワーク分析が可能になります。
netstatの使い方:Windows編、Linux編
各OS別での使い方も知っておきましょう。
OSにより、オプションなどが異なるからです。
- Windowsでのnetstatコマンドの使い方
- Linuxでのnetstatコマンドの使い方
- OSごとの違いと注意点
Windowsでのnetstatコマンドの使い方
Windowsでは、コマンドプロンプトやPowerShellを開いてnetstatコマンドを実行します。
基本的な使い方はLinuxと同様ですが、一部オプションが異なることに注意が必要です。
例えば、「netstat -b」は、Windows環境でプロセス名を表示するために使用されます。
Linuxでのnetstatコマンドの使い方
Linuxでは、端末を開いてnetstatコマンドを実行します。
Linux環境では、「netstat -p」オプションがプロセス名の表示に使われていることを覚えておきましょう。
似ているコマンドとして、「ss」コマンドが存在します。
OSごとの違いと注意点
OSごとにいくつかの違いがありますが、基本的なコマンド構文やオプションは共通しています。
OSによっては独自のオプションがあることに注意してください。
管理者権限が必要なオプションもありますので、適切な権限で実行しましょう。
netstatのトラブルシューティング
netstatにおける問題やその対処法をご覧ください。
事前に知っておけば、回避できるものもあるでしょう。
- 不正な接続の検出
- ポート競合の解決方法
- ネットワークパフォーマンスの確認
- netstatコマンドのよくあるエラーと対処法一覧
不正な接続の検出
netstatコマンドを使用して、不正な接続や未知のプロセスを検出できます。
例えば、「netstat -an」で表示される接続を確認し、疑わしい接続があれば対処が必要です。
ポート競合の解決方法
複数のアプリケーションが同じポートを使用して競合が発生した場合、netstatコマンドで該当ポートを使用しているプロセスを特定し、適切な対処ができます。
ネットワークパフォーマンスの確認
「netstat -s」コマンドでネットワーク統計情報を確認することで、ネットワークパフォーマンスの問題があるかどうかを判断できます。
例えば、送受信パケットのエラーやドロップの数が多い場合、ネットワークの問題がある可能性が高いです。
netstatコマンドのよくあるエラーと対処法一覧
よくあるエラーを一覧にまとめました。
エラー内容 | 対処法 |
コマンドが見つからない | 環境変数のパスが正しく設定されているか確認し、必要に応じて修正します。 |
権限がない | 管理者権限でコマンドプロンプトやターミナルを開き、再度コマンドを実行してみてください。 |
コマンドオプションの誤入力 | オプションのスペルや順序が正しいか確認しましょう。また、オプションを組み合わせる際には、対応するオプションが正しく使われているかを確認してください。 |
ネットワーク接続が正しくない or ネットワーク障害が発生している | ネットワーク接続を確認し、必要に応じて修正・再接続を行います。また、ネットワーク管理者に問題を報告して対応を依頼しましょう。 |
プロセスがプロトコルをサポートしていない | 対象プロセスが指定したプロトコルをサポートしていることを確認し、必要に応じてオプションを変更してコマンドを実行します。 |
netstatの代替ツールやアプリ
netstatの代わりになるツールやアプリケーションについても見ていきましょう。
コマンドに慣れない方はツールの活用がおすすめです。
- オープンソースの代替ツール
- コマーシャルな監視アプリケーション
- 各ツールの特徴と使い方
- どのツールを選ぶべきか?
オープンソースの代替ツール
オープンソースとは無料で使えるツールのこと。
有名なものはこちらです。
- Nmap:ネットワーク探索とセキュリティ監査ツール
- Wireshark:ネットワークパケットをキャプチャ・解析するツール
- Tcpdump:コマンドラインベースのネットワークパケットキャプチャツール
コマーシャルな監視アプリケーション
監視アプリケーションとして使われるものには、以下のようなものがあります。
- SolarWinds Network Performance Monitor:ネットワークパフォーマンス監視ツール
- PRTG Network Monitor:統合監視ソリューション
- ManageEngine OpManager:ネットワーク管理・監視ソフトウェア
各ツールの特徴と使い方
代表的な代替ツールには、「ss」「lsof」「tcpview」などがあります。
- ss:Linuxで推奨されており、netstatよりも高速に情報を表示できる
- lsof:プロセスが開いているファイルやソケットを表示するツールで、ネットワーク接続情報も含む
- tcpview:Windows専用のGUIツールで、リアルタイムでネットワーク接続を表示
どのツールを選ぶべきか?
使用するツールは、個々の状況やニーズに応じて選ぶべきです。
例えば、Linux環境で高速に情報を表示したい場合は「ss」。
特定のプロセスが開いているリソースを調べたい場合は「lsof」を選ぶと良いでしょう。
また、GUIを好む場合はWindowsの「tcpview」が適しています。
まとめ:netstatを使って、ネットワークの管理を効率化
当記事の内容をまとめます。
- netstatは、ネットワーク接続を確認できるツール
- OSによって、オプションなどが異なる
- netstat以外にも使えるコマンドやツールも知っておくと便利
netstatコマンドを使うと、PCのネットワーク接続状況が一目瞭然。
ネットワークについて詳しくなりたい方や管理する立場にある方は、知っておくべきコマンドのひとつといえるでしょう。
いつでも当記事に戻ってきていただいて、必要な情報を入手してください。