我正在尝试将现有网址重定向到我子网上的远程计算机。为此,我将以下内容放入 /etc/hosts
192.168.1.249 holub.com
并刷新 DNS 缓存
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
但是,当我 ping holub.com(我知道的查看地址实际解析方式的最可靠方法)时,我看到的是真实网址 (204.13.10.74),而不是 /etc/hosts 中指定的网址 (192.168. 1.249)。有趣的是,mysqladmin 实用程序不能正确解析地址,但 Chrome 浏览器确实能正确解析地址。我猜 Chrome 有某种内部解决方法。
一般来说,看起来 /etc/hosts 是在实际 DNS 查找之后使用的,而不是之前应该使用的,因此外部地址是不可覆盖的。
我已经尝试使用各种 IPv6 等价物来代替我的本地地址(0:0:0:0:0:ffff:c0a8:01f9 ::ffff:192.168.1.249 ::192.168.1.249),但这并没有帮助。重新启动(而不是刷新缓存)也无济于事。
我发现了一种不令人满意的解决方法。如果我禁用 DNS 应答器
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
然后 /etc/hosts 被使用,但后来我无法访问互联网。
如果有人遇到这个问题,我很想知道是否有解决方法。