最近墙抽风得比较厉害,OpenVPN 几乎全部阵亡,我自己架设的不用于翻墙用途的 OpenVPN 也都一并阵亡了。我只是用 OpenVPN 来组建一个虚拟局域网,以便从外网连接到我那被糟糕的移动宽带挡在内网里面的机器而已啊,这种人畜无害的服务都被咔嚓掉了,墙这次抽风抽得不轻。不过听说 有北邮的学生参与了墙的开发,考虑到天朝大学生的水平,出现这种情况也就不足为奇了。

虽然说我可以使用其他的虚拟专用网技术,但是比较起来还是 OpenVPN 更容易配置和方便部署。所以决定还是继续使用 OpenVPN,暂时不考虑更换到其他的虚拟专用网技术去。

据目前观察到的情况,墙只是会根据 OpenVPN 进行 TLS 握手时候的特征对特定的端口进行封杀,如果 OpenVPN 不使用 TLS 握手的话,墙就不会认出 OpenVPN 了。不过如果不使用 TLS 握手的话,OpenVPN 就只能配置成一对一的网络,没法组建局域网,故使用 TLS 是必须的(所以说你这墙放着只能用于翻墙用途的非 TLS 方式不管而去对可以作为正常应用的 TLS 协议下手你是要想怎样)。既然这样,那就只能对 TLS 握手过程进行一些模糊了。考虑到即使是握手之后的流量也会带有 OpenVPN 的表示,干脆顺便把握手之后的流量也一起做个模糊处理算了(好吧其实真正的原因修改代码的时候对所有流量进行处理要比仅仅对 TLS 握手流量进行处理更简单-_-b)。

于是这个补丁就出现了:

openvpn-2.2.2-obfs.patch