我使用的是 Linux CentOS 7 服务器,并且已经安装了 OpenVPN 和 NordVPN 服务器,我用它们来连接我的 Linux。
建立 VPN 连接后,我的 SSH 访问立即断开。
如何在连接到 VPN Server 时允许 SSH 访问服务器?以及如何让它在服务器重新启动时工作?
我在我的设置中使用了本教程:https://nordvpn.com/tutorials/linux/openvpn/
答案1
使用 NordVPN Linux 客户端时,iptables
用于更改流量而不是修改路由。为了允许SSH通过,需要将SSH端口列入白名单。
nordvpn whitelist add port 22
答案2
我能够通过以下方式找到问题的解决方案:
当您通过公共 IP 地址连接到服务器时,返回数据包将通过 VPN 进行路由。您需要强制这些数据包通过公共 eth0 接口路由。这些路由命令应该可以解决问题:
ip rule add from x.x.x.x table 128
ip route add table 128 to y.y.y.y/y dev eth0
ip route add table 128 default via z.z.z.z
其中 xxxx 是您的服务器公共 IP,yyyy/y 应该是您的服务器公共 IP 地址的子网,eth0 应该是您的服务器公共以太网接口,zzzz 应该是默认网关。
答案3
++αԋɱҽԃ αмєяιcαη
的回答:
ip rule add from x.x.x.x table 128
ip route add table 128 to y.y.y.y/y dev eth0
ip route add table 128 default via z.z.z.z
如何计算x.x.x.x
(公共IP):
curl ifconfig.me
如何找出y.y.y.y
(子网掩码)和z.z.z.z
(本地IP)...
- 安装
net-tools
以便您可以使用ifconfig
:
sudo apt-get install net-tools
- 打印出您的IP信息:
sudo ifconfig | grep -i mask
输出示例: