无法通过 Mac OS X 的 VPN 连接解析主机

Dan*_*Dan 10 networking domain-name-system vpn mac-osx

序言

我从我的 Macbook 设置了 VPN 连接,它似乎连接成功。

工作VPN

但是,我无法访问我的工作计算机,因为主机名没有得到解析:

$ ping myusername
ping: cannot resolve myusername: Unknown host
Run Code Online (Sandbox Code Playgroud)

新的解决方法

尽我所能后,我发现这个命令使我可以使用 VPN 网络和互联网:

sudo route add -net 192.168.7.218 192.168.7.117 255.255.0.0
Run Code Online (Sandbox Code Playgroud)

公司的 DNS 服务器可通过其 IP 访问。如何配置网络以将它们用于从 192.168 开始的所有内容?

旧的解决方法

我找到了一个临时解决方法,它允许我通过修改两个选项来通过 VPN 访问网络:

我在通过 VPN 连接发送所有流量中打勾:

VPN 选项

我在 VPN 接口的 DNS 设置中手动输入搜索域名:

在 VPN 选项中输入域名

执行这两个步骤足以使我的工作计算机可以 ping 通:

$ nslookup myusername
Server:     192.168.10.16
Address:    192.168.10.16#53

Name:   myusername.universe.mycompany
Address: 192.168.11.56

$ ping myusername
PING myusername.universe.mycompany (192.168.11.56): 56 data bytes
64 bytes from 192.168.11.56: icmp_seq=0 ttl=126 time=126.164 ms
Run Code Online (Sandbox Code Playgroud)

但是,当我通过隧道将所有流量通过 VPN 时,我无法再访问 Internet:

$ ping google.com
PING google.com (74.125.232.48): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Run Code Online (Sandbox Code Playgroud)

问题

如何正确设置网络,使其了解何时通过 VPN 以及何时使用正常连接?我需要它来正确解析 Windows 服务器名称。

如果我需要发布任何控制台命令输出,如果您让我知道具体是哪个,我愿意这样做。
任何帮助都受到高度赞赏,因为这对我来说是一种表演障碍。

谢谢!

Mar*_* M. 3

您可能想查看解析器联机帮助页

引用一种解决方案:

特定客户端的配置可以从具有本手册页中描述的格式的文件中读取。目前,系统位于 /etc/resolv.conf 文件和 /etc/resolver 目录中的文件中。然而,客户端配置不限于文件存储。DNS多客户端搜索策略的实施还可以在其他数据源中定位客户端配置,例如系统配置数据库。DNS 系统的用户不应对配置数据的来源做出任何假设。

AFAIK,如果您想要特殊的名称服务器,您需要放置一个以该域的名称服务器的 IP 命名的文件example.com——/etc/resolver它们example.com可能使用resolv.conf语法,我不记得了。但你应该能够弄清楚:)

编辑:就流程自动化而言,我很确定使用 AppleScript 或 Automator 是可行的。但我从来没有思考过这个问题,所以关于这个话题的第二个问题可能会有所帮助。