(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【UNIX】netstatでポート番号を表示する

スポンサーリンク

背景

X11で利用しているポート番号を調査しようと

netstat -a

を利用したが、

tcp4	0	0	A.B.C.D.33463	a.b.c.d.x11	ESTABLISHED

プロトコル変数が表示されてしまう。

解決策

オプションとして-nを追加すれば解決しました。

netstat -an

を利用することで、

tcp4	0	0	A.B.C.D.33463	a.b.c.d.6000	ESTABLISHED

ポート番号が表示される


以下、補足です。

補足

ネットワークの状況を表示するnetstatコマンドは、
オプションで-aを指定することで全てのソケットの状態を示せます。

一方で、プロトコル変数に合致するものはプロトコル変数で表示されてしまいます。

プロトコル変数

/etc 配下にあるserviceファイルに記載されています。

# cat /etc/services | grep ssh
ssh		22/tcp
ssh		22/udp

といったように、プロトコル名と対応するポート番号がこちらで定義されています。

肝心のx11を検索してみると、

# cat /etc/services | grep x11
x11		6000-6063/tcp
x11		6000-6063/udp

と幅があります。

netstatのマニュアルを読む

-nオプションについて、

ネットワーク・アドレスを番号で表示します。このフラグを指定しない場合、netstatコマンドは可能なアドレスを解釈し、記号として表示します。

という記載があります。

おそらく、ホスト名のaliasを外したい場合に利用することが一般的だと思いますが、プロトコル変数も外せます。

WindowsでXサーバソフトを動かしている場合

コマンドプロンプトnetstatコマンドを打てばポート番号が確認できます。

tcp 	a.b.c.d:6000	A.B.C.D:33463	ESTABLISHED

これは、クライアントであるUNIX系サーバ側のnetstatコマンドと対となっています。

tcp4	0	0	A.B.C.D.33463	a.b.c.d.6000	ESTABLISHED

この33463は実行させる度に変更されるポートとなります。


以上、同事象を検索していた際になかなか結論に辿りつけなかったので備忘録として残しておきます。