我已经安装了 Wireguard,并成功连接到我的 VPN 网络,但无法使用 VPN 网络的 DNS 解析域名。我可以 ping 内部节点,并且可以通过 nslookup 获取绑定到域的 IP 地址,但 ping、curl 等无法做到这一点。
我也使用 openvpn,因此使用 openvpn 连接解析域名可以正常工作。
我该如何修复 wireguard 的域名解析问题?
操作系统:Ubuntu 18.10
答案1
从手册页CONFIGURATION
部分来看wg-quick
,措辞不太明显:
• DNS — a comma-separated list of IP (v4 or v6) addresses to be set as the interface's DNS servers, or non-IP hostnames to be set as the in‐
terface's DNS search domains. May be specified multiple times. Upon bringing the interface up, this runs `resolvconf -a tun.INTERFACE -m 0
-x` and upon bringing it down, this runs `resolvconf -d tun.INTERFACE`. If these particular invocations of resolvconf(8) are undesirable,
the PostUp and PostDown keys below may be used instead.
这表明您可以在文件的部分中包含一个search
域以及您的 DNS 服务器条目:[Interface]
/etc/wireguard/wg.conf
[Interface]
DNS = 10.10.10.1, localdomain
将 IP 更改10.10.10.1
为远程网络中的 DNS 服务器 IP wg
,并更新localdomain
以反映远程网络中使用的域名wg
。
例如,如果您有一个[Peer]
包含 RFC1918 地址的部分:
[Peer]
AllowedIPs = 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
myserver
然后将发送一个查询10.10.10.1
到myserver.localdomain
(你的远程 DNS 服务器显然需要能够解析该主机)
如果您有多个可以由远程 DNS 服务器解析的域,那么它们也可以附加到DNS =
上面的条目中,每个条目用逗号分隔。
所有这些都是在常规主机之外处理的/etc/resolv.conf
,并resolvconf
在后台使用以添加在wg
接口启动/关闭时动态添加/删除的额外 DNS 详细信息。
警告:我不知道(没有测试过)发送查询时使用了什么存在,因此wg
如果您有多个活动服务器,您可能会向多个远程 DNS 服务器发送查询,因此您可能会将主机详细信息泄露给该远程 DNS 服务器,这可能是不希望的。
高血压