迅雷和QQ旋风等软件本来不支持IPv6下载,我们现在要用它们来多线程下载IPv6的文件,而不需要安装第三方软件(Windows 7,其他系统未测试)。
Windows 7自带一个命令netsh,本来是用来管理网络的命令行程序,但是其中有一个经常被忽略的功能——Port Proxy(端口代理 / 端口转发)。利用这个代理可以将本地的一个v4或v6端口和远程的一个v4或v6端口进行数据转发,也就是常说的“端口转发”。
现在我们要做的就是,将一个远程IPv6服务器的80端口映射到本地IPv4(127.0.0.1)的80端口,然后用迅雷等软件直接下载,迅雷就会认为是IPv4,但是网络出口是IPv6。以下是具体步骤(所有命令均在cmd中输入):
1. 查询远程服务器IPv6地址,例如:
2. 进入netsh命令行,并建立v4 to v6的端口转发关系:(输入完成后按Ctrl+C退出即可)
C:>netsh
netsh>interface portproxy
netsh interface portproxy>add v4tov6 80 2001:da8:d800:95::110 80
netsh interface portproxy>show all
3. 打开C:WindowsSystem32DriversEtcHosts,将远程服务器域名映射到127.0.0.1地址。使用记事本打开上述文件,在最后添加一行:
127.0.0.1 mirrors.ustc.edu.cn
解释:这一步的目的是,有些网站实际是虚拟主机,在请求时会发送Host(主机名)头,若直接用127.0.0.1请求,对于这些主机由于找不到会返回HTTP 400。
4. 打开迅雷或QQ旋风等下载软件,直接用原域名和地址下载即可。下载完成后可以用del v4tov6 80命令来删除端口映射。
利用IPv6的好处就是,教育网内不限速、不计流量;而利用多线程的好处是,单线程速度过低可以用多线程补救。这个方法可以让这两点好处结合起来,非常实用,是我走过HTTP代理、CCProxy转发之类的弯路之后找到的最佳方案了。希望能对大家有点用。
下面是QQ旋风使用本方法之后,在USTC的IPv6镜像下载的效果:
下面是在国外IPv6的下载速度(单线程下载我们学校只有200K左右,也没有备选资源之类的):
[HOSTS] 127.0.0.1 centos.mirror.nexicom.net
请注意:如果要转载、引用或以其他方式使用本站资料,请务必阅读下方的使用协议!否则本站将追究您的责任!