我有一个 Digital Ocean 的 VPS 以及一个 Private Internet Access 的 VPN 帐户。我希望能够将我的服务器连接到瑞士的 VPN,并且仍然能够通过 SSH 进入它。
我的 VPS 正在运行 Ubuntu 16.04 LTS。
问题:
当我尝试将我的服务器连接到 VPN 时,我的 SSH 会话立即变得无响应。
我已尝试过:
根据此处的建议:https://forum.linode.com/viewtopic.php?t=8737,我创建了这个 shell 脚本并将其放在 rc.local 中以便在启动时运行(我在这里更改了 IP 地址):
#!/bin/sh
sudo ip rule add from 111.222.333.44 table 128
sudo ip route add table 128 to 111.222.333.0 dev eth0
sudo ip route add table 128 default via 111.222.128.1
该脚本似乎有效,并且我已经验证它确实正在执行。
然后我尝试启动我的 VPN sudo openvpn /etc/openvpn/Switzerland.ovpn &
:。
我本以为这会在后台启动 VPN,这样我就可以继续使用 shell 做其他事情。然而,事实并非如此。相反,我将看到屏幕上打印出 VPN 已启动的确认信息,然后会话将立即无响应。
我可以通过从备份中恢复我的 Digital Ocean droplet 来恢复。
可能的原因:
我没有通过端口 22 进行 SSH,并且我已经用 阻止了该端口,ufw
所以这可能是导致我出现问题的原因。但是,我确实尝试过解除阻止并将 openssl 切换到端口 22,但行为没有发生变化。
我可能在脚本中使用了错误的 IP 信息。我相当确定我的 IP 地址和网关地址是正确的,但我不确定如何找到我的子网。我根据互联网研究做出了有根据的猜测。
也许 Ubuntu 16.04 改变了这些事情的工作方式。我曾在 Ubuntu 12.04 上看到过成功实现这一点,并遵循了该模型,但新版本是否可能有所改变?
任何帮助都将不胜感激!干杯!