手机和电脑必须在同一个局域网才能连上
什么是"同一局域网"
局域网(Local Area Network, LAN)就是在同一物理空间内、通过同一个路由器或交换机互联的设备网络。对 Filetransfer 来说,下面两种情况算同一局域网:
情况一:同一个 WiFi 路由器
手机和电脑都连到同一个 WiFi 路由器(哪怕一个连 2.4 GHz,一个连 5 GHz,只要是同一个路由器发的信号就算)。
情况二:手机开热点给电脑
手机打开个人热点,电脑连上这个热点。此时手机同时是局域网的网关和 FTP 服务器,电脑和手机就在同一个热点网络里。
什么算"不在同一局域网"
以下情况两台设备无法互相直连:
- 手机连的是家里的 WiFi,电脑连的是隔壁家的 WiFi
- 手机在公司 WiFi,电脑在公司另一栋楼的另一个路由器下
- 手机用移动数据(4G/5G),电脑用家里的 WiFi
- 手机和电脑都在各自的移动数据下
这些场景下,两台设备之间隔着 NAT(网络地址转换)和多层路由器,FTP 协议没有穿透 NAT 的能力,连不上是正常的。
怎么确认在同一网络
方法一:看 IP 段
手机上的 FTP 服务启动后,屏幕上会显示 IP 地址。电脑也可以查自己的 IP:
- Windows:CMD 里输入
ipconfig,找 WiFi 适配器的 IPv4 地址 - Mac:终端里输入
ifconfig,或在系统设置 → 网络里查看
如果两个 IP 的前三段数字一样(比如都是 192.168.1.x),说明在同一个 C 段网络里,大概率能直连。但这不是 100% 的判定标准——有些复杂的网络拓扑会把不同子网路由互通。
方法二:用手机浏览器自测
手机上打开浏览器,访问 ftp://127.0.0.1:2121(用自己的 IP 也行)。如果能打开并看到文件列表,说明 FTP 服务本身没问题。然后用手机浏览器访问电脑的 IP(比如打开 http://电脑IP,随便试试),如果能通说明网络层没问题。
方法三:电脑 ping 手机 IP
在电脑的 CMD / PowerShell 里输入:
ping 手机的IP地址
如果看到回复("来自 xx.xx.xx.xx 的回复:字节=32 时间=xxms"),说明电脑能找到手机,网络通。如果显示"请求超时",说明两台设备之间路由不通。
不在同一网络怎么办
方案 A:让其中一台设备切到对方的网络
最直接的办法:
- 手机连电脑所在的 WiFi
- 电脑连手机所在的 WiFi 或手机开的热点
方案 B:用手机开热点(最通用)
如果周围没有共同的 WiFi,手机直接开热点,电脑连上来就行。详见 hotspot-alternative。
方案 C:放弃 FTP,换支持跨网络的方案
如果两台设备确实无法放进同一局域网(比如跨城市),Filetransfer 就不是合适的工具了。换云盘、传输邮件附件、或支持公网穿透的 P2P 工具(如 SendTomo、Snapdrop)都是可行替代。
公共 WiFi 的特殊情况
在咖啡馆、酒店等公共 WiFi 环境下,即使手机和电脑都连了同一个 WiFi,也可能无法互相直连。因为很多公共 WiFi 为了安全或商业原因,开启了"客户端隔离"(也叫 AP 隔离)——同一 WiFi 下的设备之间不能互相访问。
这种情况下,两个解决思路:
- 手机开热点,电脑连热点(绕开公共路由器的隔离策略)
- 换一个没有开启客户端隔离的网络(比如回到家或公司自己的 WiFi)
关于 AP 隔离的排查,详见 ap-isolation。