V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kaiger
V2EX  ›  Linux

Linux (ubuntu)和安卓手机之间的文本/文件传递有什么比较好的方案

  •  
  •   kaiger · 2022-06-16 10:00:22 +08:00 · 6875 次点击
    这是一个创建于 870 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司 wifi 和电脑连接的网络被分成了两个子网,一个是 192.168.70.xx 一个是 192.168.60.xx

    ps:

    1, 两者不再同一个局域网

    2, 排除微信文件传输助手,延迟太高了

    92 条回复    2022-09-05 21:57:46 +08:00
    dcsuibian
        1
    dcsuibian  
       2022-06-16 10:03:57 +08:00
    分成了两个局域网,那相互之间 ping 得通吗?如果连得通的话,电脑开个 samba 服务器,然后手机用文件管理器打开。不过感觉也不是很方便,只是直连应该最快了吧。
    kaiger
        2
    kaiger  
    OP
       2022-06-16 10:06:53 +08:00
    @dcsuibian

    ping 不通的,直连有点麻烦,fdisk 扫不到手机设备,没法挂载,就算可以挂载,每次都要手动挂载也很烦。用 adb push/pull 效率又太低
    libook
        3
    libook  
       2022-06-16 10:16:18 +08:00   ❤️ 2
    网络没法直连的话,基本就只能用公有云中转一下了,但这样下来个人感觉未必比 adb 方便,adb 基本都是一条指令的事情,有复杂需求也可以自己封装一些脚本来自动化,甚至可以找一些 adb 文件管理的 GUI 工具。
    0o0O0o0O0o
        4
    0o0O0o0O0o  
       2022-06-16 10:16:29 +08:00 via iPhone
    给电脑加个十几块的 USB 无线网卡
    kaiger
        5
    kaiger  
    OP
       2022-06-16 10:17:46 +08:00
    @0o0O0o0O0o

    公司电脑,不能乱搞
    kaiger
        6
    kaiger  
    OP
       2022-06-16 10:20:55 +08:00
    @libook

    主要不想用有线连接,想省略插拔步骤
    libook
        7
    libook  
       2022-06-16 10:25:29 +08:00
    @kaiger #6 那就只能折腾公有云了,比如云盘同步之类的,那个也是有延迟的,而且未必比插线方便。
    minami
        8
    minami  
       2022-06-16 10:26:53 +08:00   ❤️ 1
    方便科学上网的话,pushbullet 挺好用的。不方便的话建议手机就不要连 wifi 了,直接共享电脑有线网络就行了( Gnirehtet )
    rickiey
        9
    rickiey  
       2022-06-16 10:29:49 +08:00
    钉钉,keybase,
    dcsuibian
        10
    dcsuibian  
       2022-06-16 10:29:55 +08:00
    @kaiger 直连不行就只能中转了, 那估计都比微信传好不了多少。
    我自己是安卓手机,和 PC 、Mac 传文件,微信、坚果云、手机直连三种方式混用,也没有找到终极解决方案。
    rickiey
        11
    rickiey  
       2022-06-16 10:30:29 +08:00
    这两个都有手机版和 linux 版
    lakehylia
        12
    lakehylia  
       2022-06-16 10:30:47 +08:00
    Android Studio 内置一个手机文件管理器,不过还是要插 usb 。
    1235467
        13
    1235467  
       2022-06-16 10:33:49 +08:00
    不太在意延迟的话可以试试 syncthing
    kaiger
        14
    kaiger  
    OP
       2022-06-16 10:33:53 +08:00
    @rickiey

    只需要文件传输功能,不想因为这个下载 app
    kaiger
        15
    kaiger  
    OP
       2022-06-16 10:35:02 +08:00
    @1235467

    syncthing 我有了解,延迟还是很在意的
    anytk
        16
    anytk  
       2022-06-16 10:35:23 +08:00
    如果手机可以 ping 的到 电脑的话,直接用 KDE Connect 手动添加就可以。
    kaiger
        17
    kaiger  
    OP
       2022-06-16 10:37:38 +08:00
    @anytk

    ping 不通
    kaiger
        18
    kaiger  
    OP
       2022-06-16 10:40:15 +08:00
    @anytk

    抱歉抱歉,看反了,电脑 ping 不通手机,刚刚试了一下,手机可以 ping 通电脑,请问如何操作,用的 Ubuntu ,桌面用的 i3
    FengMubai
        19
    FengMubai  
       2022-06-16 10:45:29 +08:00   ❤️ 2
    kde connect
    DefoliationM
        20
    DefoliationM  
       2022-06-16 10:56:57 +08:00
    zerotier + kde connect?
    sigoden
        21
    sigoden  
       2022-06-16 11:00:25 +08:00   ❤️ 2
    电脑运行文件服务 https://github.com/sigoden/duf ,手机直接通过浏览器上传下载文件。
    yanyuechuixue
        22
    yanyuechuixue  
       2022-06-16 11:08:04 +08:00
    插个 USB 线,选择模式是 usb 网络共享,然后直接传就行了。
    kaiger
        23
    kaiger  
    OP
       2022-06-16 11:27:07 +08:00
    @FengMubai

    kde connect 很 nice, 但是我这种情景无法使用,我看了一下文档,必须在同一局域网下
    anytk
        24
    anytk  
       2022-06-16 11:38:43 +08:00
    @kaiger Ubuntu 安装 kdeconnect ,然后手机也安装 kdeconnect app ,配对选择通过 IP 添加设备,然后想办法把电脑 IP 静态化就行了
    anytk
        25
    anytk  
       2022-06-16 11:39:37 +08:00
    @kaiger 电脑的 kdeconnect 就是服务端,只要手机可以访问电脑即可
    kaiger
        26
    kaiger  
    OP
       2022-06-16 11:46:00 +08:00
    @anytk

    好像不太行,我按照你说的做了,但是可用设备还是空的
    DianQK
        27
    DianQK  
       2022-06-16 11:54:20 +08:00 via Android
    wireguard 加上 kde connect ,这就在一个子网下了
    Aalen
        28
    Aalen  
       2022-06-16 12:01:09 +08:00
    darkhttpd
    wdssmq
        29
    wdssmq  
       2022-06-16 12:02:04 +08:00   ❤️ 3
    CopyPaste.me - Frictionless sharing between devices
    https://copypaste.me/
    ltkun
        30
    ltkun  
       2022-06-16 12:05:50 +08:00 via Android
    互联的话 电脑开个 smb 共享或者 ftp 哪怕 ssh 手机安装个啥随意了 我习惯 cx 文件管理器
    kaiger
        31
    kaiger  
    OP
       2022-06-16 12:14:32 +08:00
    @DianQK
    哥, 会不会有点麻烦
    psklf
        32
    psklf  
       2022-06-16 12:21:21 +08:00
    搞那么复杂,还不如 adb pull push 一把梭
    darkengine
        33
    darkengine  
       2022-06-16 12:31:58 +08:00
    安卓上有些文件管理器可以开局域网内共享服务的,在电脑上可以用浏览器打开,管理手机上的文件。
    iBugOne
        34
    iBugOne  
       2022-06-16 12:50:08 +08:00 via Android
    我的方案是安卓手机上用 Root Explorer (支持 SMB 协议),服务器上装个 samba 开共享,然后在手机上操作传输数据

    其中安卓上可以换任何你喜欢的文件管理器,只要支持 SMB 就行,不要纠结在服务器上操作手机上的文件
    oldshensheep
        35
    oldshensheep  
       2022-06-16 12:59:49 +08:00
    kdeconnect 可以的。
    安装个 zerotier 就行了,安装之后就在一个局域网了。
    whenov
        36
    whenov  
       2022-06-16 13:10:05 +08:00
    ping 不通不一定不能连接
    TOUJOURSER
        37
    TOUJOURSER  
       2022-06-16 13:10:15 +08:00
    nps
    Puteulanus
        38
    Puteulanus  
       2022-06-16 13:26:14 +08:00
    leeyuzhe
        39
    leeyuzhe  
       2022-06-16 13:28:58 +08:00
    clipt 我觉得很好用,就是依赖谷歌硬盘
    RuralHunter
        40
    RuralHunter  
       2022-06-16 13:33:16 +08:00
    微信啊
    macy
        41
    macy  
       2022-06-16 13:45:15 +08:00
    如果能 ping 通,可以试试这个 https://github.com/williamnie/netSend ,ubuntu 上安装个软件,手机浏览器扫码下载,如果内网不通,就没办法了,
    anytk
        42
    anytk  
       2022-06-16 14:15:04 +08:00
    @kaiger 不行就没办法了,只能通过中转了。我测试过 wireguard + kdeconnect 是 OK 的。
    TomVista
        43
    TomVista  
       2022-06-16 14:29:33 +08:00
    手机开热点 啊,然后用 局域网传输服务就行,

    我就是直接开个 node 静态文件服务器, 就是速度慢一点,勉强 20m/s
    SenLief
        44
    SenLief  
       2022-06-16 14:31:09 +08:00
    你们不适用 oa 的软件嘛?一般都有文件管理什么的吧。
    TomVista
        45
    TomVista  
       2022-06-16 14:31:10 +08:00
    @TomVista 啊 没看到,电脑没 Wi-Fi
    fzle8
        46
    fzle8  
       2022-06-16 14:42:02 +08:00
    Telegram 无处不在。

    Android 可以建 ftp 服务器啊
    kaiger
        47
    kaiger  
    OP
       2022-06-16 14:49:36 +08:00
    @fzle8

    Telegram 见不得人
    ByteCat
        48
    ByteCat  
       2022-06-16 15:07:59 +08:00
    什么意思,kde connect 可以实现么
    kaiger
        49
    kaiger  
    OP
       2022-06-16 15:23:24 +08:00
    @ByteCat

    试过了,kde connect 设备列表是空的,可能是网络不互通
    imxiaoi
        50
    imxiaoi  
       2022-06-16 15:32:18 +08:00
    send anywhere?
    kaiger
        51
    kaiger  
    OP
       2022-06-16 15:44:31 +08:00
    @imxiaoi

    有广告,还是算了。
    banmuyutian
        52
    banmuyutian  
       2022-06-16 15:52:46 +08:00   ❤️ 1
    纯文本:note.ms (公网)
    文本+文件:snapdrop.net (同个局域网)
    m1nm13
        53
    m1nm13  
       2022-06-16 16:52:32 +08:00
    cloudfstrife
        54
    cloudfstrife  
       2022-06-16 17:14:50 +08:00
    @kaiger #49 KDE Connect 可以手动添加设备的。手动添加一下就可以了
    encro
        55
    encro  
       2022-06-16 17:23:57 +08:00
    kaiger
        56
    kaiger  
    OP
       2022-06-16 17:35:55 +08:00
    @cloudfstrife

    试过了,手动添加没反映
    DianQK
        57
    DianQK  
       2022-06-16 17:35:57 +08:00 via Android
    @kaiger 还好吧,wireguard 用来创建虚拟的子网,这样就能 ping 通了,其他楼提到的 zerotier 也是一个方式
    pendulum
        58
    pendulum  
       2022-06-16 18:07:53 +08:00
    网络通的话直接起一个 FTP Server 不就好了吗,电脑起或者手机起
    cloudfstrife
        59
    cloudfstrife  
       2022-06-16 18:19:18 +08:00
    @kaiger 网络不通的话,这个是的无解,要么云盘,要么文件传输助手
    Zizpop
        60
    Zizpop  
       2022-06-16 19:15:45 +08:00
    zenxds
        61
    zenxds  
       2022-06-16 19:26:21 +08:00
    lllyglh
        62
    lllyglh  
       2022-06-16 19:48:20 +08:00
    只是传文件的话,其实不用完整的局域网环境,能简单通讯就行了,电脑随便开个什么文件服务 。 adb reverse tcp:3001 tcp:3000 把安卓的端口转发到电脑,然后安卓上访问 127.0.0.1:3001 即可。
    weiiai
        63
    weiiai  
       2022-06-16 23:38:16 +08:00
    Ubuntu ( 192.168.60.1 )上应该有 python2 吧,进入指定的路径下执行命令。
    python -m SimpleHTTPServer 65530
    手机浏览器直接访问 http://192.168.60.1:65530 下载文件
    realpg
        64
    realpg  
       2022-06-17 04:12:18 +08:00
    楼主的环境翻译成人话:
    两个不互通的网络设备如何传输内容

    正确答案:微信文件传输助手

    楼主不想用微信传输助手,因为延迟高,我是真没看明白微信文件传输助手有啥延迟,基本就是个传输时间+微信 pc 版轮询新消息时间,在服务器上的中转啊开销不超过 2s 。

    不用微信传输助手,那就装个 QQ 吧,发送到自己手机
    realpg
        65
    realpg  
       2022-06-17 04:13:25 +08:00
    @minami #8
    @1235467 #13
    楼主连微信的大约扣除传输时间后约 2s 延迟都嫌高,还过墙,还用 P2P
    gnawll
        66
    gnawll  
       2022-06-17 06:52:13 +08:00 via iPhone
    LANDrop
    DianQK
        67
    DianQK  
       2022-06-17 07:33:28 +08:00 via Android
    btw op 或许可以试试借助 Wifi Direct 实现,Android 和 Linux 开启并连接可能没那么麻烦(没调查过)
    StarStrategy
        68
    StarStrategy  
       2022-06-17 07:36:02 +08:00 via Android   ❤️ 1
    搞的也太复杂了吧,android 端装一个 airdroid ,然后全平台都可以直接访问 web 传文件了
    anjiannian
        69
    anjiannian  
       2022-06-17 09:07:44 +08:00
    p2p 文件传输
    abc8678
        70
    abc8678  
       2022-06-17 09:08:06 +08:00 via Android
    我以前也想问这个问题 https://www.v2ex.com/t/811853 Linux 给手机可以用二维码,反过来……没想好
    kaiger
        71
    kaiger  
    OP
       2022-06-17 09:20:42 +08:00
    @StarStrategy

    网络不通的
    p1gd0g
        72
    p1gd0g  
       2022-06-17 09:35:00 +08:00
    昨天 python -m http.server 的时候发现同样的问题,也没找到好办法
    虽说笔记本可以开热点吧,切来切去也很麻烦啊

    理论上可以通过开发机中转,有空再折腾吧
    Latin
        73
    Latin  
       2022-06-17 09:46:55 +08:00
    kaiger
        74
    kaiger  
    OP
       2022-06-17 12:04:32 +08:00
    兄弟们,感谢大家的帮助,我已经找到解决办法了

    目前的环境是电脑 ping 不通手机,但是手机可以 ping 通电脑

    直接在电脑端搭建 ftp 服务器,手机端访问就行,可以正常上传下载文件
    kaiger
        75
    kaiger  
    OP
       2022-06-17 12:06:33 +08:00
    另外,为什么手机可以 ping 通电脑,电脑却不可以 ping 手机呢?

    有没有大佬出来解答疑惑
    j0ck1e
        76
    j0ck1e  
       2022-06-17 13:55:32 +08:00
    j0ck1e
        77
    j0ck1e  
       2022-06-17 13:56:16 +08:00
    tomychen
        78
    tomychen  
       2022-06-17 14:02:54 +08:00
    如果两端网不通,那就只能借第三方了
    dropbox
    https://file.io
    https://transfer.sh

    如果网通 python -m SimpleHTTServer

    再不行,就在公司弄个文件服务器吧,两端都通网那种
    zjsxwc
        79
    zjsxwc  
       2022-06-17 14:37:04 +08:00 via Android
    安卓有个软件叫做 airdroid
    zjsxwc
        80
    zjsxwc  
       2022-06-17 14:45:21 +08:00 via Android   ❤️ 1
    @zjsxwc
    不过最简单的办法还是,
    搞个二手路由器,
    把原先电脑的网线插到路由器里,
    然后路由器把无线网络共享出来给手机连接,
    这样手机与电脑都在一个局域网里面了。
    balllad
        81
    balllad  
       2022-06-17 17:09:23 +08:00
    文件:Send Anywhere
    文本:快贴
    全平台支持
    fengchen0vr
        82
    fengchen0vr  
       2022-06-17 17:17:45 +08:00 via iPhone
    电脑是接的一级路由器,手机是二级路由器,电脑到手机没有路由
    kaiger
        83
    kaiger  
    OP
       2022-06-17 18:02:53 +08:00
    @fengchen0vr

    即使 ping 不通手机,手机可以连接电脑的 ftp 服务,可以相互传递数据,电脑到手机没有路由,数据也能传递过去吗
    offswitch
        84
    offswitch  
       2022-06-17 18:03:09 +08:00
    小米文件管理器,安卓开 ftp ,然后再 ubuntu 上访问
    offswitch
        85
    offswitch  
       2022-06-17 18:03:35 +08:00
    没看到不在同一个局域网,那这个没办法
    SoloKing
        86
    SoloKing  
       2022-06-17 18:12:55 +08:00
    Android 手机作为 MTP 设备在 Ubuntu 上应该是可以自动挂载的,不知道你用什么版本系统或者手机不支持
    kaiger
        87
    kaiger  
    OP
       2022-06-17 18:19:35 +08:00
    @SoloKing

    22.04

    没办法识别,更别提自动挂载了
    fengchen0vr
        88
    fengchen0vr  
       2022-06-18 19:05:32 +08:00
    @kaiger 手机到电脑是有路由的,这就可以了
    Keller0
        89
    Keller0  
       2022-06-19 01:06:39 +08:00
    @kaiger 之前也遇到类似问题,写了个简单的文件服务,比 FTP 方便,0 配置。
    https://github.com/keller0/simpleshare

    网络应该就是 @fengchen0vr 说的情况,FTP 也是 C/S 架构所以你手机可以访问电脑就够了,电脑不是主动给手机发数据的。
    Orciorc
        90
    Orciorc  
       2022-06-19 11:41:50 +08:00
    如果只是传输文本的话,建议用二维码生成,用手机扫描。如是需要传输文件,除非像 Airdrop 那样的软硬件协同,否则就只能依赖网络了。蓝牙之类的带宽又不足。
    kaiger
        91
    kaiger  
    OP
       2022-06-20 11:53:02 +08:00
    @Orciorc

    有什么推荐的工具吗,生成二维码
    k5NkA6Vcu8Vj18K1
        92
    k5NkA6Vcu8Vj18K1  
       2022-09-05 21:57:46 +08:00
    easychuan.cn

    在线 p2p 传输 文字 文件 视频流 都可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:12 · PVG 04:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.