在 Android 和 Linux 之间传输文件 — 无 MTP 麻烦

在 Android 和 Linux 之间传输文件 — 无 MTP 麻烦

最后更新 :

Android ↔ Linux 文件传输 — 跳过 MTP 难题

如果您曾经尝试通过 USB 将 Android 手机连接到 Linux 桌面,您就会知道那种挫败感。Linux 上的 MTP 由 libmtpgvfs-mtp 处理——这两个库是出了名的不稳定。传输中途断开、Nautilus 冻结、文件出现损坏或根本没有检测到手机。

AnExplorer 完全回避 MTP。两种方法实际上可以在任何 Linux 发行版上可靠地工作:

  1. 设备连接 — 您的手机运行 HTTP 服务器,您在 Firefox 中打开它。Linux 上的零设置。
  2. SFTP 客户端 — AnExplorer 连接到您的 Linux 计算机的 SSH。大多数 Linux 机器都开箱即用地运行 SSH。

两者都通过 Wi-Fi 工作。没有电缆,没有驱动程序,没有mtp-detect调试。

方法 1:设备连接(电话 → Linux,零设置)

这是“有效”的方法。您的手机成为网络服务器;Linux的浏览器是客户端。

在您的手机上:

  1. 打开AnExplorer → 点击 ☰ → 设备连接开始 2.记下地址:http://192.168.1.42:8080

在 Linux 上:

  1. 打开 Firefox(或 Chrome/Chromium/Brave — 任何带有浏览器的浏览器)
  2. 输入地址 → 输入
  3. 手机的文件系统出现——浏览、下载、上传、重命名、删除

就是这样。没有apt install任何东西。没有扁平包装。没有快照。没有购电协议。只需一个您已有的浏览器即可。

你可以做什么:

  • 将文件从手机下载到 Linux(单击任意文件)
  • 将文件从 Linux 上传到手机(上传按钮 → 文件选择器)
  • 创建文件夹、重命名文件、删除 — 从浏览器进行完整的文件管理
  • 一次传输多个文件

速度: 5 GHz Wi-Fi 上为 20–50 MB/s。在实践中比 MTP 更快,并且更加可靠。

适用于任何发行版: Ubuntu、Fedora、Arch、Debian、openSUSE、Mint、Pop!_OS、Manjaro — 如果有 Web 浏览器,则 Device Connect 可以使用。没有特定于发行版的软件包,没有依赖地狱,无需添加 PPA。这就是为什么对于只想移动文件而不考虑基础设施的 Linux 用户来说,这是推荐的第一种方法。

方法 2:SFTP 客户端(Linux → 电话,访问 Linux 文件)

Linux 机器几乎总是运行 OpenSSH。AnExplorer 的 SFTP 客户端直接连接到它 — 让您可以从手机完全访问 Linux 文件系统。

在 Linux 上(验证 SSH 是否正在运行):

systemctl status sshd

如果未运行:sudo systemctl enable --now sshd

记下您的 Linux 计算机的 IP:ip addr showhostname -I

在您的手机上:

  1. 打开AnExplorer → ☰ → 网络SFTP
  2. 点击******添加新连接
  3. 主机:您的Linux IP(例如192.168.1.100),端口:22
  4. 用户名:您的 Linux 登录名,密码:您的 Linux 密码
  5. 点击 连接

您的整个 Linux 文件系统出现在 AnExplorer 中。浏览 /home/username/ ,将文件复制到您的手机,或从手机上传到 Linux。

为什么 Linux 用户更喜欢这个:

  • SSH 已在运行 — 无需安装或配置其他软件
  • 默认加密(与 FTP 或 HTTP 不同)——所有数据都通过 SSH 隧道传输
  • 通过 VPN(不仅仅是本地 Wi-Fi)远程工作 — 从任何地方访问您的家庭 Linux 盒子
  • 使用 scprsync 的任何人都熟悉 — 相同的凭据、相同的端口
  • 完全文件系统访问 - 浏览 /home/media/mnt ,甚至 /etc (如果您的用户有权限)
  • 可在 AnExplorer 中加入书签 — 保存连接以便下次一键访问

