我配置了一个 OpenVPN 服务器,让用户可以远程访问公司内部资源。由于此 VPN 的主要目的是不是更改/隐藏用户的 IP 地址,但提供对其他设备的访问,我没有为客户端配置强制流量重定向,因此它不会更改其机器上的默认网络接口。
通过此配置,是否可以强制客户端(主要是 Windows,但也包括 Linux)在连接到 OpenVPN 服务器时更改默认 DNS 服务器,以便我可以为内部资源提供更人性化的域名?我的 DNS 服务器可能与 OpenVPN 在同一台 VM 上运行,因此自定义 DNS 地址将类似于10.8.0.1
。
我可以让客户端运行一个脚本,将必要的条目添加到主机文件中,但我希望有一个更好、更自动化的解决方案,可以集中管理。
需要注意的是,我不想通过 VPN 重定向所有客户端的流量,因为这可能会使服务器过载。我只想使用自定义域名公开内部资源。
例如,如果用户http://git_server/
在其浏览器中打开,则应解析为10.8.0.64
。
答案1
由于您的 DNS 服务器的 IP 地址为 10.8.0.1,此选项可以解决您的问题。
push "dhcp-option DNS 10.8.0.1"
但由于这是与 OpenVPN 相同的虚拟机,因此正确答案可能位于您的
server ip.ip.ip.ip mask.mask.mask.mask
指令。因此,建议另一台机器配备 DNS 服务器。此外,不要忘记将路由推送到您的 DNS 服务器子网或 IP 地址。
push "route 10.8.0.0 255.255.255.0"
答案2
在您的服务器配置文件(/etc/openvpn/server.conf)中尝试以下选项:
push "dhcp-option DOMAIN your_domain.com"
push "dhcp-option ADAPTER_DOMAIN_SUFFIX your_domain.com"
push "dhcp-option DNS 10.8.0.1"
前两个确保您的域(而不是您的客户的 ISP 指定的域)是非 FQDN 的搜索域。
最后向客户端提供您的 DNS 服务器。