局域网文件传输工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
machengim
V2EX    分享创造

局域网文件传输工具

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

    各位好,我做了一个局域网文件 /文件夹传输工具,工作方式参考了 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     Solana     3408 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 04:16 PVG 12:16 LAX 20:16 JFK 23:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86