アリスです。
netstatコマンドは、network statisticsの略です。statisticsは統計です。
ずっとstatusの略かと思っていましたが、どうやら違うようです。
netstatコマンドはネットワーク接続の状態を表示します。
netstatと打つと、下記のように表示されます。
プロトコル ローカル アドレス 外部アドレス 状態
TCP uxpc15:2112 server1:microsoft-ds ESTABLISHED
TCP uxpc15:2167 server2:pop3 ESTABLISHED
netstatコマンドのオプション
netstatコマンドにはたくさんのオプション引数があります。
もちろん全て覚える必要はありません。
必要な時にLinuxならターミナルで「man netstat」Windowsならコマンドプロンプトから「netstat help」と打てば使い方の説明が表示されます。
実際よく使うオプション引数は2つくらいです。aとnオプションです。
そのため、netstatコマンドを打つときは、「netstat -an」と入力すると覚えてもいいです。
Linux限定ですがpオプションを使う時も多いです。Linuxでは「netstat -anp」と入力すると覚えておいてもよいでしょう。
aオプション
allのことです。
すべての接続と接続待ちポート(リッスンポート)が表示されます。
aオプションを指定しなければ、接続中のポートだけが表示されます。
nオプション
numeric(数字)のことです。
DNSによる名前解決をせずに、IPアドレスがそのまま数字表示されます。
netstat -n と打つと下記のように出力されます。
プロトコル ローカル アドレス 外部アドレス 状態
TCP 192.168.0.111:1085 172.16.10.51:139 ESTABLISHED
TCP 192.168.0.111:2874 172.16.10.54:445 ESTABLISHED
TCP 192.168.0.111:3435 172.16.10.51:80 ESTABLISHED
TCP 192.168.0.111:3979 172.16.10.51:445 ESTABLISHED
nオプションを指定しなければ、PCのホスト名(コンピュータ名)が表示されます。
nオプションを付けない場合に、PCのホスト名が想定したホスト名と違う場合があります。
その原因と解決策は後述します。
pオプション
Linuxでは、programのことです。
どのプログラムでIPとポートが使用されているかが表示されます。
Windowsではprototypeの略で、TCPで使われている接続だけとか、UDPだけとかで表示することができます。
aオプションとnオプション以外は不要な理由
Linuxであれば、aオプションとnオプション以外は覚えなくてもいいでしょう。
aで全て表示できるので、必要な接続を見つけたいときは、その中からgrepして見つければよいからです。
例えばtcp接続だけを表示するときは、下記のようなコマンドになります。
netstat -an | grep tcp
netstatコマンドにはTCP接続を表示するtオプションがあるのですが、不要なのです。
ただし、grepコマンドが使えるのはLinuxだけです。
netstatコマンドの味方
①プロトコル ②ローカル アドレス ③外部アドレス ④状態
TCP 192.168.0.111:1085 172.16.10.51:139 ESTABLISHED
(1) プロトコル種類
TCP、UDPなど、コネクションの種別を表示
(2) ローカル(接続元)ホストのIPアドレスとポート名(番号)
「0.0.0.0」は自身が持つどのインターフェイスへの接続でも受け付ける
(3) 接続先ホスト名(IPアドレス)とポート名(ポート番号)
(4) 接続のステータス(ESTABLISEDは接続中)