我目前正在使用一个非常简单的 OpenVPN 设置,我从不同的设备连接到 OpenVPN 服务器,然后访问由在同一系统上运行的 Apache 服务器托管的网站。要访问该服务器,我必须在 VPN 内使用其 IPv4 地址(例如 10.1.0.1)。
我想使用“真实”名称,例如 myserver.local。有没有办法在不设置 DNS 服务器的情况下做到这一点? OpenVPN-Client 可以只在本地主机文件中添加一个条目吗?
最佳答案
不需要设置 DNS 服务器,但让一个 DNS 服务器工作非常容易,并且可以在 VPN 后面受到限制。
我在 Ubuntu 14.04 上使用 dnsmasq 正是为了这个目的。只需安装它并将所有主机添加到 /etc/hosts
- 按以下方式归档:
# Clients on the VPN
10.8.0.1 vpn.lan vpn.lan
10.8.0.8 service1.lan service1
10.8.0.6 service2.lan service2
您可以限制 dnsmasq,使其仅监听 tun0
-OpenVPN接口(interface)添加interface=tun0
至/etc/dnsmasq.conf
。您可以通过添加 push "dhcp-option DNS 10.8.0.1"
将 DNS 服务器推送到您的客户端给您/etc/openvpn/server.conf
.
此解决方案的缺点是,您必须将每个服务器添加到 /etc/hosts
,但对于几个服务器我认为还可以。
关于dns - 如何为基于 OpenVPN 的 VPN 内的服务器设置域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504234/