OpenVPN:无 DNS 转发

OpenVPN:无 DNS 转发

我已经能够在运行 Ubuntu 10.04 的 VPS 上设置路由 OpenVPN。我能够双向 ping 以及使用客户端上的 IP 地址打开任何网站。但是通过域名,它不起作用。

由于我对 OpenVPN 和 Linux 还不太熟悉,因此我不太确定从哪里开始进行故障排除。由于服务器是 VPS,我无法访问其本地网络,但我推测我应该能够将我的服务器设置为 VPN 客户端的 DNS 服务器?使用它的 DNS 服务器作为我的 VPN 客户端服务器。基于此,我尝试添加推送“dhcp-option DNS 10.xxx”,但没有成功。

我的服务器侧配置看起来就像示例配置,除了我已经包含了推送“redirect-gateway def1”

我的客户端配置如下,

client
dev tun
proto udp
remote my.server.com 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert sovos.crt
key sovos.key
comp-lzo
verb 6

更新:我发现服务器确实正确地推送了 DNS 设置,即当我连接到客户端上的 VPN 时,resolv.conf 中的值会发生变化。但是,即使使用 Google 等公共 DNS 服务器,我仍然无法进行查找。

答案1

您的服务器必须实际运行 DNS 服务器才能使其正常工作,默认情况下不会运行 DNS 服务器。您的选择基本上是:

  1. 不要推行 DNS 服务器,让客户端使用其本地网络上的 DNS 服务器。如果本地 DNS 服务器与客户端不在同一子网中,则此方法可能不起作用。
  2. 推送一个像 Google 的公共 DNS 服务器(8.8.8.8 和 8.8.4.4),客户端将通过 VPN 访问该服务器。
  3. 在 VPN 服务器上运行 DNS 服务器 (域名系统可能是最容易设置的),然后将其推送给客户端。

答案2

结果是 iptables 配置不正确。

这些设置有效,其中 XX 是我的 eth0 ip。

#Make vpn clients who connect on the tun interface able to reach the internet through the main interface (eth0)
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT --to-source XX.XX.XX.XX

相关内容