![Openvpn客户端,强制DNS服务器](https://linux22.com/image/631548/Openvpn%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%8C%E5%BC%BA%E5%88%B6DNS%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我们的 Linux Ubuntu 配置确实有一个 DNS 服务器(Bind 9)。
并且resolv.conf
有其
nameserver 127.0.0.1
openvpn
在该 Linux 上使用客户端时,名称服务器没有改变(由VPN服务器改变),但我想x.y.z.t
通过改变openvpn客户端配置将其设置为 - 仅在VPN会话期间 - 到另一个特定的DNS服务器。
然后,当openvpn
会话结束时,名称服务器应该回到127.0.0.1
。
有没有一种“干净”的方法(即 openvpn 客户端配置文件中的一行)来做到这一点?
(注意:VPN 服务器配置不能更改)
答案1
经过更多谷歌搜索后,可以找到答案 - 如果它可以帮助某人,请在下面找到答案。
- 安装解析配置可以保存和恢复
resolv.conf
配置文件 - 添加要运行的脚本开放VPN,在 中
/usr/share/openvpn
,名为update-resolv-conf
。脚本确定新的 应该是什么resolv.conf
,以及如何恢复它(请参阅下面的链接) - 添加
这些线
script-security 2
up /usr/share/openvpn/update-resolv-conf
down /usr/share/openvpn/update-resolv-conf
在 openvpn 客户端配置文件中。
继续阅读本维基了解更多信息。
答案2
2022 年更新 (Arch Linux)
要设置公共 DNS 服务器并更新 resolvconf,请将以下内容添加到您的 ovpn 客户端配置文件中:
dhcp-option DNS 1.1.1.1
script-security 2
up /usr/share/openvpn/contrib/pull-resolv-conf/client.up
down /usr/share/openvpn/contrib/pull-resolv-conf/client.down
答案3
考虑在客户端上使用route-up
/route-down
脚本来根据需要更改连接设置的配置。请参阅OpenVPN 文档关于如何设置以及在这些脚本中可能使用哪些变量的详细信息。
答案4
echo "nameserver=wxyz" > /etc/resolv.conf
echo "nameserver=127.0.0.1" >> /etc/resolv.conf