OS|关于Linux下载工具

来由 不得不说在windows下下载自从有了迅雷以后就没有考虑过什么是BT还是电驴下载,总之只要有什么thunder,有magnet,或者是ed2k的统统丢进迅雷,欧,当然还有.torrent的种子,迅雷都可以一站式解决,加上校园网的下载速度不差,一般资源都由5-600K/s,当然你愿意还可以租用个会员什么的,直接把速度拉到2-5MB/s,所以我一直都是这么下各种小电影的,咳咳,回到正经的。
换到linux以后我也没有关注过迅雷,因为换到linux以后,就没有下载过GB级别的文件,比如高清电影什么的,一般一些软件都是十几M的,最近在追的《甲铁城的卡巴内瑞》一集也就500M,在浏览器下载挂着上个课就下载好了,而且速度不慢.以致于我一直都是用wget下载,什么aria2,transmission的都没有用过,我的Kali里面就只有个wget.所以之前写的一篇开源软件推荐里面我也忽略了下载工具这方面,因为那时候还没有需求,然而最近需求来了,我想看一部叫《垫底辣妹》的日影,然而都网上找不到http或者ftp(电影天堂那个要迅雷客户端的),总之就算我想用浏览器挂慢慢下都不可以,何况我不想用浏览器挂着慢慢下载.
其实我要看《垫底辣妹》有几种选择,第一,直接到电影院,为票房作出贡献,然而时间已经过了,何况貌似中国大陆没有上映?第二,等,等国内各种视频网站更新这部电影,然后冲个VIP什么的,直接在线观看,首先在知道有高清片源流出的时候,我压根不想等,其次给网站冲VIP,对我而言简直天方夜谭,所以我只能选择第三,下载~
我统计了一下我找到的这部片子都有几种下载方法

1.magnet的磁力链接 2..torrent结尾的BT种子 3.ek2k的电驴链接 4.迅雷自家的thunder链接

