netstat 〜ホストのネットワーク統計や状態を確認する 加地眞也 2002/1/30 |
目的と用途 |
netstatコマンドは、ホストのネットワーク接続状態やソケット/インターフェイスごとのネットワーク統計などを確認するためのコマンドだ。ホストが現在実行している接続一覧とそのステータスを確認できるほか、IPやTCP/UDP以下の各パケット統計やエラー状態なども調べられる。ホストにおけるネットワーク調査全般の総合的なコマンドを意図しているので、ルーティング・テーブルの確認など、ほかのコマンドと同様の機能も実装されている。
なお、各機能の設定については、ifconfigやrouteなどの専用コマンドまたはGUIによるプロパティ設定が必要だ。
書式 |
●Windowsの場合
netstat[ -a][ -e][ -n][ -s][ -p プロトコル][ -r][ インターバル]
オプションなし
|
現在の有効な接続(ESTABLISHED)のみを表示する |
-a
|
現在のすべての接続を表示する |
-e
|
インターフェイス・レベル(イーサネット)の統計情報を表示する |
-n
|
出力をIPアドレスなど数値のみに抑制する(DNS逆引きを行わないなど)。ほかのオプション内容へ影響する |
-s
|
プロトコルレベル(IP/TCP/UDP/ICMP)の統計情報を表示する |
-p
|
プロトコルごとの接続をリストする。プロトコルにはTCPかUDPを指定する。-sとともに使用すると、そのプロトコルに関する情報のみの表示を行う |
-r
|
ルーティング・テーブルを表示する |
インターバル
|
この間隔で連続自動実行する。単位は秒 |
●Linuxの場合
――接続一覧表示
netstat[ -vnNcaeol][ ソケットレベル]
――インターフェイスごとの統計表示
netstat[ -veenNac] -i
――マスカレード機能の統計表示
netstat[ -cnNe] -M
――ネットワーク全般の統計表示
netstat -s[ ソケットレベル]
――ルーティング・テーブルの表示
netstat[ -veenNcCF][ -A アドレスファミリ名] -r
――ヘルプやバージョン表示
netstat -V
netstat -h
オプションなし
|
現在の有効な接続(ESTABLISHED)のみを表示する |
-v
|
詳細モード |
-n
|
出力をIPアドレスなど数値のみに抑制する(DNS逆引きを行わないなど)。ほかのオプション内容へ影響する |
-N
|
インターフェイス名の解決を行う |
-c
|
連続表示 |
-a
|
現在のすべての接続を表示する |
-e
|
拡張表示モード。eeでさらに拡張された表示を行う(主に-rオプションと組み合わせて用いる) |
-o
|
ネットワーク・タイマを表示する |
-l
|
LISTEN状態の接続のみを表示する |
ソケットレベル
|
表示するソケット種別を指定する。TCP(「-t」または「--tcp」)、UDP(「-u」または「--udp」)、そのほかRAWやICMPなど(「-w」または「--raw」)、UNIXドメイン・ソケット(「-x」または「--unix」:-sオプションでは無効)などが指定できる。省略されると表示可能なソケットすべて |
-i
|
インターフェイスごとのパケット統計を表示する |
-M
|
マスカレード接続の表示を行う |
-s
|
ネットワーク統計を表示する |
-t | -u | -w
|
TCP(「-t」)、UDP(「-u」)、そのほかIPとICMP(「-w」)のみ表示する |
-C
|
カーネル・キャッシュでのルーティング・テーブル情報を表示する |
-F
|
FIB(Forwarding Information Base:Linuxにおけるルーティング・テーブルの実装方式。あて先IPアドレスをキーに経路情報を効率的に配置して、性能の向上を図っている)。テーブルからのルーティング・テーブル情報を表示する |
-r
|
ルーティング・テーブル情報を表示する |
-A
|
プロトコル種別ごとに結果を表示する。デフォルトは「inet(IPv4)」。「ipx(IPX)」「inet6(IPv6)」などが使用できる |
-V
|
バージョン情報を表示する |
-h
|
ヘルプを表示する |
使用方法 |
■ネットワーク接続一覧の確認
Windows/Linuxともに、「netstat -a」コマンドによって、現在のネットワーク接続の一覧が表示される。ネットワーク接続とは、主にTCP接続におけるコネクションだ。つまり、ホストのトランスポート層におけるプロトコル情報を表示する。ただし、UDPやRAW(TCP/UDPではないそのほかの任意のプロトコル)ソケットについてもリストアップされる。
単にパラメータなしの場合には、ESTABLISHED状態(接続中)のコネクションのみが表示される。Linuxの場合、単に-aオプションだけではUNIXドメイン・ソケットなども含めて表示されるので、「netstat -aA inet」としてIPv4のみに限定してもよいだろう。
●Windowsでの使用例 | |
|
この例では多少分かりやすくするために、-nオプションも指定して「IPアドレス」と「ポート番号」だけで表示させている。-nを付けない場合には、ポート番号ではなくサービス名が、Linuxで「/etc/sevices」ファイル、Windowsで「Windows ディレクトリ\system32\drivers\etc\services」ファイルで記載された名前で表示される。また、DNS逆引きによるホスト名解決も行われるが、DNSに登録されていないIPアドレスがあると、DNS検索がタイム・アウトするまで表示が行われないので注意しよう。
Linuxでは多少列が多くなるが、基本的には同じ内容だ。列はそれぞれ以下の意味を持っている。
(1) プロトコル種類
TCP/UDP/RAWなど、コネクションのトランスポート種別が表示される(2) ローカル(接続元)ホストのIPアドレスとポート名(番号)
IPアドレスは特定のアドレスとソケットがバインドされている場合にはそのアドレスが、特定されていない場合には「0.0.0.0」(自身が持つどのインターフェイスへの接続でも受け付ける場合)と表示される(3) 接続先ホスト名(IPアドレス)とポート名(ポート番号)
(4) 接続の現在のステータス
ここでまず、ローカルからどのホストのどのアプリケーション(ポート番号)への接続が行われているかに着目しよう。StateがESTABLISHEDとなっているのが現在有効な接続だ。例えば(c)では、ローカルのHTTPサーバ(ポート80)へ「192.168.1.11」から接続されていることが分かる。ただし、これは接続状態を持つTCPの場合だけだ。UDPはそもそも状態が存在しないので表示されない。
StateがLISTENである接続は、外部からの接続待ち受け(ソケットのLISTEN状態)を行っていることを示している。例えば(a)の行は、HTTPサーバ(ポート80)への接続を待ち受けている。つまり、サーバ・プロセスによって今後接続が開始されるかもしれないことを示している。特にインターネットに直接接続されているホストでは、不用意に起動して不正侵入の足掛かりになるプロセスやサービスがないかどうか確認することもできるだろう。例では、(b)はNetBIOSデータグラムへの接続待ち受けであり、大変危険であると判断できる。
また、TCPとUDPで同じポート番号を待ち受けしている場合もある(UDPでは「Foreign Address」が「*:*」となっている接続)。これはアプリケーションでの対応にもよるが、どちらの通信でも可能なアプリケーションということだ。Linuxの場合には-lオプションを用いて、明示的にLISTEN(とESTABLISHED)状態のソケットだけを表示することもできる。
●Linuxでの使用例 | |
|
なお、アドレスが「0.0.0.0」となっている場合は、そのソケットはホストに存在するあらゆるIPアドレスとも結び付けられている(バインド)。明示的にIPアドレスが振られている場合には、そのIPアドレスへの接続のみと通信する。ホストがマルチホームとなっていた場合には、どのインターフェイスから接続されるか分からないために必要となる。
■ネットワーク統計情報
「netstat -s」は、ホストのネットワーク統計情報を表示する。IPやTCP/UDP、ICMPといったプロトコルごとの統計情報が確認できる。それぞれ、該当するOSのプロトコル・スタックごとに処理された結果となっている。必然的に、IP統計にはTCP/UDP/ICMPの統計も含まれていることに注意しよう。こうした統計からは、そのホストでのプロトコルごとの処理の様子、正常にネットワーク機能が動作しているかどうかをうかがうことができる。例えば統計上処理されたパケットが0ならば、そのホストのネットワーク機能が正しく機能していないと考えることができる。ある特定のネットワーク処理を行って、その前後で比較するのもよいだろう。
なお、これらの統計値はOS起動時からの積算値だ。また明示されていない場合には、マルチホーム・ホストでは複数のインターフェイスの合計値となる。WindowsとLinuxでは統計情報に差異こそあるが、大体は似た内容だ。例を基に解説しよう。
●Windowsでの使用例 | |
|
●Linuxでの使用例 | |
|
(a) IP
処理したIPパケットの統計値。通常のクライアント機やサーバであれば、単にエラー・パケットが報告されていないかどうかなどを確認しよう。通常、かなりの高負荷がかかっているなどの状況でなければ、ほとんどエラーや破棄パケットの発生はないはずだ。また、マルチホーム・ホストでルーティングを行っている場合には、ルーティング関連パケット数のほか、IPパケットのフラグメンテーション(分割)と再構成パケット数にも着目しよう。あまり数や比率が高いようであれば、それだけ処理負荷がかかることになり、ネットワークのパフォーマンスにも影響する。それぞれのインターフェイスのMTUが適切かどうか検討すべきだ。
(1) 受信IPパケット総数
(2) IPヘッダにエラーが発生していた受信IPパケット数
(3) アドレスにエラーが発生していた受信IPパケット数
(4) IPフォワーディング(ルーティング)されたIPパケット数。つまり自身で受信したのではなく、ほかのホストのために転送したIPパケット数だ
(5) 上位プロトコルが不明なIPパケット数。TCPやUDPなど自身でハンドリング可能なプロトコルでなかったパケット数である
(6) 受信バッファが足りないなどの理由で上位プロトコル(TCP/UDPなど)へ届けられずに破棄された受信IPパケット数。ここが0でない場合には、受信バッファサイズを大きくすることも考慮しよう
(7) 上位プロトコル(TCP/UDPなど)へ正常に届けられた受信IPパケット数
(8) 下位プロトコル(イーサネットなど)へ転送できた送信IPパケット総数
(9) 破棄されたルーティングIPパケット数
(10) 破棄された送信IPパケット数
(11) 経路が不明であったルーティングIPパケット数
(12) 再構成が必要だったIPパケット数/成功IPパケット数/失敗IPパケット数
(13) フラグメントしたIPパケットの成功数/失敗数/作成したパケット数
(b) ICMP
ICMPは、ルータやホスト間で通信されるネットワーク状態通知のためのパケットだ。つまり、ここに現れるのは利用状態というよりも、よりシステム的な情報ということになる。あまり気にしなくてよい場合も多いが、例えば「Redirect」メッセージが多く表示されていれば、ルーティング経路が間違っている可能性がある。「Source
Quench」が発生していたら、経路上のどこかでバッファ不足が発生しているのかもしれない。また、より厳密には、パケット数ではなくメッセージ数であることにも注意しよう。
(14) 受信したICMPメッセージ総数
(15) 送信したICMPメッセージ総数
(16) 受信に失敗したICMPメッセージ数
(17) 送信に失敗したICMPメッセージ数
(18) 送受信したICMP Type別メッセージ数。メッセージタイプごとに集計表示される
(c) TCP
TCPはコネクション指向プロトコルであるので、パケット数ではなく主にコネクション数となることに注意しよう。
(19) Active Open(LISTENしている別のソケットへ能動的に接続:クライアントとしての動作)した総数
(20) Passive Open(LISTENしているソケットへ接続された受動的な接続:サーバとしての動作)した総数
(21) 接続失敗数
(22) リセットされた接続数(または送受信のそれぞれの数)
(23) 現在のコネクション総数。「netstat -a」でより詳細を確認できる
(24) 送信/受信/(TCPにおけるパケット喪失時の)再送されたTCPセグメント(データ)数。再送数が多い場合は、ネットワーク経路などでパケットを喪失する現象が発生している
(25) 不正なセグメントの受信数
(d) UDP
UDPではTCPと異なりコネクションの概念はないので、パケット単位の統計となる。
(26) 受信UDPパケット総数
(27) 該当する転送すべき上位アプリケーション(ポート番号)がなかったUDPパケット数。UDPは「勝手に送り付けられる」パケットなので、ここが比較的高い値になることもそれほど珍しくない
(28) エラー受信UDPパケット数
(29) 送信UDPパケット総数
■インターフェイスごと/イーサネット・レベルでの統計情報
Linuxでは「netstat -i」で設置されているインターフェイスごと(つまりイーサネット・レベルでもある)の統計情報を表示できる。
●Linuxでの使用例 | |
|
(1) インターフェイス名
このインターフェイスごとに集計された統計を各行に表示する(2) インターフェイスごとのMTU値
(3) インターフェイスごとのメトリック数
(4) 受信関連統計値
順に、正常パケット数/エラー・パケット数/破棄パケット数/オーバーロード・パケット数(5) 送信または転送関連統計値
順に、正常パケット数/エラー・パケット数/破棄パケット数/オーバーロード・パケット数を示す
Windowsでもインターフェイスごとではないが、イーサネット・レベルでの統計情報を表示できる。
●Windowsでの使用例 | |
|
(1) 受信/送信したデータの合計バイト
(2) 受信/送信したユニキャスト・フレーム数
(3) 受信/送信した非ユニキャスト(ブロードキャストなど)フレーム数
(4) 受信/送信時に破棄されたフレーム数
(5) 受信/送信時にエラーになったフレーム数
(6) 上位プロトコルが不明なフレーム数
■ルーティング・テーブルの確認
「netstat -r」でルーティング・テーブルの表示が行える。表示される内容などはrouteコマンドとほぼ同様だ。詳しくはrouteコマンドを参照してほしい。
関連記事 | |
ネットワークの設定は正しいか? 重要なのはIPアドレスとサブネットマスク |
|
ホストのネット接続は正しく行われているか? netstatによるネットワーク設定の確認 |
|
関連ネットワーク・コマンド/ツール | |
netstat 〜ホストのネットワーク統計や状態を確認する |
|
ネットワークトラブル解決法
|
ネットワークコマンド使い方
|
ネットワーク・コマンドでトラブル解決
トラブルシューティングに便利な各種コマンド/ツール事典。各ツールの活用法をまとめたTipsも順次アップデート!
- 第1回 つながらないネットワークの原因を特定する!
- 第2回 ネットワークトラブル、まずはホストの設定を見直そう!
- 第3回 ルーティングのトラブル、まずはその仕組みから理解!
- 第4回 イーサネットの通信は正しく行えているか?
- 第5回 TCP/UDPの接続ステータスを確認しよう!
- 第6回 DHCPの自動設定機能をうまく使いこなすコツは?
- 第7回 DNSの設定と動作は正しいか?
コマンドを使ってトラブルシューティング
社内のPCが突然、メールを受信できなくなり、Webも見られない環境になってしまった。そんなとき、どのように対処するべきか
- 第1回 LANから外に出られない!?
- 第2回 どうして課長だけプリントできない?
- 第3回 ネットワークに同じIPアドレスが2つある?
- 第4回 同じメールしか受信できない!?
- 第5回 ファイルがアップロードできない?
- 第6回 私だけネットワークにつながらない!?
- 第7回 特定のサイトにだけアクセスできない
- 第8回 無線LANでメールがたまに受信できない?
- 第9回 外部を勝手に攻撃しているのは誰?
- 第10回 夜になるとネットワークが遅くなる?
- 最終回 怪しいサイトに飛ばされるんだけど
ツールを使ってネットワーク管理
名前しか知らない後輩君がやってきた。彼によると、コマンドはすでに古くツールがクールだという。ならば教えてもらおうではないか
- 第1回 後輩のツール君曰く、コマンドはもう古い!?
- 第2回 勝手にネットにつないでるマシンを探せ!
- 第3回 私用メールする子にお仕置きを
- 第4回 OSやアプリケーションの箱がなくなっても大丈夫?
- 第5回 俺の「パスワード:*****」って何でしたっけ?
- 第6回 ユーザー名と同じ安易なパスワードを撲滅せよ!
- 第7回 いきなりナウでヤングなWebサイトを管理しろって……
- 第8回 「POPFile」でスパムと無駄な時間は除去じゃ!
- 第9回 それはスパムか否か、POPFileの振り分けを鍛える
- 第10回 情報漏洩防止のためにPC監視!?「WatchYourPC」
- 第11回 とにかく社内でWinnyの起動をやめさせたい
- 第12回 USBでコピーデータを家に持ち帰らせたくない
- 第13回 パスワード、記憶に頼っていて大丈夫?
- 第14回 サーバ異常をメールで知らせる統合監視ツール
- 第15回 メールサーバがいっぱいですよ、と警告されたら
- 第16回 出張中のメール送信にご用心!
- 第17回 安いホスティングに引っ越しって簡単にいうけど
- 第18回 WebサーバにFTPできないんですけど……
- 第19回 PC環境の移行。あなたならどうする?
- 第20回 サーバのリモートバックアップをさせたい
「Master of IP Network総合インデックス」 |
TechTargetジャパン
- 世界に誇りたくなる日本発の音楽系サービス、nana (2012/9/19)
シンプルなUIや使い心地を実現するだけでなく、著作権にまつわるリスクを巧みにかわす音楽系サービスが登場した - Webサービスのための高速ネットワーク技術(前編) (2012/8/1)
2つの有力な高速ネットワーク技術によって、サーバのネットワーク性能はどこまで引き出せるのかを検証! - Interop Tokyo 2012で見えたOpenFlowのこれから (2012/7/25)
6月に開催された「Interop Tokyo 2012」の中で最も目立っていたOpenFlow関連の展示の意味をひもときます - 天に召されたデータに献杯! (2012/7/20)
6月20日に起きた大規模障害にほんろうされた人々が集まり、被害報告や経緯の分析、杯と愚痴を交わし合った
|
|
キャリアアップ
- - PR -
イベントカレンダー
- - PR -
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
「ITmedia マーケティング」新着記事
茨城県の荒茶生産量は前年比96%減〜調査データランキングTOP10
「調査のチカラ」で人気がある調査データを紹介します。「携帯電話・スマートフォンの利...
CRMとDSP広告配信システムを連携、顧客セグメントに最適化した広告を配信、ユラス
ユラスは10月23日、CRMソリューション「MA3+DSP」と「MA3+BigAnalytics」の販売を開始した。
横山隆治氏インタビュー、「DSP/RTBオーディエンスターゲティング入門」を書いた経緯とは(4)
インターネット創成期に、日本のインターネット広告の仕組みを作り上げた功労者の1人、デ...