之前在这篇文章里提到说,使用OpenVPN和WireGuard都穿不透公司的访问控制,其实有一点我自己的失误:OpenVPN确实是穿不透,但WireGuard穿透不成功,主要是因为我配错了一条路由,具体的后面再讲。
至于为什么又回到WireGuard了呢?诚然SoftEther VPN依旧是我的心头好,且从穿透能力、易用性、对L2TP和OpenVPN的兼容上来讲,依旧是个人认为综合能力最好的VPN,但在我的办公实践上却遇到了一些问题:SE VPN几乎完全依赖和服务器的TCP连接(不完全对,虽然它确实有NAT穿透,但很难成功),当网络环境对TCP不友好时,连接的可靠性——甚至是可用性就会大打折扣。
而从另一方面讲,SE VPN的特征还是相对明显了,对TCP进行阻断已经不是什么新技术,对于SE VPN这种纯依赖TCP的通信来讲打击更是毁灭性的。我暂时不确定问题具体出在公司的小水管、访问控制或是XX云的风控上——或者是兼有之。但结论来看,SE VPN不适合继续用于保护我的上网流量了。
之前对OpenVPN进行了较全面的测试,证实了它穿不透,于是觉得认真测试一下WireGuard的效果。该说是果不其然还是意料之中呢,完全基于UDP传输的WG取得了好得多的效果,在使用中SE VPN那种“VPN连接正常,但其实断网老半天了”的情况没有再出现。WG的配置相对简单——根据官网介绍,这也是为了减少误未配置导致的风险暴露面,但上手还是有一些难度的,我也花了些时间才配出来能用的一套配置,这时候就有点怀念SE VPN的管理工具了。
过程中遇到两个问题:一是上不了网,后面发现是我之前手动添加了0.0.0.0/0全部到SE VPN网关的路由,导致流量不走WG,删掉路由后能够正常上网;二是另一个网口的内网流量也一股脑从WG走了,解决方案参考这篇博客,通过将AllowIPs设置为0.0.0.0/0剔除内网网段后的补集,让内网流量照常从第二网口走。后来也找到一个在线工具,更易用一些。