我们的 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 服务器配置不能更改)
经过更多的谷歌搜索,可以找到答案 - 如果它可以帮助某人,请在下面。
resolv.conf
配置文件/usr/share/openvpn
,命名为update-resolv-conf
. 该脚本确定什么应该是新的resolv.conf
,以及如何恢复它(见下面的链接)这些行
在 openvpn 客户端配置文件中。
阅读此 wiki了解更多信息。
2022 年更新(Arch Linux)
要设置公共 dns 服务器并更新 resolvconf,请将以下内容添加到您的 ovpn 客户端配置文件中:
考虑在您的客户端上使用
route-up
/route-down
脚本来更改您认为合适的连接设置配置。请参阅OpenVPN 文档,了解如何设置以及您可以在这些脚本中使用哪些变量的详细信息。这是有用的信息,可帮助我解决此问题。
我是 Arch linux 用户,我看到的是,当 Linux 客户端与 Access Server 一起使用时,这个客户端无法更改有问题的客户端上的 DNS 设置,无法解析主机,因为它位于OPEN VPN 文档中
我创建了一个脚本来解决这个问题,并使用几个额外的参数通过命令行处理 openvpn 连接。
https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477
这是为连接执行的主要命令:
任何反馈都非常感谢。
echo "nameserver=wxyz" > /etc/resolv.conf
echo "nameserver=127.0.0.1" >> /etc/resolv.conf