b-m*_*m-f 6 networking ubuntu vpn openvpn
我有一台服务器,我想在它上面设置一个 VPN 来路由所有流量。
当然,我不想在建立 OpenVPN 连接时阻止自己(已经这样做了!)所以我希望端口 22 不受影响并且可以像往常一样访问。
这可能吗?如果是这样,我该如何设置?
小智 14
您需要向服务器添加路由,以便 ssh 数据包通过服务器的公共 ip 而不是 vpn 进行路由。不这样做意味着 ssh 返回数据包将通过 openvpn 路由。这就是您在启动 openvpn 客户端会话后被锁定在服务器之外的原因。
让我们假设您的服务器:
a.b.c.da.b.c.0/24x.x.x.1eth0 是设备到网关iproute2是你的朋友吗?请执行下列操作:
ip rule add table 128 from a.b.c.d
ip route add table 128 to a.b.c.0/24 dev eth0
ip route add table 128 default via x.x.x.1
Run Code Online (Sandbox Code Playgroud)
执行route -n以确认新的路由表出现。如果您重新启动服务器,上述命令将不会保留。您需要将它们添加到您的网络接口配置文件中。
然后运行您的 openvpn 客户端配置
openvpn --config youropenvpn-configfile.ovpn &
此外,如果您希望将公共 IP 的流量限制为 ssh 并且仅使用 ssh,那么您需要iptables按如下方式添加过滤:
iptables -A INPUT -d a.b.c.d -p tcp --dport <*ssh port number*> -j ACCEPT
iptables -A INPUT -d a.b.c.d -j DROP
Run Code Online (Sandbox Code Playgroud)
ps:我记得第一次在 Linode 的论坛上了解到这个 - 谷歌它,你应该能够找到一个关于这个的帖子。