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

Ste*_*ner 4 openvpn

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

唯一的问题是,我的服务器不提供名称解析:在我的服务器上,我可以通过“ping 10.8.0.2”ping 客户端,但“ping clientname”会导致“unknown host”(而“ping clientname”在我正在执行时有效)这是来自我的一位客户)。

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

nameserver 80.X.X.X
nameserver 80.X.X.X
Run Code Online (Sandbox Code Playgroud)

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

我还尝试编辑 /etc/dhcp/dhclienf.conf 并添加“前置域名服务器 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
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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

请看一下这个链接

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