netstatでネットワークの統計情報を取得しよう![netstat]

netstatはネットワーク接続の情報。ルーティングテーブル、各種ネットワークインタフェースの情報などを表示するコマンドです。
network statusの略だと思ってましたが、network statisticの略らしいですね。
統計というよりも状態、のStatusの方がしっくりくるのですが。

-pオプションでUDPやTCPと絞り込む事ができます。
-aオプションでアクティブなコネクションを表示します。

netstat -a -p UDP
netstat -a -p TCP

オプションは続けて記述できますので
netstat -ap TCP
netstat -ap UDP

等でも機能しますが、オプションをばらしてつけないとむずがゆく感じてしまいます

ローカルアドレス、外部アドレス、状態と表示されます。

プロトコル ローカル アドレス 外部アドレス 状態
TCP 192.168.10.123:30231 192.168.10.124:8070 ESTABLISHED

TCP/IPのソフトを作成するときによく使います。
状態がEstablishedで接続されている状態ですね。
この場合、192.168.10.123のIPアドレスを持った自分のマシンが30231番Portから
192.168.10.124のIPアドレス、8070番Portへ接続している事を示しています。

通信が来ないんだけど?と言われた時はとりあえずコイツを実行して確認します。
状態がEstablishedになっていない場合は接続していません。

LISTENINGの場合は、Listenしています。
相手が接続をしに来たらAcceptされますので、Listeningになっている時は
ファイアーウォール等を確認して「繋ぎに来てます?」と言います。
繋ぎに行ってるはずだ!と言われたら

netstat 1 -a -p TCP
としてみましょう。1秒ごとに更新します。
netstat直後の数値オプションは、Intervalとして扱われますので、ここにいれた秒数ごとにnetstatしてくれます。
止める時はCtrl+Cで中断します。

これでずっとListen待ちしてたらポートモニタを使いますが、
ListenしてFirewallないですけど、Listen待ちのままですね。回線を切ってる訳でもなさそうですので、接続しに来ているというのであればポートモニタリングしますけど、どうします?
と伝えましょう。