参考: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服务的监听情况

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