迅雷和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
请注意:如果要转载、引用或以其他方式使用本站资料,请务必阅读下方的使用协议!否则本站将追究您的责任!
echo那句有点问题, 报错
试了ok了,不过我要把源地址的domain替换成127.0.0.1迅雷才正常
您好,修改Hosts就是为了用原域名解析,如果127.0.0.1正常则无需修改。(好久没看评论,这才刚approve的)
用迅雷的意义在于可以自动搜索备用资源,多资源同时下载!
你这个方法仅仅是把下载原地址的对应的服务器链接改成了IPv6格式,但是迅雷搜索到的其它备用资源还是IPv4的,所以,除了原地址服务器的流量之外,其它的还都是IPv4的流量!
如果能把所有的备用资源也转成IPv6的就好了!
我这个方法的主要目的,是实现IPv6的单资源多线程下载。因为用很多IPv6下载工具wget或者curl都没法做到这一点,而支持多线程的旋风和迅雷都不支持IPv6。
如果要实现屏蔽v4流量,可以直接防火墙全部屏蔽,也可以弄一个IPv6代理设成迅雷代理(当然要先做IPv4的portproxy咯),这样其他资源下载也会从IPv6走了。