V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
machengim
V2EX  ›  分享创造

局域网文件传输工具

  •  
  •   machengim · 2020-12-04 09:47:30 +08:00 · 6879 次点击
    这是一个创建于 1460 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位好,我做了一个局域网文件 /文件夹传输工具,工作方式参考了 send-anywhere,发送端生成一个接收码,接收端输入接收码接收文件,不过只用于局域网,所以也不需要互联网支持。语言是 rust 。已经做了主流操作系统的 release 包。新手一枚,不知道这东西有没有用(除了我自己),也不知道做的怎么样,请大神批评指正。

    https://github.com/machengim/isend

    25 条回复    2020-12-08 09:34:54 +08:00
    cctv1005s927
        1
    cctv1005s927  
       2020-12-04 10:20:15 +08:00
    速度呢?有相关的指标吗
    b1u2g3
        2
    b1u2g3  
       2020-12-04 10:44:47 +08:00
    开的是什么端口?
    machengim
        3
    machengim  
    OP
       2020-12-04 11:42:11 +08:00   ❤️ 1
    @cctv1005s927 感谢指教,刚才测试了一下,发现了一个问题:同样文件发送端和接收端互换的话速度差距很大,反复测试多次,很稳定。很奇怪。

    Mac -> Linux: 12MB/s
    Linux -> Mac: 3MB/s
    Linux -> Windows: 4MB/s
    Windows -> Linux: 12MB/s
    f6x
        4
    f6x  
       2020-12-04 11:43:18 +08:00
    局域网文件传输工具 ~= 病毒传播工具
    machengim
        5
    machengim  
    OP
       2020-12-04 11:45:56 +08:00
    @b1u2g3 先打开一个 UDP 端口用来监听和发送广播,建立 TCP 连接后关闭;另一个 TCP 连接传送文件。端口号目前是系统分配的。
    JustSong
        6
    JustSong  
       2020-12-04 12:19:28 +08:00 via Android
    我个人感觉写成 HTTP 服务的形式可能更好用一些,Go 版本,供参考: https://github.com/songquanpeng/lan-share-go
    yingfengi
        7
    yingfengi  
       2020-12-04 12:38:34 +08:00 via Android
    呃。。。smb 之类的不香吗
    loli
        8
    loli  
       2020-12-04 12:43:56 +08:00 via Android
    @yingfengi
    我也奇了怪,好像从没人推荐过 smb.
    这个倒还好,起码是多平台支持.
    好多要在 windows 上实现这功能的人非要推荐什么 ftp,webdav 。什么小巧,一行代码。自带的不香吗?权限控制,操作便捷,目录管理。速度真没想得那么慢。
    machengim
        9
    machengim  
    OP
       2020-12-04 13:31:00 +08:00
    @loli 我也试过 smb,不过感觉在 linux 下配置有点费劲,每次都要查攻略,后来反而是 dropbox 用的多。这个小工具我现在就是用做 dropbox 的补充的,体积大或者不必保存到 dropbox 里的文件。
    AoTmmy
        10
    AoTmmy  
       2020-12-04 13:33:43 +08:00 via Android
    推荐 chfs,非常方便
    niubee1
        11
    niubee1  
       2020-12-04 13:36:46 +08:00
    python -m http.server
    machengim
        12
    machengim  
    OP
       2020-12-04 13:39:54 +08:00
    @AoTmmy 给个链接看看?
    machengim
        13
    machengim  
    OP
       2020-12-04 13:42:52 +08:00
    @niubee1 也用过,不过感觉命令行更快一点。还有就是也在考虑一些后续功能比如传输完成自动关机之类的。
    imn1
        14
    imn1  
       2020-12-04 14:08:48 +08:00
    这个速度很低啊,我自己用 ftp 可以上 100MB/s,某些情况还要限速呢 —— 某些情况达到 80+MB/s 时,win 这边写会卡,所以 win 这边要限 50MB/s 进入
    我也发现系统之间速度不同,linux 和 win 之间,就算不限速,ftp 传同一个大文件双向速度不同,搞不清原因

    题外
    ftp 不方便的地方是权限,不能传随意文件,也只能传到预设的 ftp 目录,还需要一些挪动操作
    当然,权限是合理的管理规则,我只是纯个人设备间传文件,觉得如果有无需权限管理的工具更方便些
    vigack
        15
    vigack  
       2020-12-04 14:09:58 +08:00
    速度一般啊,为啥不用 bit sync
    machengim
        16
    machengim  
    OP
       2020-12-04 14:41:32 +08:00
    @imn1 速度可能跟路由器有关?我刚试了往虚拟机里传文件,速度也在 100MB/s 左右。主机是 Linux,客机是 windows 。但是两个方向的速度差异我确实不理解。
    AoTmmy
        17
    AoTmmy  
       2020-12-04 15:19:19 +08:00 via Android
    machengim
        18
    machengim  
    OP
       2020-12-04 16:51:38 +08:00
    @AoTmmy 好的,谢谢
    ZiLong
        19
    ZiLong  
       2020-12-04 20:25:23 +08:00
    没有一步到位的,我觉得可以慢慢优化,对于速度,可以用 wireshark 抓包看看
    machengim
        20
    machengim  
    OP
       2020-12-04 20:40:01 +08:00
    @ZiLong 我发现速度慢不是程序造成的。我用 npm 和 python 的 http server 还有 iperf3 都做了速度测试,得到了一样的结果:从 mac 连接 linux 是 12MB~15MB/s,从 linux 连 mac 是 2 ~ 3MB/s 。非常诡异。
    kingfalse
        21
    kingfalse  
       2020-12-04 23:28:25 +08:00 via Android
    Windows 的话,everything,就可以起个 HTTP 服务给别人下载了
    bequt
        22
    bequt  
       2020-12-05 08:52:08 +08:00
    @machengim 站内 webd 也不错
    fox0001
        23
    fox0001  
       2020-12-05 14:09:48 +08:00 via Android
    Linux 的话,我比较懒,一般用 sftp,或者直接 scp
    shunconf
        24
    shunconf  
       2020-12-08 08:51:21 +08:00
    windos 没图形化是没有用灵魂的
    machengim
        25
    machengim  
    OP
       2020-12-08 09:34:54 +08:00
    @shunconf 也考虑过,不过目前 rust 没有什么成熟的 gui 框架。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4976 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:57 · PVG 11:57 · LAX 19:57 · JFK 22:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.