Openvpn客户端,强制DNS服务器

Openvpn客户端,强制DNS服务器

我们的 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

相关内容