![通过多个接口使用多个连接进行 http 下载的 Linux 工具](https://linux22.com/image/142197/%E9%80%9A%E8%BF%87%E5%A4%9A%E4%B8%AA%E6%8E%A5%E5%8F%A3%E4%BD%BF%E7%94%A8%E5%A4%9A%E4%B8%AA%E8%BF%9E%E6%8E%A5%E8%BF%9B%E8%A1%8C%20http%20%E4%B8%8B%E8%BD%BD%E7%9A%84%20Linux%20%E5%B7%A5%E5%85%B7.png)
有没有允许使用多个网络接口和多个连接下载 http 文件的工具?我想通过多个接口下载大文件来测试我的整体互联网连接速度。类似于 lftp 和 wget —bind-address 选项
答案1
是 -wget
与--bind-address
下载选项一起使用:
--bind-address=ADDRESS
建立客户端 TCP/IP 连接时,绑定到本地计算机上的 ADDRESS。 ADDRESS 可以指定为主机名或 IP 地址。如果您的计算机绑定到多个 IP,则此选项会很有用。
wget
在每个接口上同时运行一个副本。我目前无法对此进行测试,但我非常确定下载将来自wget
绑定的界面。
或者,要在每个网络接口上允许多个 TCP 连接,您可以使用btdownloadcurses
以下--bind
选项:
--bind ip
绑定到 ip 而不是默认的
答案2
在 HTTP 或 HTTPS 的情况下,只要服务器支持范围请求,您就可以单独获取范围并将它们拼接在一起。我开始研究你指出的一个用例。如果您仍然感兴趣,这里是我的存储库的链接https://github.com/m0hithreddy/MID。
程序(MID)使用SO_BINDTODEVICE套接字选项来绑定到特定接口,因此在大多数情况下您需要超级用户权限和CAP_NET_RAW能力(root用户具有)。
MID确定下载时使用的网络接口,并采用两步分割来下载内容。
- 第一步:文件在网络接口之间划分(实时)。
- 第二步:进一步将文件分为几个HTTP 范围请求由该特定接口产生(笔记:服务器应该首先支持它们,以使这一切成为可能)
您的用例到此结束...但是 MID 的更多功能是...支持 HTTPS 协议、GZIP 编码(如果服务器支持)。
如果您热衷于将 MID 用于 HTTP,则仅./configure
使用--without-ssl
参数 ( ./configure --without-ssl
)运行
干杯:)