BIND 9.16.xx版本如何固定DNS查询出站源端口?
BIND 9.16.xx版本如何固定DNS查询出站源端口?
嗨,我来帮你搞定这个BIND版本升级后的源端口问题~
你遇到的情况很典型:BIND 9.11里用query-source port 53;就能固定出站查询的源端口,但到了9.16版本,这个写法被标记为废弃(deprecated)了,默认会随机选端口。不过别担心,官方提供了新的配置方式来实现同样的需求:
解决步骤
修改named.conf配置
打开你的/etc/named.conf,在options块里替换掉原来的query-source address *;,添加(或修改)以下配置:options { ... # 固定UDP查询的源端口为53(如果只需要UDP就加这行) udp-source-ports 53; # 如果需要TCP查询也固定源端口,加上这行 tcp-source-ports 53; ... }这里的
udp-source-ports可以指定单个端口或者端口范围(比如53-53和直接写53效果一样),设置为53就会让所有UDP DNS查询都用53作为源端口。确认端口可用性
要确保53端口没有被系统上其他服务占用(比如如果本机还有其他DNS服务在运行的话),否则BIND启动会失败。可以用ss -ulpn | grep :53命令检查端口占用情况。重启服务并验证
重启named服务(比如systemctl restart named),然后再用tcpdump抓包测试,你应该能看到出站查询的源端口已经变成53了。
补充说明
BIND 9.16之所以废弃query-source port,是因为官方希望用全局的端口控制选项来统一管理UDP/TCP的源端口,这样配置更清晰也更灵活——如果之后需要调整端口范围,直接修改这两个全局选项就行,不用在每个视图或zone里重复设置。
备注:内容来源于stack exchange,提问作者JYC
相关产品推荐
相关产品推荐

