我尝试了几个小时在 Ubuntu 18.04 上设置我的 DNS 解析,但到目前为止还没有成功......
我有一个正在运行的 openvpn 连接,并且正在创建接口 tun1。我确实定义了一些 iptable 规则,它们可用作 killswitch,如下所示:
iptables -F
...
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 9365 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9365 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -j ACCEPT -m owner --gid-owner openvpn
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -o tun1
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 137 -j ACCEPT
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED
iptables -P OUTPUT DROP
iptables -P INPUT DROP
...
这里的主要目标是仅允许流量通过 vpn 隧道 --> tun1。这很有效。
但是,应用这些规则后,DNS 解析不再起作用。我怀疑它不起作用是因为 DNS 请求不是通过 tun1 隧道传输的,而是使用 eth0。通过 IP 的连接仍然成功,因此 IPTables 没有问题。我执行了以下命令,结果systemd-resolve --status
显示如下:
Link 5 (tun1)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 3 (wlan0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 2 (eth0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.1
192.168.1.1 是我的路由器,正在将 DNS 解析为 8.8.8.8。我确实想将范围从 tun1 更改为没有任何到DNS并添加应使用的 DNS 服务器的 IP 地址。我已经尝试了好几个小时,但毫无效果...:
- Ubuntu 18.04 systemd-resolve 无法正确读取 /etc/resolv.conf
- 我尝试了 Mark 的回答,他建议修改将
/etc/systemd/resolved.conf
我的 DNS 服务器添加为全局 DNS 服务器,systemd-resolve --status
但 DNS 请求仍然没有通过 tun1 执行,也没有通过新添加的 DNS 服务器解析,但仍然转发到 192.168.1.1
- 我尝试了 Mark 的回答,他建议修改将
- https://superuser.com/questions/1322045/how-to-persist-systemd-resolve-configuration-for-a-particular-network-interfac
- 我尝试了 Lubo Diakov 的回答,他说要创建一个包含
/etc/systemd/network/
“链接”配置的文件。我创建了文件,但没有按照他关于桥接的指南操作,因为我不明白这是做什么的。创建文件根本/etc/systemd/network/
没有效果:
- 我尝试了 Lubo Diakov 的回答,他说要创建一个包含
[Match]
Name=tun0
[Resolve]
DNS=<IP>
- 如何在 systemd-resolve 中列出 DNS 服务器顺序?
- 我认为我只需更改使用哪个 DNS 服务器的优先级即可。这似乎不可能?!
由于我的最终目标是通过 openvpn 隧道传输我的 DNS 流量,因此我认为这可能是一个 openvpn 配置问题:
- https://forums.openvpn.net/viewtopic.php?t=29461
- 这也指向了
systemd-resolved
原因,但没有可用的解决方案。
- 这也指向了
- Ubuntu 18.04 连接到 openvpn 时无法进行 DNS 解析
- 不幸的是,我无法使用这里标记为解决方案的答案,因为我的 VPN 提供商提供了他自己的上传/下载脚本,我需要使用这些脚本。解决方案基于此博客文章:https://blog.syddel.uk/?p=253。我很想采用博客文章中提供的解决方案一,但如前所述,修改
/etc/systemd/resolved.conf
该解决方案无效。
- 不幸的是,我无法使用这里标记为解决方案的答案,因为我的 VPN 提供商提供了他自己的上传/下载脚本,我需要使用这些脚本。解决方案基于此博客文章:https://blog.syddel.uk/?p=253。我很想采用博客文章中提供的解决方案一,但如前所述,修改
对我来说,主要问题是了解所有这些部分如何协同工作。我需要做什么才能实现我的 DNS 最终通过 tun1 隧道传输的目标?有人遇到过这种情况,并且在查看我链接的不同“解决方案”时遇到过类似的问题吗?
我希望你能帮忙,对此我感觉很累……
PS:我确实知道我可以通过添加 IPTables 规则来解决这个问题,以便允许流量通过其他接口到达我的 DNS 服务器,但这不是我想要做的,而且也会导致 DNS 泄漏……