我正在运行 ubuntu xenial 16.04
我们正在使用 openvpn 连接到虚拟私有云。该云拥有自己的 DNS 服务器(就像我们的本地路由 - 家庭或办公室)。
当我连接到 VPN 时,该网络中的所有 IP 都可用,但我无法通过主机名访问任何 IP。原因很简单:resolv.conf 文件仍然显示我的本地办公室名称服务器。如果我手动覆盖 resolv.conf 以获得正确的名称服务器,一切都很好。
那么,如何在连接到 VPN 时让它自动重新配置 resolv.conf 呢?
我可以连接到系统事件并执行脚本吗?
OpenVPN 包在/etc/openvpn/update-resolv-conf. 你需要配置它:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
Run Code Online (Sandbox Code Playgroud)
这将从dhcp-option DNSOpenVPN 对等方/服务器传递的选项中获取 DNS 服务器地址并进行相应配置resolvconf。它也处理dhcp-option DOMAIN。
然而,它并不完美,因为这会将这些名称服务器添加到现有名称服务器列表中,而不是覆盖名称服务器列表。如果您正在使用openresolv的-x可用于覆盖DNS配置,而不是preprending它。
如果您正在使用systemd-resolved,则可以使用/etc/openvpn/update-systemd-resolvedwhich 挂钩systemd-revolved代替resolvconf。
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
Run Code Online (Sandbox Code Playgroud)
在 Debian 上,此脚本位于openvpn-systemd-resolved.
| 归档时间: |
|
| 查看次数: |
14299 次 |
| 最近记录: |