如何强制Bind9仅监听本地及VPN IP,避免监听公网IP?
Bind9仅监听指定IP的解决方法
排查与修复步骤
清理重复监听配置
打开Bind9主配置文件(通常为/etc/bind/named.conf.options或/etc/named.conf),确保仅保留一条listen-on指令,同时注释掉默认的全地址监听配置:listen-on port 53 { 127.0.0.1; 10.8.0.1; }; # 注释掉默认的全量监听配置 # listen-on { any; };处理IPv6监听(可选)
若不需要IPv6监听,添加或修改listen-on-v6配置禁用所有IPv6监听:listen-on-v6 { none; };若仅需IPv6本地监听,则设置为:
listen-on-v6 port 53 { ::1; };验证配置语法
执行命令检查配置是否存在语法错误:named-checkconf无任何输出即为配置语法正确。
重启Bind9服务
根据操作系统执行对应重启命令:- Debian/Ubuntu系统:
sudo systemctl restart bind9 - RHEL/CentOS系统:
sudo systemctl restart named
- Debian/Ubuntu系统:
确认监听状态
重启后用以下命令检查监听地址:ss -tulpn | grep named正常情况下应仅看到
127.0.0.1:53和10.8.0.1:53的监听记录。
额外排查点
若操作后仍监听公网IP,检查配置文件中的include指令是否引入了其他包含listen-on { any; };的子配置文件(比如named.conf.local),确保所有配置文件中均无全地址监听的设置。
内容的提问来源于stack exchange,提问作者Kalle
相关产品推荐
相关产品推荐

