参考:https://phpmianshi.com/?id=279
背景
搭建了一台dnsmasq DNS解析服务器,不想对外网提供服务,只给内网提供解析服务,想关闭udp53端口的入站规则
如何判断UDP 53端口是否提供服务呢?
我们的服务端:123.207.190.86
客户端:115.159.122.65
1. server启动一个icmp抓包侦听:
$ tcpdump -n -i eth0 icmp and host 115.159.122.65
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
2. client发送一个UDP包测试:
$ echo reply-me | nc -u 123.207.190.86 53
server观察抓包情况,没有任何输出,说明没有报错,我们来验证下是否有UDP数据包发过来
3. server启动一个udp抓包侦听:
$ tcpdump -n -i eth0 udp and host 115.159.122.65
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:36:16.580592 IP 115.159.122.65.39059 > 10.105.246.220.domain: [|domain]
我们看到有udp数据包发送过来 IP 115.159.122.65.39059 > 10.105.246.220.domain
说明2台机器之间的UDP数据包是通的
4. 我们换个不存在的端口试试
$ echo reply-me | nc -u 123.207.190.86 51
nc: Write error: Connection refused
server观察抓包情况如下:
11:39:56.795148 IP 10.105.246.220 > 115.159.122.65: ICMP 10.105.246.220 udp port la-maint unreachable, length 45
如果抓包侦听打印出‘ICMP port unreachable’信息,则说明你发送往的那个UDP地址和端口不通
最后我们登录腾讯云,这台server的安全组设置中设置 UDP:53的入站规则设置为拒绝,就OK了
总结
我们可以通过 tcpdump和nc命令检测udp服务的监听情况
|