背景
有些网络要求严格的环境上,会按需开放端口,在有些服务、分布式服务需要多个端口的时候,需要做好测试,避免某个端口无法联通导致的异常问题。
一般情况下 tcp 端口是比较好测试的,它有协议,我们只需要使用 telnet 测试端口是否联通即可。但是 udp 确不太好测试,它无状态、不需要握手,发过去的包它无需回复是否接收,那么应该如何测试呢?
nc、ncat、netcat
对于 udp 的测试我们可以使用 nc、ncat 工具,它可以在一台作为 server 端的机器上监听 udp 端口,然后客户端上连接,成功连上后,客户端发送的内容在服务端会显示,即可测试、验证通信无问题
使用以下步骤进行测试:
- 服务端监听udp端口
# 服务端监听udp 4803 端口
nc -ulp 4803
- 客户端连接
ncat -u 192.168.3.100 4803 -w 5000ms -v
# 输入内容,然后在服务端窗口查看内容是否一致
PS. 重要的问题
在测试过程中存在一个规则,服务端监听后,只允许一个客户端接入发送消息,如果此时第二个客户端再连接,会提示连接被拒绝,这种情况很容易误导是网络存在问题。正确的步骤应该是测试第二个客户端的时候重新在服务端运行监听命令,然后第二个客户端再接入
评论