如何使用telnet检测端口是否开放

790 words, 3 mins

本文测试都在 mac,linux 系统也应该差不多,windows相差会比较大。 当你希望检查服务器端口是否能正常连接时,可以使用 telnet 命令

telnet

使用命令telnet [ip or domain name] [port]

端口能连上

测试一下连接 baidu 的 80 端口

✗ telnet baidu.com 80
Trying 220.181.38.148...
Connected to baidu.com.

上面的输出说明是可以连接上的

端口不能连上

随便乱填一个 ip

✗ telnet 1.2.3.4 80
Trying 1.2.3.4...

没有出现 Connected to xxx,说明端口并未开放,无法连接, 当然可能我们的服务已经开始监听此端口,但防火墙阻止了外部的连接。

其它方法

nc

查看指定端口

$ nc -zv 192.168.1.15 22

也可以查看端口范围

$ nc -zv 192.168.56.10 20-80

使用的选项

-z – sets nc to simply scan for listening daemons, without actually sending any data to them.
-v – enables verbose mode.

nmap

查看指定端口

$ nmap –p 80 192.168.1.15

查看端口范围

nmap –p 1-200 192.168.1.15

本地查看端口方法

netstat

netstat -a -n | grep 'LISTEN ' | grep 3000

使用的选项

-a [over netstat] for all sockets

-n [over netstat] don't resolve names, show network addresses as numbers

lsof

sudo lsof -nP -iTCP:3000 | grep LISTEN

使用的选项

-n suppress the host name
-i for IPv4 and IPv6 protocols
-P omit port names