V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeyeye
V2EX  ›  问与答

如何使用 BT 或电驴(ed2k)方式分享文件

  •  
  •   yeyeye · 2016-05-01 20:14:24 +08:00 · 7969 次点击
    这是一个创建于 3129 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直以来下载过很多 BT 和 ed2k 资源,然后刚才看到某帖子说如何上传大文件到百度云,随即我测试了一下

    使用了几款专门 utorrent ,比特彗星,比特精灵,新建种子,然后找了一堆 bt 服务器加入到种子里(已确定其中的服务器有一些是可用的)

    然而……一直没有速度……我用 2 个电脑,一个分享,一个下载……也是没速度……根本就下载不了!

    然后测试电驴 eMule ,这货用起来更困难,先得找可用的服务器列表,找到了可用的,在“服务器”界面加入并连接成功了。赶紧分享文件……

    在确定 2 个电驴连接的是同一个服务器情况下,分享的文件仍然不能下载…… Kad 网络也试试吧……下载了一个节点文件……两边都去连接……然而一会又一会之后……

    我分享的文件仍然没有下载速度………最后无奈建了个 http 服务器把这个文件分享出去了,百度云离线下载成功! PCloud http 网址方式上传成功! 至于其他不支持离线下载的网盘……由于文件过大……还真不知道咋样上传…… dropbox 或许也是一个不错的选择,但是我的文件过大,又要翻~墙……实在没勇气上传这么大的文件……(我的文件接近 4G )

    一番测试下来,浪费了一大堆时间,竟然建立 http 服务器是最简单的……什么去中心化 bt 啊电驴啊都是渣……而且还不需要客户端,你有浏览器就可以下载了……当然了,这个也有限制,就是要映射端口,但是稳定啊!又支持断点续传神马的!

    还是说我的使用方式不对?请指教!
    第 1 条附言  ·  2016-05-01 20:53:39 +08:00
    两个电脑均为 100M 电信宽带 在同一镇区 无限制协议
    21 条回复    2016-05-02 02:59:20 +08:00
    yeyeye
        1
    yeyeye  
    OP
       2016-05-01 20:24:08 +08:00
    实在没耐心等待了,确定 ed2k 和 bt 均分享失败……并且不认为操作过程中有错误。
    smallfount
        2
    smallfount  
       2016-05-01 20:28:13 +08:00
    本来就不是用来点对点的啊...
    这些东西都是基于 P2P 网络的用来扩散用的...
    你要精确点对点的传送用这些有效率才....
    binux
        3
    binux  
       2016-05-01 20:29:32 +08:00   ❤️ 1
    1. 你通过 tracker 获取到 peer 了吗?
    2. peer 之间能连接吗?
    yeyeye
        4
    yeyeye  
    OP
       2016-05-01 20:47:45 +08:00
    用在线编辑 bt 种子的工具看到有 1peer 不理解何为 peer 之间的连接 我的网络是这样的 2 个电脑不在同一个局域网里 2 个所用的网络都是 100M 电信光纤 在同一个镇区

    2 个网络都是没有限制协议的
    yeyeye
        5
    yeyeye  
    OP
       2016-05-01 20:49:31 +08:00
    @smallfount 我的理解是 它可以直接分享文件 对吧 2 边使用同一软件 确保能连接同一个对应的服务器 这还不够么 效率我可以忍受低一点 但是分享没理由没速度啊 是完全没速度 根本就没下载到任何内容 1 个字节都没有收到
    smallfount
        6
    smallfount  
       2016-05-01 21:06:06 +08:00   ❤️ 1
    @yeyeye
    本质上是没错然而.....无论是 BT 还是 EM 都有一些适应 P2P 网络的共享的机制导致了你所需要的这种传输方式在他们上面的极度低效..
    BT 来说, 是 tracker 集中的方式, 所以你需要告诉 tracker 有你这个种,然后你另外一头的机器去这个 tracker 上去下种子并且收到种的信息, 然后从客户端去尝试连接 seed, 这个时候就会需要你的 Seed 端的上传端口对外可达, 否则连接就无法建立..而且就是算建立连接能否顺利传输也不能完全确定, 所以 BT 需要的才是大规模的使用人群.

    ED2K 就更复杂了, 中心服务器会提供 seed 信息, KAD 网络则是提供邻居信息, 所以从你的目标端找到你的源都不是一个 100%能确定的事情, 然后就算找到了, 确定能建立连接了还会有所谓的评分机制来判断是否开始下载等等.....

    所以你使用 P2P 网络来分享, 从连接建立开始就不是一个能确认的过程, 所以传输就更加不能确认了, 一切都是先基于等待匹配的过程, 所以你收不到一个字节很正常啊....因为连接是否建立都是个未知数...
    yeyeye
        7
    yeyeye  
    OP
       2016-05-01 21:35:59 +08:00
    @smallfount 2 个电脑都是没启用 upnp 的 只能 udp 穿透 或者服务器转发 难道和这个有关系么 因为是电信 所以限制算是比较少的 又是同一个镇区所以被阻挡的可能性就更小了

    如果要让外网直达 tcp 端口 这个就比较难了 如果真有这个能力 那可以选择的方式太多了

    主要我认为没有封杀协议的网络里 这种分享的方式是最方便的
    smallfount
        8
    smallfount  
       2016-05-01 21:51:07 +08:00   ❤️ 1
    @yeyeye UDP 穿透没太多用处...TCP 直达必须....否则就变成了所谓的 Low ID 状态, 只能主动去连接别人而无法由对方主动连接到, 2 个 Low ID 是无法直接连接到的...

    你现在的网络看来是要过 NAT 的而且似乎不受控....那么这种方式其实是极度不靠谱的....跟协议无关..完全是端口开发问题...
    你要方便绝对是 http 服务器最靠谱...
    Stupitch
        9
    Stupitch  
       2016-05-01 22:15:00 +08:00   ❤️ 1
    如果只是传文件直接上 BTSync 不就好了。

    本来 BT 就是全民分享的,估计只有较为热门的种子才能连接较快,毕竟 tracker 那边优先级会高很多很多。对了,你确定在种子里添加了 tracker 服务器没有?然后你那边 BT 下载时又有没有连接到 tracker 服务器?
    ilikekindle
        10
    ilikekindle  
       2016-05-01 22:39:22 +08:00   ❤️ 1
    楼主这种需求,估计用 bt sync 最方便了。
    clino
        11
    clino  
       2016-05-01 22:53:06 +08:00   ❤️ 1
    建议用 syncthing 试试
    yeyeye
        12
    yeyeye  
    OP
       2016-05-01 23:32:30 +08:00
    @smallfount 如果像你说的那样 那还真是这种方案靠谱了 就是分享端采用 http 协议 服务器这边记录 url 收集文件信息供其他用户查询 这不妥妥的么 用户自己要分享可以去中心化(都不需要第三方服务器支持了) 经过第三方也很方便 主要是协议还通用又常见 点赞


    @clino @Stupitch 想使用通用一点的方案 bt sync 我也知道 但是这种是以文件夹为单位的 我要分享的只是一个文件或者多个文件 如果只是 2 个用户互传文件 QQ 直接或离线传输是最好的 syncthing 没用过 我去看看介绍
    qqmishi
        13
    qqmishi  
       2016-05-01 23:40:34 +08:00 via Android   ❤️ 1
    我猜 lz 看到的是我的回复,,,

    其实这也是我以前看到的一个方法,并没有实际测试过,,,

    BT 这种方式,首先对方要知道你的存在,然后还要连的上你的网络,最后还要有速度,这些在只有你自己做种的情况下同时满足并不是很容易,一般需要 peer 多的情况才能有理想的速度。

    下载 youtube 视频我都是先在 vps 下好然后开个 http 服务器开始往回拖,从没想过用 BT 的形式,,,

    只能说这是一种理论上可行的方法,实际操作干扰因素有点多,不如 http 快捷和稳定。

    ps: 辛苦 lz 的实验,,,
    yeyeye
        14
    yeyeye  
    OP
       2016-05-01 23:59:58 +08:00
    @qqmishi 100M/4M 电信 上传也不慢的 老是下别人的种子和电驴 自己也想分享一下 没想到自己做种居然自己都连接不到 所以很无语 和想象中不太相同 不该这么失败的
    terence4444
        15
    terence4444  
       2016-05-02 00:03:14 +08:00 via iPhone   ❤️ 1
    ed2k 需要至少一方是 HighID ,否则无法直接通信
    qqmishi
        16
    qqmishi  
       2016-05-02 00:49:05 +08:00 via Android   ❤️ 1
    @yeyeye 我 20M 对等电信,挂 PT 上传常年不到 200k ,能跑到 1m/s 就谢天谢地了,,,不要太高估 BT 的速度和连通性
    yeyeye
        17
    yeyeye  
    OP
       2016-05-02 01:39:37 +08:00
    @terence4444 原来如此!谢谢!
    @qqmishi 主要是没速度,就是想试试效果,结果……根本就没成功用上,如果真的是这样的话,那还是真是映射下端口,直接用 http 好了,网盘也支持离线下载,
    Eleutherios
        18
    Eleutherios  
       2016-05-02 01:43:23 +08:00   ❤️ 1
    我猜 LZ 的两台电脑都没用公网 IP
    有的话手动添加 peer 即可
    如果都没,你不能用 BT 传
    yeyeye
        19
    yeyeye  
    OP
       2016-05-02 01:53:42 +08:00
    @Eleutherios 2 个都是 NAT 方式上网的 路由器是获取到了独立 IP 的 也是现在主流的上网方式 只是没想到需要外网要直接访问到内网的端口 那就是要开启 UPNP 方便映射 TCP 端口了

    就是各种 P2P 软件老是搞什么 UPNP 映射端口 还有避免某些人瞎搞 于是关掉了 UPNP …… 不过知道问题所在 下次想必就不会遇到麻烦了
    Kisesy
        20
    Kisesy  
       2016-05-02 02:09:24 +08:00
    以前我还弄过自己做种子,然后把种子给迅雷让它离线下载,结果。。。根本不行 (笑
    yeyeye
        21
    yeyeye  
    OP
       2016-05-02 02:59:20 +08:00
    @Kisesy 或许遭遇和我相同的问题呢 我印象中以前曾经做过一次种子 是可以分享出去的 可能那时候没关闭 UPNP 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4103 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:20 · PVG 13:20 · LAX 21:20 · JFK 00:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.