サーバー側からポートが開いているか調べる
# netstat -nap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 20999/smbd tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 1864/snmpd tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2182/php-fpm tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1551/mysqld tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 20999/smbd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 20576/sshd tcp 0 0 :::80 :::* LISTEN 16673/httpd tcp 0 0 :::22 :::* LISTEN 20576/sshd ... ...
知りたいことに応じて以下オプションを使用する。
-l, --listening リッスンしているものだけ -n, --numeric ポートやIPそのままで表示 -t, --tcp TCPを表示 -u, --udp UDPを表示 -x, --unix UNIX Domainソケットを表示
Linuxなら netstatでなくてssコマンドでもよい。出力が若干違うがほぼ同じ。
netstatならWindowsにもあるので、OSの違いをあまり考えずに打ててよい。。
外からポートが開いているか調べる
telnetでポート番号を指定して通信してみて、拒否されなければポートは空いているはず。
$ telnet IPアドレス ポート番号
$ telnet 192.168.0.123 110
nmapコマンドでスキャンするのもよい。
$ nmap -sT -pポート番号 IPアドレス
$ nmap -sT -p110 192.168.0.123 Starting Nmap 5.51 ( http://nmap.org ) at 2017-07-14 14:28 JST Nmap scan report for 192.168.12.239 Host is up (0.020s latency). PORT STATE SERVICE 110/tcp open pop3 Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
ファイアウォール
サーバーが立ち上がっていても、接続できないときは、ファイアウォール(iptablesなど)で拒否されている可能性もあるので、要確認。