Openvpn 服务器可以通过 IP ping 通,但不能通过主机名 ping 通

Openvpn 服务器可以通过 IP ping 通,但不能通过主机名 ping 通

我有一个虚拟服务器 (Ubuntu 14.04.2 LTS),我在其上运行 OpenVPN。几乎所有东西都运行良好:客户端可以通过其 IP 和名称访问其他客户端(我必须使用“script-security 2”、“up/down /etc/openvpn/update-resolv-conf”修改客户端配置,并且必须编写一个输入/更新 dns 条目的小脚本,以实现客户端名称解析)。

唯一的问题是,我的服务器不提供名称解析:在我的服务器上,我可以通过“ping 10.8.0.2”ping 客户端,但“ping 客户端名称”会导致“未知主机”(而如果我从我的一个客户端执行此操作,“ping 客户端名称”则可以工作)。

我知道这肯定是与 DNS 相关的问题,但我无法摆脱它。当我查看 resolv.conf 时,我看到:

nameserver 80.X.X.X
nameserver 80.X.X.X

哦,好的,本地名称服务器似乎丢失了。我的想法是编辑 resolv.conf。我尝试了几个条目(“127.0.0.1、127.0.1.1、10.8.0.1”),但都没有用(重新启动 openvpn 服务后)。

我也尝试编辑 /etc/dhcp/dhclienf.conf 并添加“prepend domain-name-servers 127.0.0.1”(并重新启动)但这也没有什么区别。

我的 server.conf 如下所示:

proto udp6

dev tun

ca   ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/xxx.xxx.crt
key  ./easy-rsa2/keys/xxx.xxx.key

dh   ./easy-rsa2/keys/dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

#this is a script that configures dns-entries for clients
client-connect "/etc/openvpn/scripts/learn-address.sh"
script-security 3 system

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN name.domain"

client-to-client

keepalive 10 120

comp-lzo

persist-key
persist-tun

status openvpn-status.log
log-append  openvpn.log

verb 3

有人能指出我做错了什么吗?我不是第一个遇到这个问题的人。我认为运行 openvpn 的服务器也希望通过名称而不仅仅是 IP 与客户端通信是一种常见行为。

答案1

您是否安装了 DNS 服务器?OpenVPN 不提供任何名称解析功能。您需要在服务器上运行单独的 DNS 服务器(或push "dhcp-option DNS 8.8.8.8"在服务器配置中添加类似内容)。OpenVPN 仅通过学习脚本更新区域/主机文件。

请查看此链接

这是一个学习脚本,当客户端连接或断开连接时,它会更新 hosts 文件。它使用 dnsmasq 作为 DNS 服务器。

答案2

我安装了 resolvconf(通过 apt-get install resolvconf)。然后我配置了“/etc/resolvconf/head”文件,并添加了“nameserver 10.8.0.1”作为 DNS 服务器。在 head 文件中执行此操作(以便 10.8.0.1 是列表中的第一个名称服务器)而不是在 tail 文件中执行此操作似乎很重要!我也尝试使用 tail 文件,但结果不正确。

现在我可以通过 访问我的所有 VPN 主机<vpn-hostname>.<domainname>

相关内容