使用nc指令扫描远程主机是否开启端口
测试机器为Centos7
在测试机器上执行:
[root@localhost JMKVCloud]# firewall-cmd --zone=public --add-port=8989/tcp --permanent
success
[root@localhost JMKVCloud]# firewall-cmd --reload
此时机器的端口已经开放,但是在另一台机器上向该主机确认
无论是
telnet 192.168.6.68 8989
还是
nc -zvw3 192.168.6.68 8989
均是失败告终
后分析得知,虽然防火墙已经开放了该端口,但是在测试机器上,没有后台程序侦听该端口,因此无法使用telnet或者nc来扫描确认
另外注意,telnet是基于tcp协议的,因此无法侦测udp协议
很有意思的是,使用nc客户端去连接nc服务端时,一旦通讯成功,服务端会自动退出。
在测试机器上,开启后台侦听,以便在另一台机器上可以确认该端口已经打开
[root@localhost JMKVCloud]# nc -lp 8080 &
此时继续在另一台机器测试,可以得到预测的结果
nc命令的常用参数
1) -l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
2) -p <port>
限制数据发送原端口
3) -s
指定发送数据的源IP地址,适用于多网卡机
4) -u
指定nc使用UDP协议,默认为TCP
5) -v
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字
7)-z
表示zero,表示扫描时不发送任何数据
nc 使用目的:
-
侦听任意端口,以TCP/UDP 方式
-
端口扫描
-
传输文件
-
测速

浙公网安备 33010602011771号