当我通过 RDP 连接到客户网络上的一台机器时,我可以通过名称访问网络上的一堆 PC(例如 SVN 服务器、Jenkins 等)。
但是,当我通过本地 PC 上的 VPN 连接时,这些机器名称都无法解析,但我可以毫无问题地 ping 它们的 IP 地址。
这是我需要手动设置的吗,还是 VPN 配置存在问题?
答案1
我不是 IT 专业人士,但这在我的公司很有效。
在 Windows 10 上,如果您有内部 DNS 服务器,则应将其添加到 VPN 提供的 DNS 服务器中。在 Windows Server 上,您可以设置对本地名称具有权限的 DNS 服务器,Google 是您的好朋友。
或者,客户端可以在其 VPN 连接上执行此操作:
- 打开控制面板,网络和共享中心,更改适配器设置
- 右键单击您的 VPN 连接,属性,网络
- 选择 TCP/IPv4 选项(无论您的语言环境如何)
- 单击属性、高级...
- 转到 DNS 选项卡
- 添加您的内部 LAN 服务器 DNS 地址,例如 10.0.10.1
- 可选:在编辑框“此连接的 DNS 后缀:”中添加 DNS 后缀,例如 yourcompany.local
- 申请并退出
- 如果已连接,请断开并重新连接 VPN
现在,您可以使用 computername.yourcompany.local 访问内部电脑,或者如果您之前添加了后缀,则只需使用 computername,例如 Windows 资源管理器中的 \\computername,或在浏览器中输入 computername:8080 即可获得 8080 上的服务,或者使用远程桌面。
答案2
在 VPN 属性中,您需要在 DNS 中指定服务器。或者编辑 hosts 文件,将 IP 地址与主机名关联起来。
答案3
您的/etc/resolv.conf
文件定义了计算机应查找的位置以将主机名解析为 IP 地址。基本问题是默认情况下/etc/resolv.conf
运行时不会更新。openvpn
以下是修复该问题需要采取的措施。
1.) 将以下内容附加到server.conf
您的 OpenVPN 服务器计算机(通常位于/etc/openvpn/server.conf
)上的文件中,以便服务器在客户端查找将主机名转换为 IP 地址的位置。
push "dhcp-option DNS 192.168.1.1"
push "dhcp-option DOMAIN mylocaldomain.lan"
2.) 在客户端计算机上安装并使用以下命令resolvconf
将标准链接resolv.conf
到版本,以获得能够修改的功能resolvconf
resolv.conf
sudo apt install resolvconf
sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
3.) 将以下内容附加到文件底部,以便在 OpenVPN 服务器连接或断开连接时client.ovpn
运行。resolvconf
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
4.) 无论何时运行,openvpn
您都必须使用-script-security 2
允许openvpn
运行的标志resolvconf
。这是一个示例调用
sudo openvpn --script-security 2 --config /path/to/client.ovpn
您可以在此处阅读上述说明的更详细版本,其中包含我的(正在运行的)OpenVPN 服务器的一些示例代码:https://steamforge.net/wiki/index.php/How_to_configure_OpenVPN_to_resolve_local_DNS_%26_hostnames