如何在 ovpn 配置文件中放置 resolvectl 命令?

如何在 ovpn 配置文件中放置 resolvectl 命令?

我有一个 ovpn 配置,用于从 Ubuntu 20.04 LTS 连接到私有网络。但每次启动 vpn 后,我都必须运行这些命令

resolvectl dns tun0 10.0.0.255
resolvectl domain tun0 "~domain1.com"
resolvectl domain tun0 "~domain2.com"

使 dns 与私有子域一起工作。是否可以将这些命令包含到 ovpn 配置中并在我连接到此 vpn 时自动执行它们?

答案1

如果您像我一样使用 network-manager-openvpn,这可能有助于持续解决问题:

sudo nmcli connection modify VPN_NAME \                              
    ipv4.dns-search '~domain1.com, ~domain2.com' ipv6.dns-search '~domain1.com, ~domain2.com' ipv4.dns 10.0.0.255

来源:https://ask.fedoraproject.org/t/systemd-resolved-not-querying-dns-server-set-by-openvpn/9696/9

我没有尝试有关 DNS 服务器的部分。小心。这会覆盖推送的设置。如果您想使用某些域作为搜索域,只需省略“~”。

答案2

您可以使用--up--down参数(或up/down配置指令)指向一个脚本,该脚本将在建立 / 关闭连接后运行。您可以不是使用 shell 表达式(如--up 'resolvectl dns tun0 10.0.0.255 && resolvectl domain tun0 "~domain1.com"') - 它将不起作用。

此外,为了允许 OpenVPN 调用外部脚本,请传递--script-security 2

请阅读官方 OpenVPN 文档您还有其他问题吗?

相关内容