OpenVPN:Linux 客户端上的 DNS 泄露

OpenVPN:Linux 客户端上的 DNS 泄露

我刚刚设置了一个 OpenVPN 服务器。它连接正常,但在 dnsleaktest.com 上检查后,我发现存在 DNS 泄漏。我搜索了解决方案,只能找到以下几行:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

他们没有解决这个问题。这是我的客户端配置文件:

client
dev tun
proto udp
remote **SERVER IP ADDRESS CENSORED** 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
cipher AES-128-CBC
auth SHA256
comp-lzo
verb 3
key-direction 1
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

这是resolv.conf我的客户端和服务器的文件:

客户:

nameserver 127.0.0.1

服务器:

nameserver 8.8.8.8

PS 我没有使用 gnome 网络管理器,而是使用 CLI。这让我很困惑,为什么会出现 DNS 泄漏。

答案1

您的配置中没有任何内容表明您实际上是如何通过 vpn 连接引导客户端的 dns 请求的。您可以将客户端的名称服务器设置为 localhost/127.0.0.1,但无论哪个解析器正在监听 127.0.0.1:53,它仍然需要将 dns 请求转发到外部解析器。

在您的客户端配置中,您可以使用组合

--重定向网关

--dhpc-option DNS 10.8.0.1(或者任何服务器地址)

或者为了进行更精细的控制,如果您不想将所有流量引导到 vpn 隧道上,则可以使用 mangle/prerouting 链来标记目标端口 53 的数据包,然后添加一条规则(ip rule add fwmark(mark value)table VPN_TABLE)将标记的数据包引导到路由表,该路由表的默认网关设置为您的客户端 tun 的对等地址。

相关内容