サーバを立ち上げたけど、サービスになぜか繋がらないというのはよくある話。
プロセスが立ち上がってるのは確かだけど、繋がらない。そんなとき次見る場所としてはポートが空いてるかどうかです。
いくつかポートが空いてるかどうか調べる方法のメモを残しておきます。
ローカルポートが空いてるか見る
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になっていたりする場合があります。
その場合、立ち上げてるサーバからしかアクセス出来ないです。
デフォルトだとそうなってるのが多いので、そこ見てあげると良いでしょう。