VPN环境下Git仅手机热点可用,家庭WiFi无法使用求助
解决家庭WiFi+VPN下Git/Wildfly连接异常的问题
看起来你遇到了一个典型的网络环境差异导致的办公故障,结合你给出的两种场景对比(手机热点完全正常,家庭WiFi+VPN部分功能失效),咱们一步步拆解排查思路和解决办法:
核心问题分析
既然手机热点+VPN能正常工作,说明你的本地系统配置、VPN证书、Git/SSH设置都是没问题的。问题大概率出在家庭路由器的网络配置、DNS解析、VPN路由策略上,甚至可能是ISP的临时网络限制。之前开启NAT后正常了两周,可能是路由器的NAT会话缓存满了,或者DNS配置被悄悄重置了。
分步排查方案
1. 先解决Git的DNS解析问题(最直接的报错点)
Git报错ssh: Could not resolve hostname git.companyname.it: Name or service not known,说明你的电脑在家庭WiFi+VPN环境下,无法解析公司Git仓库的域名。
- 打开命令行,在家庭WiFi+VPN连接状态下,执行:
如果返回nslookup git.companyname.it ping git.companyname.itNon-existent domain或者请求超时,确认是DNS解析失败。 - 对比手机热点+VPN时的DNS配置:
- Windows:执行
ipconfig /all,找到VPN适配器的DNS服务器地址; - Mac/Linux:执行
scutil --dns(Mac)或cat /etc/resolv.conf(Linux),查看VPN生效后的DNS配置。
看看两种环境下的DNS服务器是否一致——如果家庭WiFi环境下用的是路由器的DNS,而不是VPN推送的公司DNS,就会导致无法解析内部域名。
- Windows:执行
2. 排查路由器的NAT、MTU和防火墙
- 重启路由器:这是最简单也最有效的操作,很多时候路由器的NAT会话缓存满了,或者临时配置异常,重启后就能清空缓存恢复正常。
- 调整MTU值:家庭WiFi的MTU设置可能和VPN不兼容,导致数据包无法正常传输。试试把本地WiFi网卡的MTU改成1400(默认是1500):
- Windows:打开网络适配器属性 → IPv4属性 → 高级 → MTU,手动输入1400;
- Mac/Linux:终端执行
sudo ifconfig en0 mtu 1400(en0是你的WiFi网卡名,可通过ifconfig确认)。
- 检查路由器防火墙:确认路由器没有拦截VPN相关端口(Pulse Secure常用443、4443)或SSH(22端口)的出站请求,有些路由器的“家长控制”或“安全模式”会悄悄拦截这类流量。
3. 排查VPN路由与网段冲突
- 检查网段冲突:如果你的家庭WiFi LAN网段(比如192.168.1.x)和公司内部网段完全一致,会导致路由混乱——电脑不知道该把公司内部的数据包发往VPN还是本地路由器。可以修改路由器的LAN网段(比如改成192.168.10.x),避免和公司内网重叠。
- 查看路由表:对比两种环境下的路由规则,确认公司内部域名/IP的流量是否走VPN适配器:
- Windows:执行
route print,查找目标地址为公司网段的路由条目; - Mac/Linux:执行
route -n,检查目标网段的网关是否指向VPN接口。
如果路由不对,可以在Pulse Secure里设置“全部流量通过VPN传输”(禁用拆分隧道),强制所有流量走VPN。
- Windows:执行
4. 排查ISP层面的问题
- 执行
traceroute git.companyname.it(Mac/Linux)或tracert git.companyname.it(Windows),追踪数据包从你的电脑到Git服务器的路径,看看在哪一步卡住了:- 如果卡在ISP的节点,说明是ISP的网络限制,可尝试更换DNS服务器(比如临时用8.8.8.8),或者联系ISP反馈问题;
- 如果卡在路由器之后,还是回到路由器配置的问题。
针对性解决建议
- 强制VPN使用公司DNS:在Pulse Secure的VPN配置里,找到“DNS设置”选项,勾选“使用VPN提供的DNS服务器”,或者手动输入公司的DNS服务器地址,彻底绕过路由器的DNS劫持。
- 定期重启路由器:如果问题隔一段时间就复发,建议每周重启一次路由器,避免NAT会话缓存溢出。
- 修改路由器LAN网段:彻底解决网段冲突导致的路由问题,这是一劳永逸的办法。
一旦DNS解析和路由问题解决,Git的拉取/推送、Wildfly的数据库连接池超时问题都会随之消失——因为本质上都是网络连通性或域名解析的问题。
内容的提问来源于stack exchange,提问作者Kintha




