OS X 中的 VPN DNS 配置错误

OS X 中的 VPN DNS 配置错误

我正在使用 TunnelBlick 连接到 OS X 10.9.2 的 VPN (OpenVPN)。我可以验证身份并传递流量,但从 VPN 注入的 DNS 条目不起作用。

以下是输出scutil --dns(解析器 #1 是 Tunnelblick 注入的正确 DNS 服务器)

resolver #1
  search domain[0] : XXXXX.net
  nameserver[0] : 10.10.0.15
  if_index : 5 (en1)
  flags    : Request A records
  reach    : Reachable

问题是if_index应该是tap0而不是en1。来自ifconfig

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether e4:ce:8f:1b:42:cc
    inet6 fe80::e6ce:8fff:fe1b:42cc%en1 prefixlen 64 scopeid 0x5
    inet 10.0.1.2 netmask 0xffffff00 broadcast 10.0.1.255
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: active

tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 0a:83:8d:37:dc:b9
    inet 10.10.0.100 netmask 0xffff0000 broadcast 10.10.255.255
    open (pid 4997)

nslookupdighost都可以正确到达 DNS 服务器,但 OS X 的其余部分则不能(我知道它们具有独立的解析机制,不依赖于 OS X 的其余部分)。我已经使用 Wireshark 确认,由nslookupet. al. 发送的 DNS 数据包出去了tap0,而由其他程序(例如ping)发送的 DNS 数据包出去了eth0,当然永远不会到达目的地。在发送数据包之前, 可能scutil实际上没有查看路由表吗?如果是这样,我该如何编辑 scutil 条目来更正if_index

Tunnelblick 的配置下拉菜单已设置set nameserver,我的 server.conf 的相关部分如下所示。由于我正确获取了 DNS 信息,我认为问题出在 OS X 及其 scutil 设置上。

...etc..

server-bridge 10.10.0.15 255.255.0.0 10.10.0.100 10.10.0.200

# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
push "dhcp-option DNS 10.10.0.15"
push "dhcp-option DOMAIN wattsworth.net"

...etc...

答案1

遇到同样的问题时,我发现运行scselect命令new-location-name设置为与当前使用的相同,重置了网络设置,并且 DNS 开始通过 VPN 工作。

同时scutil结果保持不变(即,它显示if_index设置到以太网接口)。

首先运行scselect不带参数的程序来了解当前使用的位置的 GUID,然后再次以预期位置作为参数。

相关内容