非常好,这么一统计,各种下载协议看得我眼花缭乱,以前用迅雷的时候就没有管什么是什么的链接,现在突然冒出这么多,也不知道哪个好,哪个快,结果是要看片,就得自己折腾。
P.s.顺带提一句,有一点国内还是不错的,至少一些P2P下载工具还是能光明正大地跑,甚至还有迅雷这么一家专门的P2SP公司,这在美国等一些版权意识十分强烈的国家是不敢想象的,但是正是因为国内的小水管道,单纯http或者是htp下载简直要命,所以作为补充,P2P甚至是P2SP的方式才显得那么需要,我还记得以前不知道有下载工具,比如迅雷的时候,挂着windows的IE等文件下载的感觉,那是十分不好。
下载协议 现在我就来就着上面这四种下载方式稍微报告一下我的调查结果,稍微做个对比:
(首先要明确两个基本概念,①P2P的核心思想就是没有服务器的概念,任何一个下载者既是client,又是server; ②下载者从别人那里取文件的时候,称为下载,而为别人提供文件的时候,称为上传)
1.Magnet
磁力链接(Magnet URI scheme),是对等网络中进行信息检索和下载文档的电脑程序,和基于“位置”连接的统一资源定位符(URL)不同,磁力连结是基于元数据(metadata)文件内容,属于统一资源名称(URN),即磁力连结不基于文档的IP地址或定位符,而是在分布式数据库中,通过散列函数值来识别、搜索来下载文档。
这个标准的草稿出现于2002年,是为了对eDonkey2000的“ed2k:”和Freenet的“freenet:”两个URI格式进行“厂商与项目中立化”而制定的。
磁力链接最常见的用途是基于文件内容的散列函数值来链接到特定文件,生成一个唯一的文件识别符,类似于ISBN。不像常规的识别符,内容散列可以被任意一位持有此文件的人生成,所以并不需要一个中心机构,这使其在文件共享领域经常被用作搜索条件,因任何人都可以分发一个磁力链接来确保该链接指向的资源就是他想要的,而和得到该资源的方式无关。(虽然技术上讲,两个不同的文件可能具有相同的散列值,但实际上这是极不可能发生的)
另一个磁力链接的优势是开放性和跨平台性:一个磁力链接可被运行在几乎所有平台上的应用程序们使用以下载一个文件。因为磁力链接十分简洁且为纯文本格式,所以用户可以很方便地将其复制到电子邮件或即时消息中,比如种子文件。
P.s.Magnet由于其搜索资源方式,每次连接的源头都是不固定的,也就没法查封源头。
2.BT
BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据,而在FTP,HTTP协议中,每个下载者在下载自己所需文件的同时,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于FTP服务器处理能力和带宽的限制,下载速度会急剧下降,有的用户可能访问不了服务器。BT协议与FTP协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽。通过一定的策略保证上传速度越快,下载速度也越快。在很短时间内,BitTorrent协议成为一种新的变革技术
.torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件(.torrent)中。所以,种子文件(.torrent)就是被下载文件的“索引”。
后来又发展出DHT网络技术,使得无Tracker下载成为可能,DHT全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。使用支持该技术的BT下载软件,用户无需连上Tracker就可以下载,因为软件会在DHT网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。
有些软件(比如比特精灵)还会自动通过DHT搜索种子资源,构成种子市场。
另外,这里使用的DHT算法叫Kademlia(在eMule中也有使用,常把它叫做KAD,具体实现协议有所不同),这种技术好处十分明显,就是大大减轻了Tracker的负担(甚至不需要)。用户之间可以更快速建立通讯(特别是与Tracker连接不上的时候)。
3.ed2k
与多数文件共享网络一样,它是分布式的;文件基于点对点原理传输,而不是由中枢服务器提供。客户端程序连接到ed2k网络来共享文件。而ed2k服务器作为一个通讯中心,帮助用户在ed2k网络内查找文件。它的客户端和服务端可以工作于Windows、Mac OS、Linux、UNIX等操作系统。2005年因与美国唱片工业协会的官司败诉被美国联邦最高法院判为非法,被判罚向RIAA赔款3000万美元并且永久停止开发。
由欧洲黑客和爱好者们破解ed2k协议(未经MetaMachine公司授权,并不合法)开发的MLDonkey,电骡eMule等客户端却普及开来,当时这些兼容客户端有:eMule(电骡),MLDonkey,Shareaza,aMule,Hydranode,Lphant,Morpheus,lMule等
作为ED2K客户端,mldonkey的最大特色就是支持同时连接多服务器(emule,amule等都只能连接一个ed2k服务器),大大提高了可用源的数量。
4.迅雷(国内流行)
P2P(Peer to Peer)是基于点对点(对等网络),一端的下载速度和另一端的上传速度密切相关,由于中国用户大多使用ADSL上网,ADSL的上传速度并不快,仅几十K速度,一些用户还会人为限制上传速度,这导致了P2P方式的上传带宽资源的缺乏,因此中国用户会普遍感觉P2P的速度较慢。
P2S(Peer to Server)是基于用户对服务器,用户直接到某个大型的下载网站去下载文件,文件存储在网站服务器上,因此速度可以得到保证,通常都会有数百K的速度,但存在的问题是资源分散、不易搜索。
而迅雷使用的P2SP(Peer to Server & Peer)基于用户对服务器和用户机制,不同于P2P,也不同于P2S,P2SP下载方式实际上对P2P技术的延伸,它不但支持P2P技术,同时还通过检索数据库把服务器资源和P2P资源整合到了一起,用户下载某一个文件的时候,会自动搜索其他资源,选择合适的资源进行加速,这使得迅雷在下载的稳定性和下载的速度上,比传统的P2P有了非常大的提高。
这里面的核心问题就是迅雷的智能资源选择,用户使用迅雷下载某个文件的同时,迅雷会自动收集用户的下载地址,并以MD5值判断是否为同一个文件,从而形成一个庞大的下载链接库,这样就在迅雷服务器端进行了资源的整合,当后面的用户下载同一个文件时,迅雷就会根据用户具体的网速去一个速度最快的服务器上面下载同一个文件,由于选择通常是最优化的结果,因此用户感觉下载速度的确非常快。
总的来说,小型的软件下载站应该避免浪费流量,避免盗链,同时也应该量力而行,如果没有足够的流量支持,例如使用几百元的虚拟主机,就不要提供大量文件下载,否则肯定会被拖垮。不过,大型软件下载站的策略就可以不同,不一定非要节省流量,因为通常大型下载站都会托管了独立的服务器,有了一定带宽的保证,只要不放一些大型文件,通常不会流量超限,那时就不必在乎迅雷的这种P2SP行为了,而可以利用迅雷做一些广告,如果实在流量太大,可以直接使用上面说的第四条方法,限制下载空间的连接数即可减轻服务器负载
个人理解:迅雷就是结合了P2S,P2P两者的特点,尽最大极限找下载来源,做到充分利用用户带宽(当然非VIP可能做了限速),但是他又不上传,或者是上传很少,甚至只是在迅雷用户圈内上传,并不反馈到P2P网络,那么“盗链”和“吸血驴”就这么来了.
P.s.没错,你在中文维基里面看的内容和上面基本一样,我只是做了删减和提炼,特在此作出声明.
吐槽一句:虽然内容都是维基的,而且中文维基对这三者的介绍都非常全面,可我就没有看到有把这三种(迅雷是P2SP)P2P下载方式别说比较了,放在一起都没有,那么不比较的话,其实磁力链接,BT还有电驴在我看来都很像好不好:-)
实际下载工具 那么接下来是说说linux下一些实际的下载工具:
(linux上的下载工具多到让你头疼,但其实各个下载软件的下载协议还是脱不开上面说的几种P2P协议):
1.Wget
2.BitTorrent(原版)
3.Transmission
4.Uget(cURL+Aria2)
5.KTorrent
6.μTorrent
7.Amule/Emule
8.MLDonkey
9.Flashget
10.xware–迅雷替代方案
1.Wget
Wget是一款CLI的下载工具,几乎所有Unix Like的平台都有它,小巧轻便,和上面列出其他下载工具不同,它并不是基于P2P的方式,目前它支持通过HTTP,HTTPS,以及FTP这三个最常见的TCP/IP协议协议下载,即它的下载方式是P2S的方式.
它最强大的地方是-r(recursive递归)这个选项,意思就是可以下载请求URL页面内引用的所有链接,几乎每个web页面都会引用URL,所以基本上-r以后下载就会一直进行,但是它的缺点是支持的协议较少,特别是cURL相比,流行的流媒体协议MMS和RTSP没有得到支持,还有广泛使用各种的P2P协议也没有涉及.
结论就是如果只是进行非P2P下载,wget一个足以.
2.BitTorrent(原版)
这款软件我没有用过,不过见到一篇介绍挺好的,就抄来了:
首先国内可能很多人不知道BitTorrent这款BT下载软件,国内知道的比较广泛的大多数都是比特彗星(BitComet)比特精灵(BitSpirit),以及国内著名滴流氓下载软件某雷。当然喜欢PT下载以及BT下载的发烧友估计也知道国外滴一款新兴BT、PT软件μtorrent,国内现在越来越多喜欢下载BT的朋友知道了μtorrent这款软件很好用,下载速度快、稳定、资源占用非常少(内存占用还不到10MB)下载国外的BT种子用μtorrent速度飞快,迅雷却完全没有速度(国外没人知道中国迅雷,外国种子不认识迅雷)因为以上种种原因国内使用μtorrent的朋友越来越多,但是国内很少有人知道其实μtorrent这款软件只不过是“美国BitTorrent公司为了旗下的 BitTorrent BT下载软件(也是全世界第一款BT下载软件,真正的BT下载软件始祖)进行新版本、新功能、的测试而收购的一家子公司,换句话说μtorrent只不过是BitTorrent的测试版或者“割阉版”,而且因为utorrent最早就是为了给BitTorrent测试新版本、新功能的软件。稳定性、BUG各个方面来说都比BitTorrent要差很多
3.Transmission
是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面,Transmission以MIT许可证和GNU通用公共许可证双许可证授权,因此是一款自由软件,支持Magnet.
4.Uget(cURL+Aria2)
其实cURL和Aria2也是单独的两款下载工具,Uget对两者都可以同时集成调用,所以就一起放在这里说了
cURL
cURL是一个利用URL语法在CLI下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具,cURL还包含了用于程序开发的libcurl。
cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
Aria2
Aria2也是一款CLI下工作的下载工具,支持HTTP/HTTPS, FTP, SFTP, BitTorrent 和 Metalink通信协议.
Uget
GUI工具,除了支持原生http/ftp还支持magnet,但是主要还是因为它的简洁的图形界面和对curl和aria2的调用.
5.KTorrent
6.μTorrent
据说是老大哥BitTorrent的测试版,现在被
7.Amule/Emule
8.MLDonkey
9.Flashget
网际快车,我认为它的优点是你让它从哪里下文件,它就从哪里下文件,它从不自作主張,速度方面比IE快,不過自身线程少,多数网站允许同一IP连接的线程也不会多,导致其效率时高时低;
10.xware–迅雷替代方案
关于PT的贴个链接:
http://bbs.htpc1.com/thread-82734-1-1.html
结束 其实作为一个普通用户不可能一个个去试用,那么作为一个整合型的下载软件,迅雷真的做的很好,不然光是大大小小的软件用户就得安装不少,还要倒腾每个软件的特性,对比,然而这个过程太费时间和精力,特别是国内这种下完的跑的圈子,就算倒腾得有什么结果,下载速度还是提升不上去,所以最适合国人的下载方式就是迅雷,尽管他很无赖.
【OS|关于Linux下载工具】以上具体P2S,P2P,P2SP下载工具由于时间精力有限,只是做了部分列举,如果你有其他好的工具的体验,不妨写在下面的评论区域~
这一篇通篇基本都在讲下载的事情,而一些其他开源软件其实我也有总结,http://blog.csdn.net/qq_29245097/article/details/51511145,这是我之前的一篇推荐文章,希望能帮到你。

    推荐阅读