解决 Viscosity 和 DNS 请求问题

解决 Viscosity 和 DNS 请求问题

我在用着粘度1.10.8 在 macOS 14.2.1 上。我的一个朋友刚刚给我发了以下适用于我客户的 OpenVPN 配置文件:

client
dev tun
remote <MY FRIEND'S IP> 1194 tcp
tun-mtu 1500
tls-client
nobind
ping 15
ping-restart 45
ping-timer-rem
mute-replay-warnings
verb 3
cipher AES-128-CBC
auth SHA1
auth-user-pass
remote-cert-tls server
redirect-gateway def1
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>

然而,一旦连接,我就根本无法上网。奇怪的是,相同的配置文件与 OpenVPN 连接客户端兼容,所以我不确定这个问题是否与 Viscosity 严格相关,或者更普遍地说,与 OpenVPN 设置相关。

nslookup结合使用tcpdump,我发现问题与 DNS 请求有关。如果我启动捕获,然后发出nslookup www.google.it,我会得到以下输出:

$ sudo tcpdump -ni any port 53
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type PKTAP (Apple DLT_PKTAP), snapshot length 524288 bytes
18:30:19.403577 IP 127.0.0.1.55553 > 127.0.0.1.53: 14064+ A? www.google.it. (31)
18:30:19.403591 IP 127.0.0.1.55553 > 127.0.0.1.53: 14064+ A? www.google.it. (31)
18:30:20.404482 IP6 ::1.50658 > ::1.53: 14064+ A? www.google.it. (31)
18:30:20.404503 IP6 ::1.50658 > ::1.53: 14064+ A? www.google.it. (31)
18:30:25.409492 IP 127.0.0.1.55553 > 127.0.0.1.53: 14064+ A? www.google.it. (31)
18:30:25.409523 IP 127.0.0.1.55553 > 127.0.0.1.53: 14064+ A? www.google.it. (31)
18:30:26.414496 IP6 ::1.50658 > ::1.53: 14064+ A? www.google.it. (31)
18:30:26.414531 IP6 ::1.50658 > ::1.53: 14064+ A? www.google.it. (31)

这毫无意义,因为 localhost 上没有运行 DNS。为了完成此场景,以下是使用活动隧道的路由:

$ netstat -nr -f inet
Routing tables

Internet:
Destination        Gateway            Flags               Netif Expire
0/1                192.168.10.1       UGScg              utun10
default            192.168.1.1        UGScg                 en5
default            192.168.10.1       UGScIg             utun10
<FRIEND'S IP>/32   192.168.1.1        UGSc                  en5
127                127.0.0.1          UCS                   lo0
127.0.0.1          127.0.0.1          UH                    lo0
128.0/1            192.168.10.1       UGSc               utun10
169.254            link#13            UCS                   en5      !
192.168.1          link#13            UCS                   en5      !
192.168.1.1/32     link#13            UCS                   en5      !
192.168.1.1        10:71:b3:94:ce:70  UHLWIir               en5   1199
192.168.1.100/32   link#13            UCS                   en5      !
192.168.1.100      0:e0:4c:68:0:40    UHLWI                 lo0
192.168.10         192.168.10.42      UGSc               utun10
192.168.10.1/32    link#24            UCS                utun10
192.168.10.1       link#24            UHWIir             utun10
192.168.10.42      192.168.10.42      UH                 utun10
224.0.0/4          link#13            UmCS                  en5      !
224.0.0/4          link#24            UmCSI              utun10
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en5
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI                en5
239.255.255.250    link#24            UHmW3I             utun10   2400
255.255.255.255/32 link#13            UCS                   en5      !
255.255.255.255/32 link#24            UCSI               utun10

最后,这是连接时 Viscosity 的日志:

Opened utun device utun10
/sbin/ifconfig utun10 delete
NOTE: Tried to delete pre-existing tun/tap instance -- No Problem if failure
/sbin/ifconfig utun10 192.168.10.42 192.168.10.42 netmask 255.255.255.0 mtu 1500 up
/sbin/route add -net 192.168.10.0 192.168.10.42 255.255.255.0
/sbin/route add -net <MY FRIEND'S IP> 192.168.1.1 255.255.255.255
/sbin/route add -net 0.0.0.0 192.168.10.1 128.0.0.0
/sbin/route add -net 128.0.0.0 192.168.10.1 128.0.0.0
Initialization Sequence Completed
DNS mode set to Full
State changed to Connected

作为 Viscosity 的临时解决方法,我设置DNS 模式拆分 DNS,DNS 通过我的本地解析器工作。多年来,我一直在 OpenVPN 上使用 Viscosity,只需导入 *.ovpn 文件即可,没有任何问题。同样在这种情况下,我想找到一种方法来避免这种手动解决方法。我需要告诉我的朋友她应该在服务器端进行一些更改吗?或者我可以通过修改 client.ovpn 文件来修复吗?

答案1

对于那些感兴趣的人而言,结果证明这是 VPN 服务器的 DNS 配置问题。

相关内容