实际用途:

  • 出门前将文件从 Linux 工作站拉到手机上
  • 通过沙发上的手机访问家庭服务器的媒体库
  • 将手机中的照片直接上传到 Linux 机器的照片存档中
  • 在会议期间通过手机浏览开发计算机上的项目文件

方法 3:Samba/SMB(共享文件夹,始终可用)

如果您通过 Samba 在 Linux 计算机上共享文件夹,AnExplorer 将作为 SMB 客户端连接:

在 Linux 上(一次性 Samba 设置):

sudo apt install samba
sudo nano /etc/samba/smb.conf

添加共享,设置 Samba 密码( sudo smbpasswd -a username ),重新启动:sudo systemctl restart smbd

在您的手机上:

  1. AnExplorer → ☰ → 网络 → SMB → 点击 + 2.输入Linux IP、共享名、用户名、Samba密码
  2. 连接 — 出现您的共享文件夹

添加书签后,只要两台设备位于同一网络上,就可以从 AnExplorer 的侧边栏一键访问。

当 Samba 对 Device Connect 有意义时:

  • 您想要一个始终可用的持久共享文件夹(不仅仅是当您手动启动服务器时)
  • 多个设备需要访问同一个Linux文件夹(手机、平板电脑、电视)
  • 您已经在网络上运行适用于 Windows 计算机的 Samba
  • 您想要将文件放入 Linux 上的文件夹中,然后从手机中提取它们,无需任何手动步骤

为什么不通过 USB 进行 MTP?

Linux 上的 MTP 十多年来一直存在问题。常见问题:

  • 未检测到手机gvfs-mtp 无法枚举设备
  • Nautilus/Dolphin 冻结 — 浏览手机存储时文件管理器挂起
  • 传输损坏 — 文件到达时不完整或损坏,尤其是大视频
  • 无并发访问 — 一次只有一个应用程序可以访问 MTP
  • 权限问题 — 某些发行版需要 udev 规则

这些不是 AnExplorer 的错 — 它们是 Linux MTP 堆栈问题。Device Connect 和 SFTP 使用 Linux 完美处理的标准网络协议绕过整个 MTP 层。

对于对技术感兴趣的人:MTP 是 Microsoft 在 2000 年代初为便携式媒体播放器设计的。它从来就不是用于通用文件传输的。Linux 不情愿地采用了它,因为 Android 选择它作为默认的 USB 协议(取代 USB 海量存储,后者在卸载方面存在问题)。结果是一个没人喜欢的协议,由没人维护的库实现,在一个具有更好的本地文件共享协议(SSH、SMB、HTTP)的操作系统上。AnExplorer 让您可以使用那些更好的协议。

发行版特定注释

Ubuntu/Debian: 桌面版本上通常不默认安装 SSH。使用 sudo apt install openssh-server 安装。在 Ubuntu Server 上,它是预安装的。

Fedora/RHEL: SSH 已安装,但可能未启用。从 sudo systemctl enable --now sshd 开始。防火墙可能会阻止端口 22 - 使用 sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload 打开它。

Arch Linux: 使用 sudo pacman -S openssh 安装并使用 sudo systemctl enable --now sshd 启用。

Linux Mint/Pop!_OS: 与 Ubuntu 相同 — sudo apt install openssh-server(如果不存在)。

对于 Samba,所有主要发行版都将其打包:apt install samba (Debian/Ubuntu)、dnf install samba (Fedora)、pacman -S samba (Arch)。

比较:Linux 传输方法

方法速度Linux 设置可靠性最适合
设备连接20–50 MB/秒无(浏览器)优秀快速传输,任何发行版
SFTP(至 Linux)20–40 MB/秒SSH 运行(通常是默认)优秀从手机访问 Linux 文件
桑巴/SMB30–60 MB/秒安装+配置Samba优秀始终可用的共享文件夹
KDE 连接10–30 MB/秒安装 KDE 连接通知+小文件
本地发送20–50 MB/秒安装本地发送跨平台、开源
MTP (USB)10–30 MB/秒无(内置)Linux 上很差最后的手段
亚行推/拉30–50 MB/秒安装亚行仅限开发人员

相关指南

常见问题

版权 © DWorkS 2011 – 2026 版权所有