![如何通过 SSH 进入使用 VPN 的服务器?](https://linux22.com/image/731059/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9B%E5%85%A5%E4%BD%BF%E7%94%A8%20VPN%20%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我有一台使用 VPN 服务的 Raspberry Pi 服务器 (rpi),该服务器具有静态内部 IP。我的路由器具有静态公共 IP,并且我已设置 NAT 以将 SSH 流量转发到 rpi,因为我在网络上有其他设备。
当不使用 VPN 时,我可以通过 SSH 远程(在我的网络之外)进入 rpi 服务器。当使用 VPN 时,我可以通过 SSH 内部(在我的网络内)进入 rpi。 当使用 VPN 时,我无法远程 SSH 进入 rpi。
我曾经看到过其他类似的问题,但是我是个新手,我无法完全理解所解释的内容或确定情况是否与我的情况相同。
我不认为我在服务器上使用了防火墙,而是依靠路由器来阻止连接并使用 NAT 来转发连接。我不明白 iproute 的用途是什么,也不明白应该在哪台机器上配置它。
答案1
您的 Raspberry Pi 与其本地子网 直接连接192.168.1.0/24
,但 VPN0.0.0.0/0
通过本地默认网关向 添加了一条新路由。因此,即使传入连接通过本地网关,通过互联网返回 PC 的数据包也会使用 VPN 路由。
你可以
- 通过路由器向 PC 的网络块添加新的静态路由或者
- 将端口 22 转发到 LAN 上的另一台机器,然后从该机器连接到 Raspberry Pi。
答案2
您可以进行基于策略的路由,并利用以下事实:当您不通过 VPN 访问 RPi 时,传出的数据包将使用 192.168.1.4 作为源,因为传入的数据包使用 192.168.1.4 作为目的地。
请参阅另一个主题中的这个答案: https://unix.stackexchange.com/a/23345