Subscribed unsubscribe Subscribe Subscribe

ふり返る暇なんて無いね

日々のメモ書きをつらつらと

ポートが空いてるか調べたいとき

サーバを立ち上げたけど、サービスになぜか繋がらないというのはよくある話。
プロセスが立ち上がってるのは確かだけど、繋がらない。そんなとき次見る場所としてはポートが空いてるかどうかです。

いくつかポートが空いてるかどうか調べる方法のメモを残しておきます。

ローカルポートが空いてるか見る

root権限じゃないとプロセス名が確認できないのでsudoしてます。

sudo netstat -tnp

netstatじゃなくて時代はssだという方は次の方法。
パイプ噛ましてる理由は、ssはデフォルトだとターミナルめいっぱいに表示が広がって見づらいので、こうしてます。他に良い方法知りたいです。

sudo ss -tnlp | cat

外からポートが空いてるか見る

プロトコルを話せるならtelnetで会話してみると良いでしょう。
会話しなくてもrefuseされなければ、ポートが空いてることが確認できます

telnet ${ip_address} ${port}

nmapでポート空いてるかみることができます。STATEがopenなら空いてる。closeなら閉じてる、filteredだとパケットが目的のサーバに到達できずに判定できない感じです。filteredになってるときは、ファイヤーウォールの設定やネットワーク経路を調べて見ると良いかもです。

nmap -sT -p${port} ${ip_address}

余談

よくあるミスとして、バインドアドレスが127.0.0.1だったりlocalhostになっていたりする場合があります。
その場合、立ち上げてるサーバからしかアクセス出来ないです。
デフォルトだとそうなってるのが多いので、そこ見てあげると良いでしょう。