怎样检测TCP/UDP端口的连通性

1 TCP端口的连通性

TC端口的连通性,一般通过telnet检测:

TCP协议是面向连接的,可以直接通过telnet命令连接

telnet host-ip port

 

2 UDP端口的连通性

因为公司网络防火墙一般对端口会有一些限制,通过公司网络访问外部服务器特定端口时,需要检测与目标服务器特定端口的连通性;

若无法连通,在确认目标服务器相关端口打开时,则很有可能是被公司网络(中间网络)屏蔽了。对于TCP端口,如上一般用telnet检测。

对于UDP端口,一般稍微复杂点:

因为UDP协议是无连接的,不需要握手建立连接,数据发送后,server端也不会返回确认信息。

一般可以使用netcat检测,这个命令被誉为是网络中的“瑞士军刀”,功能非常强大,测试udp只是其中的一个功能变通。

UDP端口连通性测试:

在目标机器监听UDP端口port1, 在客户端机器向目标机器port1端口发送UDP数据报,看能否发送成功。发送成功,则表示可连通。

例如:

a机器上运行:

nc -ul 1080

或:netcat -ul -p 1080

#使用udp模式监听1080 端口

b机器上运行:

nc -u x.x.x.x 1080

或:netcat -u x.x.x.x 1080

#使用udp模式向该ip的1080端口发送信息。

效果如图,在任意一边输入内容,另一边则会收到相应内容,以此就可以测试该端口的udp连接是否通常。

nc测试udp端口

 

 

 

参考:

How does netcat know if a UDP port is open?

Linux Netcat 命令——网络工具中的瑞士军刀

Netcat--Wikipedia

How might one check if a UDP port is open to another server

 

posted @ 2018-03-17 16:37  harvyxu  阅读(82460)  评论(0编辑  收藏  举报