vpn,想说爱你不容易

windows 7/8内置了SSTP VPN,这是一种新的VPN,走SSL协议、443端口,所以目标很小。可惜它用的还是TCP。网上有篇10多年的文章,讲为什么TCP不适合用来做VPN “Why TCP Over TCP Is A Bad Idea” ,大意是说,当下层发生tcp delay时,会更更新自己的tcp timer,但是无法把这些更新通知给上层,使得上层很容易暴躁的向下层要求传更多的重传包。

Cisco的旧的VPN协议大概是目前支持最广、跨平台性最好的VPN了。在iPhone上无需越狱即可使用。它就是直接使用的IPSec,但是在auth上有所更改。比起L2TP/IPSec来说,因为少了一层,配置和管理都简单很多。

但是racoon这样的程序有个问题,它不能像openvpn那样把route table推给client。于是我在此很推荐https://github.com/ashi009/bestroutetb 这个项目。根据APNIC的最新IP地址分配表来生成路由表。但是这样依然有个问题,DNS怎么办? 因为存在人为的DNS污染,所以不能用本地的,必须用VPN Server的。然后许多国内的网站就会被解析到它在美国的服务器上去,所以即便修改了route table,访问这些网站依然还是很慢,而且依然还是会走vpn。比如sina weibo,从2-5ms到300-400ms左右。差别太大了。这个问题有办法解决吗? 我还没找到。

VPN最大的问题还是目标太大,特征非常明显,很容易被某防火墙检测到。

此博客中的热门博文

在windows下使用llvm+clang

少写代码,多读别人写的代码

tensorflow distributed runtime初窥