UNIX のコマンド:netstatコマンド
技術ドキュメント目次 -> UNIX のコマンド -> netstatコマンド本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
◆ netstatコマンドとは
netstatコマンドは、ネットワークの状況を確認することのできる非常に便利なコマンドです。
ここでは、RedHat7.3に付属する netstat コマンドをベースに説明いたします。
他の環境ではコマンドのオプション名が違っていたりするかもしれませんが、それにつきましては、
man コマンドなどをご参照ください。
◆ ネットワークの状況を確認する
マシンのネットーワーク的な状況を確認するために、おそらくもっとも頻繁に使用するかと思われる netstat コマンドの使い方は、
netstat -an という -an オプションでの使用になるかと思います。
ここではこの -an オプションについて解説します。
-an では a と n のオプションが有効になっていますが、
これは、それぞれ次のような意味になっていて、
-an では使用中の全てのソケットについての情報をぱっと参照することが可能です。
a:全てのソケットについての情報を表示する。
n:表示の際に名前の解決を行わない(表示が速くなります)。
netstat -an を実行すると次のような出力が表示され、
インターネットドメインのソケットとUNIXドメインのソケットに対して、
LISTEN・ESTABLISHEDなどの各情報が表示されます。
# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN tcp 0 0 192.168.1.2:22 192.168.1.101:4235 ESTABLISHED udp 0 0 0.0.0.0:32768 0.0.0.0:* udp 0 0 127.0.0.1:32769 127.0.0.1:32769 ESTABLISHED udp 0 0 192.168.1.2:53 0.0.0.0:* udp 0 0 127.0.0.1:53 0.0.0.0:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 8 [ ] DGRAM 865 /dev/log unix 2 [ ACC ] STREAM LISTENING 2178 /dev/gpmctl unix 2 [ ACC ] STREAM LISTENING 1593 /tmp/.s.PGSQL.5432 unix 2 [ ] DGRAM 2191 unix 2 [ ] DGRAM 2150 unix 2 [ ] DGRAM 1508 unix 2 [ ] DGRAM 1266 unix 2 [ ] DGRAM 950 unix 2 [ ] DGRAM 881 # |
また、
おそらく、最近の Linux のみで有効なオプションであるかと思うのですが、
p というオプションも付加すると、
そのソケットを使用しているプロセスについての情報(プロセス名とプロセスID)に
ついても表示されるようになるため、どのプロセスがどのようなネットワーク処理を
行っているのか確認することができ、非常に便利です。
netstat -anp の実行例は次のようになります。
# netstat -anp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 627/xinetd tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 627/xinetd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 834/httpd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 627/xinetd tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN 586/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 586/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 606/sshd tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 660/postmaster tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 924/sendmail: accep tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 586/named tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 834/httpd tcp 0 20 192.168.1.2:22 192.168.1.101:4235 ESTABLISHED 1670/sshd udp 0 0 0.0.0.0:32768 0.0.0.0:* 586/named udp 0 0 127.0.0.1:32769 127.0.0.1:32769 ESTABLISHED 660/postmaster udp 0 0 192.168.1.2:53 0.0.0.0:* 586/named udp 0 0 127.0.0.1:53 0.0.0.0:* 586/named Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 8 [ ] DGRAM 865 513/syslogd /dev/log unix 2 [ ACC ] STREAM LISTENING 2178 941/gpm /dev/gpmctl unix 2 [ ACC ] STREAM LISTENING 1593 660/postmaster /tmp/.s.PGSQL.5432 unix 2 [ ] DGRAM 2191 953/crond unix 2 [ ] DGRAM 2150 924/sendmail: accep unix 2 [ ] DGRAM 1508 627/xinetd unix 2 [ ] DGRAM 1266 586/named unix 2 [ ] DGRAM 950 573/apmd unix 2 [ ] DGRAM 881 518/klogd # |
◆ ルーティングの状況を確認する
netstat に r オプションを付加して実行すると、マシンのルーティングの状態を確認することができます。
-rn オプションで netstat を実行したときの出力は次のようになります。
# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo 0.0.0.0 192.168.1.1 0.0.0.0 UG 40 0 0 eth0 # |
(これは route コマンドを実行したときと同じ出力内容です)
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 # |
◆ インターフェイスの状況を確認する
netstat に i オプションを付加して実行すると、マシンの各NICについての情報を確認することができます。
最近はあまり無いかもしれませんが、10BASAE-T のNICを使用していたときに、
コリジョン(パケットの衝突)の発生頻度を確認するのに使用したりもしていました。
# netstat -in Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 928 0 0 0 775 0 0 0 BMRU lo 16436 0 268 0 0 0 268 0 0 0 LRU # |
■ UNIX のコマンド についての他のドキュメント
- cdコマンド
- cutコマンド
- dirnameコマンド
- ftpコマンドのバッチ処理
- loggerコマンド
- netstatコマンド
- nkfコマンド
- sortコマンド
- topコマンド
- tracerouteコマンド
- unameコマンド
- wcコマンド
- wget コマンドでミラーを取る
- whoisコマンド
- writeコマンド
- xargsコマンド(複数ファイルの一括検索で超便利)
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS