如何将Compute Engine实例连接私有VPN及nmcli配置异常排查
排查方向
- 优先检查路由表变化
分别在VPN连接前后执行ip route show对比默认路由指向:如果VPN连接后默认路由被替换为VPN网关,说明VPN服务端推送了全局路由规则,SSH请求的回包会被转发到VPN隧道而非原来的公网网关,直接导致SSH断连。
临时解决可以在启动VPN连接时添加不修改默认路由的参数:nmcli connection modify <你的VPN连接名> ipv4.never-default yes ipv6.never-default yes,再重新启动VPN连接即可。 - 检查策略路由规则
执行ip rule show查看GCP默认生成的源地址策略路由是否被覆盖:谷歌云实例默认会为主网卡配置专属策略路由,确保公网IP的回包从主网卡转发,你之前修改NetworkManager.conf开启ifupdown托管的操作可能冲掉了原有策略路由。如果规则缺失,需要手动添加对应主网卡子网的策略路由,保证SSH回包路径正确。 - 排查防火墙与NAT规则
执行iptables -t filter -nvL、iptables -t nat -nvL查看VPN连接后是否新增了拦截22端口、或者修改回包源地址的规则:如果回SSH的包源地址被替换为VPN内网地址,客户端无法识别合法回包也会导致连接中断。 - 确认谷歌云网络代理服务状态
执行systemctl status google-guest-agent检查服务是否正常运行:该服务负责托管GCP实例的网络配置、SSH密钥同步等核心逻辑,如果你修改的网络配置和该服务产生冲突,也会触发网络异常断连。 - 验证VPN路由推送配置
确认公司OpenVPN服务端是否推送了全量路由规则,如果你只需要访问VPN内网的特定网段,可以手动配置静态路由仅将对应网段的流量导到VPN隧道,避免公网流量被误转发。
操作建议:所有网络配置调整优先通过GCP控制台的串行控制台连接实例操作,避免SSH中途断连导致无法操作实例。
内容的提问来源于stack exchange,提问作者Miguel Angel Alvarez Rodriguez
相关产品推荐
相关产品推荐

