我手动将 Wireguard 中的 Peer-Config 添加到了网络管理器中:
[Interface]
Address = 10.13.13.5
PrivateKey = key
ListenPort = 51820
DNS = 10.13.13.1, lan
[Peer]
PublicKey = key
Endpoint = domainname:51820
AllowedIPs = 0.0.0.0/0
我成功地从 wireguard 获得了连接。但我发现 Wireguard 的 DNS 未被使用。我得到了 DNS 泄漏。
当我从 wg0 检查状态时,我得到:
Link 14 (wg0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 10.13.13.1
DNS Servers: 10.13.13.1
DNS Domain: lan
WLAN具有:
Link 2 (wlp59s0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 172.20.10.1
DNS Servers: 172.20.10.1
DNS Domain: ~.
当我通过 dnsleaktest.com 检查我的 DNS 请求时,我发现我的 Ubuntu 使用的是来自 WLan 的 DNS,而不是来自 wireguard 的 DNS。我读到有关将 DNS 域从 Wireguard 更改为“~”的内容。
当我进行更改时,我得到的结果是我的 ubuntu 同时使用来自 Wlan 和 Wireguard 的 DNS 请求。但我找不到任何解决方案来仅使用 Wireguard 上的 DNS。
我从 2019 年的一篇文章中看到,这是 Ubuntu 网络管理器中的一个错误。现在到了 2022 年,这个错误还存在吗?
更多信息:当我在手机上使用相同的配置时,没有 DNS 泄漏。
答案1
检查ipv4.dns-priority
和。如果您想避免 DNS 泄漏,则ipv6.dns-priority
需要将它们设置为负值(例如)。阅读。-50
man nm-settings
您可以使用 查看设置nmcli connection show "$PROFILE"
。您可以$PROFILE
从 获得名称nmcli connection
。您可以使用 更改 DNS 优先级nmcli connection modify "$PROFILE" ipv4.dns-priority -50 ipv6.dns-priority -50
。
与往常一样,当您修改当前处于活动状态的配置文件时,更改仅在下次(重新)激活配置文件(或执行nmcli device reapply
)后才会生效。这意味着,之后执行nmcli connection up "$PROFILE"
。