我正在尝试从 Ubuntu 16.04 服务器版本(无 GUI)连接到 VPN。
我使用下载的配置并连接sudo openvpn - - config path/to/.ovpn
这似乎运行良好,没有错误,我得到了一个tun
界面。但我似乎无法访问外部网址。
例如ping google.com
导致长时间停顿ping: unknown host google.com
一个简单的 sendmail 命令失败,提示无法连接到 SMTP 服务器(外部)
Dyndns 客户端更新失败,大概是因为无法连接服务提供商。
如果我断开 openvpn 连接,以上一切都正常。
我已经在路由器 (virgin media superhub) 上启用了直通流量,但无济于事。我需要做任何端口转发吗?但没有一个指南说要这样做...
谢谢您的任何建议。
答案1
由于我缺乏遵循简单说明的能力,查看提供商的安装说明后,我似乎错过了一个重要的步骤,即在我的 .ovpn 配置中添加一个脚本来运行update-resolv-conf
它,然后修复了它。
抱歉浪费了时间,非常感谢托马斯的帮助和坚持。
答案2
这似乎是一个 DNS 问题。
正如 OP 在评论中测试的那样,数据可以通过 VPN 传到互联网,因此问题在于它没有获取用于查询的 DNS 服务器。我们还确认 DNS 查询可以在出站进行。因此我们只需确保系统始终可以访问 DNS 服务器即可。
当您/etc/resolv.conf
连接到 VPN 时,文件中至少应该有如下内容(IP 地址可能不同!):
nameserver 127.0.1.1
nameserver 8.8.8.8
如果没有,那么我们需要确保您已设置 DNS 服务器,以便您可以解析域名。因此,将 的内容替换/etc/resolv.conf
为以下内容 (Google DNS):
nameserver 8.8.8.8
nameserver 8.8.4.4
然后尝试通过 VPN 正常使用互联网。
如果您这样做了但是由于不断被覆盖而不起作用/etc/resolv.conf
,那么您可能希望考虑强制它不可改变sudo chattr +i /etc/resolv.conf
。 如果你绝对确定不需要更改 DNS 服务器,那么就不要进行此更改,因为您会遇到 DHCP 问题或尝试设置 DNS 名称服务器等问题,并且由于无法编辑而失败/etc/resolv.conf
。