这都不是/etc/resolv.conf
:
domain example.com
nameserver 192.xxx.xxx.xxx
nameserver 130.xxx.xxx.xxx
也没有这样的scutil
输出:
$ scutil --dns
DNS configuration
resolver #1
search domain[0] : example.com
search domain[1] : example.lan
nameserver[0] : 172.xxx.xxx.xxx
if_index : 11 (en4)
flags : Request A records
reach : Reachable,Directly Reachable Address
resolver #2
domain : example.com
nameserver[0] : 192.xxx.xxx.xxx
nameserver[1] : 130.xxx.xxx.xxx
flags : Request A records
reach : Reachable
order : 100400
DNS configuration (for scoped queries)
resolver #1
search domain[0] : xxx.lan
nameserver[0] : 172.xxx.xxx.xxx
if_index : 11 (en4)
flags : Scoped, Request A records
reach : Reachable,Directly Reachable Address
resolver #2
search domain[0] : example.com
nameserver[0] : 192.xxx.xxx.xxx
nameserver[1] : 130.xxx.xxx.xxx
if_index : 10 (utun0)
flags : Scoped, Request A records
reach : Reachable
正在帮助通过 example.com 的 VPN 接口解析名称utun0
。VPN 本身可以正常工作,因为我可以 ping 只能通过 VPN 访问的 IP,并且手动 DNS 名称解析也可以正常工作:
$ nslookup yyy.example.com 192.xxx.xxx.xxx
Server: 192.xxx.xxx.xxx
Address: 192.xxx.xxx.xxx#53
yyy.example.com canonical name = yyy.example.com.
Name: yyy.example.com
Address: 10.xxx.xxx.xxx
但是 Chrome、ping 等不喜欢解析主机:
$ ping yyy.example.com
ping: cannot resolve yyy.example.com: Unknown host
主机不工作:
$ host yyy.example.com
Host yyy.example.com not found: 3(NXDOMAIN)
在我看来,所有配置都正确无误 - 172 是我的本地 LAN,192 和 130 是 VPN DNS 服务器。出于多种原因,我使用的openconnect
是 Cisco AnyConnect Mobility 客户端。
更多输出:
$ sudo discoveryutil configresolvers
Password:
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 11, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope None, order 0
server 172.16.0.1
search domain(s) example.com, example.lan
Configuration Resolvers: Resolver domain example.com, type Unicast, ifIndex 0, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope None, order 100400
server(s) 192.xxx.xxx.xxx, 130.xxx.xxx.xxx
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 11, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope InterfaceID, order 0
server 172.16.0.1
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 10, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope InterfaceID, order 0
server(s) 192.xxx.xxx.xxx, 130.xxx.xxx.xxx
执行 scutil 的打开连接脚本的相关代码可以在这里找到:vpnc 脚本
答案1
我让它工作的唯一方法是手动调用networksetup -setdnsservers
。一旦我有了一个可以运行的 vpnc 脚本,我就会将其发布到 InfraDead openconnect 论坛。