Ubuntu16.04使用VPNC-client连接办公网后无法访问公网求助
VPNC连接后无法访问公网的解决办法(Ubuntu 16.04)
我来帮你解决这个问题,结合你提到的路由信息来看,核心问题是VPNC连接后默认路由被切换到了tun0接口,导致所有流量都试图通过办公VPN网关传输——但你的办公VPN大概率没有配置公网流量转发权限,所以才会出现能连VPN但打不开公网的情况。
下面是具体的解决方案,分为临时手动配置和永久自动配置两种方式:
一、临时手动配置(重启VPN后需要重新操作)
这种方式适合快速验证,先让你恢复公网+内网的访问:
- 正常连接VPNC,此时默认路由指向
tun0,公网无法访问。 - 删除
tun0的默认路由,让公网流量回到本地网关:sudo route del default dev tun0 - 添加办公内网网段的路由,确保内网资源走VPN隧道(把下面的网段替换成你公司实际的内网IP范围,比如从VPN连接后的
route输出里找非默认的路由条目):# 示例:添加192.168.0.0/16网段走tun0 sudo route add -net 192.168.0.0/16 dev tun0 # 如果有多个内网网段,依次添加 sudo route add -net 10.0.0.0/8 dev tun0 - 验证:用
ping google.com测试公网,ping 你的办公内网IP测试内网,两者都正常就说明配置生效了。
二、永久自动配置(无需每次手动调整)
修改VPNC的配置文件,让它自动启用拆分隧道(仅内网流量走VPN,公网走本地):
- 找到你的VPNC配置文件,通常在
/etc/vpnc/目录下,比如/etc/vpnc/office-vpn.conf。 - 打开配置文件,添加以下内容(替换内网网段为实际值):
# 禁用VPN推送默认路由 Disable Default Route yes # 添加需要通过VPN访问的内网网段 Add Route 192.168.0.0/16 Add Route 10.0.0.0/8 - 保存文件后,重新连接VPNC,路由会自动按配置生成,此时既能访问办公内网,又能正常上公网。
额外注意:DNS配置问题
如果公网能ping通IP但打不开域名,可能是DNS被VPN替换成了内网DNS(无法解析公网域名)。可以手动添加公共DNS:
echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
内容的提问来源于stack exchange,提问作者Prakash P
相关产品推荐
相关产品推荐

