Android ↔ Linux 文件传输 — 跳过 MTP 难题
如果您曾经尝试通过 USB 将 Android 手机连接到 Linux 桌面,您就会知道那种挫败感。Linux 上的 MTP 由 libmtp 和 gvfs-mtp 处理——这两个库是出了名的不稳定。传输中途断开、Nautilus 冻结、文件出现损坏或根本没有检测到手机。
AnExplorer 完全回避 MTP。两种方法实际上可以在任何 Linux 发行版上可靠地工作:
- 设备连接 — 您的手机运行 HTTP 服务器,您在 Firefox 中打开它。Linux 上的零设置。
- SFTP 客户端 — AnExplorer 连接到您的 Linux 计算机的 SSH。大多数 Linux 机器都开箱即用地运行 SSH。
两者都通过 Wi-Fi 工作。没有电缆,没有驱动程序,没有mtp-detect调试。
方法 1:设备连接(电话 → Linux,零设置)
这是“有效”的方法。您的手机成为网络服务器;Linux的浏览器是客户端。
在您的手机上:
- 打开AnExplorer → 点击 ☰ → 设备连接 → 开始
2.记下地址:
http://192.168.1.42:8080
在 Linux 上:
- 打开 Firefox(或 Chrome/Chromium/Brave — 任何带有浏览器的浏览器)
- 输入地址 → 输入
- 手机的文件系统出现——浏览、下载、上传、重命名、删除
就是这样。没有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 show 或 hostname -I
在您的手机上:
- 打开AnExplorer → ☰ → 网络 → SFTP
- 点击******添加新连接
- 主机:您的Linux IP(例如
192.168.1.100),端口:22 - 用户名:您的 Linux 登录名,密码:您的 Linux 密码
- 点击 连接
您的整个 Linux 文件系统出现在 AnExplorer 中。浏览 /home/username/ ,将文件复制到您的手机,或从手机上传到 Linux。
为什么 Linux 用户更喜欢这个:
- SSH 已在运行 — 无需安装或配置其他软件
- 默认加密(与 FTP 或 HTTP 不同)——所有数据都通过 SSH 隧道传输
- 通过 VPN(不仅仅是本地 Wi-Fi)远程工作 — 从任何地方访问您的家庭 Linux 盒子
- 使用
scp或rsync的任何人都熟悉 — 相同的凭据、相同的端口 - 完全文件系统访问 - 浏览
/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
在您的手机上:
- AnExplorer → ☰ → 网络 → SMB → 点击 + 2.输入Linux IP、共享名、用户名、Samba密码
- 连接 — 出现您的共享文件夹
添加书签后,只要两台设备位于同一网络上,就可以从 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 文件 |
| 桑巴/SMB | 30–60 MB/秒 | 安装+配置Samba | 优秀 | 始终可用的共享文件夹 |
| KDE 连接 | 10–30 MB/秒 | 安装 KDE 连接 | 好 | 通知+小文件 |
| 本地发送 | 20–50 MB/秒 | 安装本地发送 | 好 | 跨平台、开源 |
| MTP (USB) | 10–30 MB/秒 | 无(内置) | Linux 上很差 | 最后的手段 |
| 亚行推/拉 | 30–50 MB/秒 | 安装亚行 | 好 | 仅限开发人员 |
相关指南
- 将 Android 传输到 PC — Windows 特定指南
- 将 Mac 传输到 Android — macOS 特定指南
- Android 上的 SFTP — 完整的 SFTP 客户端设置
- Android 上的 SMB — 完整的 SMB 客户端设置
