小型企业局域网中如何启用本地DNS解析?
小型企业局域网中如何启用本地DNS解析?
嗨,我来帮你搞定这个本地DNS解析的麻烦!先梳理下你的现状:
你们用NetGear D6200作为路由交换机,局域网设备都在192.168.0.0/24网段,彼此能通过IP正常ping通,但像ginger.local、basil.local这类本地DNS名却无法解析,会出现类似下面的错误:
ping: cannot resolve basil.local: Unknown host (from the Mac to the VM)
ping: basil.local: Temporary failure in name resolution (from the NAS to the VM)
不过外部域名(比如httpbin.org)的解析完全没问题,说明问题只出在本地域名的解析上。
结合你的设备情况,我给你几个实用的解决方案,按优先级排序:
方案一:利用路由器的本地主机名映射功能
NetGear D6200本身支持静态主机名映射,这是最简单的方法:
- 打开浏览器登录路由器管理界面(默认地址是
192.168.0.1,如果改过就用你设置的管理IP) - 找到「高级」→「局域网设置」或者「DHCP设置」里的「静态DHCP分配」或「主机名映射」选项
- 把每个设备的静态IP和对应的
.local域名一一添加进去(比如192.168.0.10对应ginger.local) - 保存设置后,路由器就会成为局域网的DNS解析中心,所有设备都能通过它解析本地域名了
方案二:用Synology NAS搭建本地DNS服务器
因为NAS是24小时在线的设备,用它做本地DNS服务器稳定性更好:
- 登录Synology DSM后台,打开「控制面板」→「DNS服务器」
- 启用DNS服务器功能,切换到「正向解析」标签,点击「新增」
- 填写记录:主机名填
ginger、dill这类前缀,域名留空或填local,对应IP地址填设备的静态IP,保存 - 接下来配置局域网设备的DNS:
- 可以在路由器的DHCP设置里,把默认DNS服务器改成NAS的IP,这样所有自动获取IP的设备会自动用NAS的DNS
- 静态IP的设备(比如Linux VM)手动把DNS服务器设置为NAS的IP
方案三:修复mDNS(Bonjour/AVAHI)服务
.local域名本来是mDNS(多播DNS)的默认域名,可能是你的设备mDNS功能没开启:
- Mac设备:
打开「系统设置」→「通用」→「共享」,确保「本地网络发现」是开启的;如果还是不行,终端执行命令重启mDNS服务:sudo launchctl stop com.apple.mDNSResponder; sudo launchctl start com.apple.mDNSResponder - Synology NAS:
打开「控制面板」→「网络」→「通用」,勾选「启用Bonjour服务」并保存 - Linux VM:
安装并启用avahi-daemon(Debian/Ubuntu系):
这样VM就能通过mDNS广播自己的sudo apt install avahi-daemon sudo systemctl enable --now avahi-daemon.local域名,其他设备也能发现它
几个关键排查点
- 确保所有设备的IP是静态的,或者路由器DHCP给它们分配了固定IP(不然IP变动会导致解析失效)
- 测试时可以试试
ping ginger.local.(末尾加个点),避免系统自动添加其他域名后缀干扰解析 - 检查防火墙设置:Mac的防火墙不要阻止mDNS流量,NAS和VM的防火墙要放开53端口(DNS)或5353端口(mDNS)
备注:内容来源于stack exchange,提问作者halloleo




