我已经在公司服务器上安装了 OpenVPN 服务器和 Bind9 DNS 服务器。服务器配置的部分如下。重要的部分是推送路由和 DHCP DNS 选项。
local 10.0.9.2
port 1194
proto udp
dev tun
topology subnet
server 10.0.12.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.9.0 255.255.255.0"
push "dhcp-option DNS 10.0.9.2"
Run Code Online (Sandbox Code Playgroud)
在 Windows 或 Elementary OS 上连接时,一切正常。只有到服务器的流量通过 VPN,其余的不通过。如果客户端强制通过 VPN 传递所有流量,则 Internet 访问也有效。在这两种情况下,尝试访问git.internal.mycompany.org它时都会从我的 Bind9 DNS 服务器获取 DNS 记录并正确连接。
但这在 Ubuntu 中不起作用。当通过 VPN 传递整个流量时,会从 DNS 中获取记录。但是当只有服务器流量通过 VPN 时,则无法到达 DNS,我无法通过 URL 访问 git 服务器。通过 IP 访问时,它可以工作。
我还尝试将其添加到客户端配置中。
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
Run Code Online (Sandbox Code Playgroud)
但这无济于事。也许是因为当我尝试直接运行脚本时,出现错误/etc/openvpn/update-systemd-resolved: ?ádek 404: dev: unbound variable …