OpenConnect服务连接超时排查¶
最近(二十大前)原先部署的 OpenConnect VPN 虽然运行看上去正常,但是Cisco Any Connect客户端连接总是超时。
检查了服务器端口,我配置的 404
端口通过 telnet
检查是打开的,并且远程客户端电脑上使用 telnet vpn.huatai.me 404
端口检查时,可以在服务器上执行连接检查:
netstat -an | grep 404
显示:
tcp6 0 0 :::404 :::* LISTEN
tcp6 0 0 149.248.6.49:404 183.192.9.248:3449 ESTABLISHED
udp6 0 0 :::404 :::*
其中服务器端IP是 149.248.6.49
,可以看到客户端 183.192.9.248
已经连接到服务器 149.248.6.49
的404端口 ESTABLISHED
但是为何Cisco AnyConnect客户端会提示 Connection timed out.
呢?
备注
补充:
现在连接VPN服务器已经是在TCP连接建立阶段就丢包了,服务器端 netstat -an | grep 404
可以看到:
tcp6 0 0 :::404 :::* LISTEN
tcp6 0 0 149.248.6.49:404 183.192.18.51:2184 SYN_RECV
udp6 0 0 :::404 :::*
推测和验证¶
不过,我发现如果将 修改ocserv端口 可以短暂(也许有半小时或更长)正常使用VPN。然后,新调整的VPN端口再次被封。
如果GFW改进了特征探测,能够根据TCP包头部判断是否是VPN加密流量,并进行包丢弃 - 为何 修改ocserv端口 能够短暂使用:
可能GFW匹配计算量巨大,深度包侦测(轮到小虾米)有一段延迟时间
已经验证无效: GFW确实已经升级能够深度探测Cisco VPN 如果GFW并没有提升侦测计算能力,仅仅是将所有非常规https端口粗暴屏蔽(出于经济利益不可能闭关锁国)
将VPN端口恢复到 443 进行对比验证 ,如果长时间不被屏蔽则说明GFW确实只是简单屏蔽非常用https端口,如果还是被反复阻塞,则说明GFW确实提升了VPN特征检测能力( 已经验证,调整端口到443也会被屏蔽 )
备注
根据近期使用经验, ssh服务 并没有受到干扰,所以 SSH Tunneling: 动态端口转发 工作良好,通过socks代理方式上网非常顺畅。这从侧面反映,SSH等重要加密服务未受影响(技术上或者策略上GFW未干扰)。
解决方法¶
GFW并没有阻塞 ssh服务 ,乐观来说 SSL 加密技术目前可能还是比较安全的,悲观来说也可能仅仅是还没有到”闭关锁国”的阶段。所以,如果是桌面电脑,比较容易通过 SSH Tunneling: 动态端口转发 结合浏览器的 socks5 代理配置翻墙。
但是,对于手机设备,特别是 这样封闭的移动系统,需要采用标准的VPN方式来解决: