我正在寻找一个解决方案,在云服务器上使用远程bittorrent客户端,然后通过http将文件下载到本地系统。预计这将提高我的带宽并克服将我的 ip 列入黑名单(假设我是否在代理后面(。我的解决方案就像 seedr.cc 一样.我想提供的另一个改进是,要在本地(客户端应用程序(中同时下载的文件/目录。如果我的解决方案是客户端服务器应用程序,这也可以很容易地完成。现在,真正的问题是,假设我是否根本不想在服务器上下载文件/目录,而是直接在客户端上下载文件/目录而不挂载远程磁盘(客户端的磁盘(。在这里,请记住服务器仅用于网络,根本不使用存储。你知道有什么可以帮忙的吗?
好吧,标题中的"rsync"有点误导,你在这里遇到了几个问题:遥控器必须是可访问的......所以有一个"活动隧道"回到你的客户将是一项艰巨的任务
对于传入部分:您可以将LFTP用于种子 https://lftp.yar.ru/torrent.html 并按用户分开,还可以帮助您获得配额等,建议:在屏幕或BYOBU会话中使用它
对于下载部分:
- 也许使用虚拟硬盘(
mkdir /tmp/ramtamtam;mount -t tmpfs /dev/null /tmp/ramtamtam/ -o size=64M
(并让客户端访问它 - 使用归档装载https://github.com/bramp/archivemount 并将其发送到客户机
- 将外部提供程序(如 mega(与 RCLONE 一起使用,并让客户端访问此提供程序
- 一个巧妙的Optoin是让客户端通过torrent本身访问您服务器上的种子 自定义磁力链接 ,并将其添加到正在运行的LFTP会话中,因为下载率为100%,您可以使用 https://webtorrent.io/
- 通过HTTP下载也可以使用LFTP的
mirror
命令实现
让我先描述一下你的拓扑结构。
你建立一个服务器和一些客户端,客户端可以使用p2p下载文件。并且您希望客户端可以从服务器和其他客户端下载文件以加快速度。
首先,bt下载可以提高您的速度,但限制来自您的ISP。如果您只购买100Mb带宽,则无法获得比它更高的速度。
其次,如果这种拓扑可以帮助你,那么你就可以构建这样的系统。
-
需要NAT遍历,这是基本的p2p通信。您可能需要natpmp,upnp或ICE。既然你有服务器,也许ICE更好。
-
LSD和DHT将帮助您找到其他客户。
需要对等 线通信协议才能连接到其他对等方并下载文件。
有一个名为libtorrent的开源项目可能会帮助你。它构建了整个系统,您可以使用它或通过学习来构建自己的系统。
至于下载表单服务器和客户端,需要有一个对等管理器设计,这是相对困难的,我不能简短,你需要自己做很多例子和优化。
Bittorrent 客户端通常需要随机访问它们正在传输的数据,因为它们同时下载和上传,并且必须处理来自远程对等方的随机请求。 这意味着如果您使用网络文件系统,那么 bittorrent 客户端的性能将受到提供存储的主机的上传和下载带宽以及延迟的限制。这可能会削弱云实例本来可以实现的性能。
相反,您可以使用具有临时存储的云实例(此后的服务器(作为加速器。这可以通过让服务器和本地客户端实现 bittorrent 来实现,但从服务器到客户端提供优先带宽处理。这样,服务器将从其他对等方下载数据,同时将其传输到客户端。服务器可以继续从其临时存储中播种种子,直到重新启动。