我的 Mac 在 Sophos Remote IpSec VPN 上遇到了问题。VPN IpSec 设置为默认网关。我可以连接到 VPN,并且可以加入远程网络上的每个 IP。我也可以 dig 和 nslookup fqdn,但无法 ping 它们:
ping: cannot resolve domain.local: Unknown host
我在互联网上搜索过,但找不到解决方案。我认为问题出在我的 Mac 上,因为“ping fqdn”确实有效,然后就停止了。远程防火墙没有进行任何修改(我是唯一可以访问的人)。
简而言之,当我连接到 VPN 时,我可以使用 IP 地址加入每台机器和服务,但不能使用本地 DNS。我可以通过 VPN 浏览互联网,没有任何问题(我实际上是连接到 VPN 来发布这个问题的)。
我不太清楚 OSX 如何处理网络配置,它似乎比简单的 Debian 服务器或 Windows 工作站更复杂(尽管)。
我尝试了一些scutil --dns
networksetup -listallnetworkservices
我不知道的事情,并获得了有趣的信息来帮助我,但却无法解决我的问题。
从现在起,我认为我需要其他大脑来帮助我,然后我会多学习一点如何使用我的 Mac,我认为这不是坏事。这就像 NIC 知道在使用 dig 时要请求哪个 DNS 来解析名称,但在询问时不向他们发送请求(在本例中就像 ping)。
我的耳朵,或者说我的眼睛睁大了,谢谢。
答案1
好的,找到了一种方法来让它工作。我找到了两个可以帮助我解决问题的资源:
rakhesh.com MacOS VPN 不使用 VPN DNS
vNinja.net macOS:使用自定义 DNS 解析器
因此,从这两个资源中,以下是当我连接到我的 vpn(带有 Sophos vpn 客户端的 Sophos Remote IpSec)时加入我的本地 fqdn 的步骤。在此示例中,我的本地域将是本地.foo.bar。该本地域的权威本地 DNS ip 地址是10.10.10.10/24
创建文件夹
/etc/resolver
创建并编辑以我想要解析的本地域名命名的文件
sudo vim /etc/resolver/lab.ecinf.ch
文件内容
``` domain local.foo.bar search local.foo.bar nameserver 10.10.10.10 search_order 1 timeout 5 ```
我把这个解析器放在更高的优先级,因为我希望在连接到 VPN 时首先使用它。当我断开连接时,这个域是不可加入的,所以我不在乎。超时 5 取自 rakhesh.com 的博客,它是“如果 VPN 未连接,则超时 5 秒,这样它就不会花费太多时间尝试联系名称服务器”。
- 保存文件
- 刷新缓存 DNS
sudo killall -HUP mDNSResponder
- 确认
scutil --dns
希望它能帮助其他遇到此问题的人。希望这样做不是坏事。如果有人是网络专家,请告诉我我是否做错了什么,或者这是否根本不是最佳实践。