我在运行 OS X 10.10 的 VirtualBox VM 中安装了 ubuntu 14.04 服务器。我的目标是在 ubuntu 上配置 OpenVPN,以便通过主机系统进行访问。这是在远程服务器上安装 OpenVPN 的测试运行。
为了做到这一点,我遵循了本教程:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04
一切顺利,我最初可以通过 Tunnelblick 连接到服务器。然而 60 秒后,Tunnelblick 告诉我,由于 openvpn 配置错误,我可能丢失了互联网连接。所以我断开连接并停止了 tunnelblick。
不幸的是,我无法再从 OSX 访问我的虚拟机。tracert 显示,它首先尝试通过我的路由器进行连接,然后再尝试连接到互联网提供商,这是不必要的。常规方式是只需一次跳转到 /etc/hosts 中指定的 IP
重启 Mac 后一切又恢复正常。我可以通过再次尝试通过 tunnelblick 连接来重现此问题。还是一样,我必须重启。
有人知道如何解决这个问题吗?
答案1
正确答案在此评论作者:dotvotdot。
按照,此链接
将以下指令添加到服务器配置文件:
push "redirect-gateway def1"
如果您的 VPN 设置是通过无线网络进行的,其中所有客户端和服务器都位于同一无线子网中,请添加当地的旗帜:
push "redirect-gateway local def1"
推动重定向网关客户端的选项将导致所有来自客户端计算机的 IP 网络流量都通过 OpenVPN 服务器。需要配置服务器以某种方式处理此流量,例如通过 NAT 将其传输到互联网,或通过服务器站点的 HTTP 代理进行路由。
在 Linux 上,您可以使用如下命令将 VPN 客户端流量通过 NAT 传输到互联网:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
此命令假定 VPN 子网是10.8.0.0/24(摘自服务器OpenVPN 服务器配置中的指令)并且本地以太网接口是eth0。