You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

开启VPN后如何在私有网络内通过SSH连接PC2

开启VPN后如何在私有网络内通过SSH连接PC2

嗨,我来帮你解决这个问题!你遇到的情况其实很常见——当PC2连上VPN后,默认路由被改成了走VPN接口(这里是nordlynx),所以即使你的内网IP还显示正常,PC2对外的回应流量会走VPN出去,而不是通过本地的wlan0回到私有网络,这就导致PC1收不到SSH的回应包了。

结合你提供的网络信息,我给你几个可行的解决方案:

方案一:添加静态路由让内网流量走本地接口

这是最直接的临时/永久解决方法,强制私有网段的流量通过wlan0传输:

  • 先在PC2上查看连VPN后的路由表,确认默认路由已经指向VPN:
    netstat -rn
    # 或者用更现代的命令
    ip route show
    
  • 添加一条针对私有网段的静态路由,让目标为192.168.189.0/24的流量走wlan0,网关用你的路由器IP192.168.189.1
    sudo ip route add 192.168.189.0/24 dev wlan0 via 192.168.189.1
    
  • 现在从PC1尝试SSH连接PC2的内网IP,应该就能正常通信了。如果想让这条路由重启后依然生效:
    • 对于老版本的Debian/Raspbian,可以把命令添加到/etc/rc.local文件中(注意要在exit 0之前);
    • 对于使用Netplan的新版本(比如Ubuntu 18.04+),可以在Netplan配置文件里添加路由规则,然后执行sudo netplan apply生效。

方案二:配置VPN拆分隧道,排除内网流量

很多VPN客户端(包括你用的NordLynx)支持拆分隧道功能,允许指定哪些流量不走VPN:

  • 打开NordVPN客户端的设置,找到类似「排除本地网络」「拆分隧道」的选项;
  • 将你的私有网段192.168.189.0/24添加到排除列表中;
  • 保存设置后,VPN只会接管外网流量,内网通信依然通过wlan0进行,无需手动修改路由。

方案三:绑定SSH服务到内网IP

让SSH服务只监听PC2的内网IP,确保回应流量从本地接口发出:

  • 编辑SSH配置文件:
    sudo nano /etc/ssh/sshd_config
    
  • 找到ListenAddress选项(如果没有就手动添加),修改为:
    ListenAddress 192.168.189.174
    
  • 重启SSH服务生效:
    sudo systemctl restart sshd
    
  • 这个方法可以配合方案一使用,进一步确保SSH流量走内网接口。

建议先尝试方案一或方案二,这两个方法更高效,不需要修改服务配置。

备注:内容来源于stack exchange,提问作者Greendev_2088

火山引擎 最新活动