Openvpn 客户端,强制 DNS 服务器

Bre*_*bad 10 openvpn dns-server clients

我们的 Linux Ubuntu 配置确实有一个 DNS 服务器(绑定 9)。
resolv.conf有其

  nameserver 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

openvpn在该 Linux 上使用客户端时,名称服务器不会更改(由 VPN 服务器),但我想x.y.z.t通过更改 openvpn 客户端配置将其设置 - 仅在 VPN 会话期间 - 到另一个特定的 DNS 服务器。

然后,当openvpn会话结束时,名称服务器应该回到127.0.0.1.

有没有一种“干净”的方式(即 openvpn 客户端配置文件中的一行)来做到这一点?

(注意:VPN 服务器配置不能更改)

Bre*_*bad 17

经过更多的谷歌搜索,可以找到答案 - 如果它可以帮助某人,请在下面找到。

  • 安装可以保存和恢复配置文件的resolvconfresolv.conf
  • 添加一个由openvpn运行的脚本,在/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
Run Code Online (Sandbox Code Playgroud)

在 openvpn 客户端配置文件中。

阅读此 wiki以获取更多信息。

  • 较新的 OpenVPN 安装在安装中包含此脚本。无需在`/usr/share/openvpn/update-resolv-conf` 手动下载和安装,您可以在`/etc/openvpn/update-resolv-conf` 中找到它预安装。 (6认同)

I.A*_*Guy 5

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
Run Code Online (Sandbox Code Playgroud)