本文信息核实于2026-08-06
先给你吃颗定心丸:90%的小米B12路由器在刷入第三方固件后FTP无法使用,都不是硬件坏了,也不是固件本身有致命bug,而是“服务没启动”或“权限配置”这两个老生常谈但又极易踩坑的点。 我上周刚帮朋友从“变砖”边缘救回来一台,就是这个问题。别急着刷回官方包,看完这篇,你大概率能自己搞定。
核心观点:刷机后FTP失效,99%是这三件事没做对
很多人刷完OpenWrt或Padavan,兴冲冲打开FTP软件,结果连不上,第一反应就是“固件有问题”。但根据我这几年折腾路由器的经验,以及2026年各大论坛的反馈汇总,真正的原因几乎都集中在以下三点:
- FTP服务(如vsftpd或proftpd)压根没被启用 —— 第三方固件为了精简体积,默认不会自动启动FTP。
- 防火墙规则拦截了21端口 —— 刷机后默认防火墙策略往往只放行基本管理端口,21端口是“漏网之鱼”。
- 用户权限和目录权限设置错误 —— 你用的是root登录,但FTP配置里禁止了root,或者根目录指向了一个不存在/无权限的路径。
下面我逐一拆解,每一步都给你能直接抄的作业。
详细解读:从排查到修复,手把手教程
第一步:先别乱猜,用最笨的办法验证
打开你的电脑CMD(命令提示符),输入以下命令:
telnet 192.168.1.1 21
(把192.168.1.1换成你路由器的实际IP)
- 如果显示“连接失败”或超时:说明FTP服务根本没起来,或者被防火墙拦了。跳到第二步。
- 如果显示“220 FTP Server ready”:说明服务是好的,问题出在账号密码或目录权限。直接看第四步。
注意:Windows 10/11系统默认没开telnet,你可以在“启用或关闭Windows功能”里勾选“Telnet客户端”,或者直接用PowerShell里的Test-NetConnection 192.168.1.1 -Port 21。
第二步:开启FTP服务(以OpenWrt为例)
如果你用的是Lean大神或官方OpenWrt固件,SSH进路由器(用户名root,密码就是你设置的管理密码),依次执行:
# 1. 更新软件包列表
opkg update
# 2. 安装vsftpd(轻量级,推荐)
opkg install vsftpd
# 3. 启动并设置开机自启
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start
Padavan(老毛子)固件更简单:进入后台管理界面 → 高级设置 → USB应用程序 → FTP服务器 → 把“启用FTP”开关打开,并设置为“允许匿名”或“使用root账号”。
关键提醒:很多固件默认只装了vsftpd,但没装vsftpd-tls(用于FTPS加密),如果你在客户端勾选了“仅限TLS”,也会连不上。建议先关掉加密测试。
第三步:放行防火墙端口(这步最容易忽略)
OpenWrt默认防火墙规则很“死板”,执行完第二步如果还连不上,99%是这的问题。
SSH执行以下命令,永久开放21端口:
# 添加规则到防火墙配置
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-FTP'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest_port='21'
uci set firewall.@rule[-1].proto='tcp'
uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
/etc/init.d/firewall restart
注意:如果你只想在内网使用,把src='wan'改成src='lan',更安全。
第四步:修改用户权限和目录
如果你用root登录提示“530 Login incorrect”,或者登录成功但列表为空,看这里。
OpenWrt:默认vsftpd配置禁止root登录。编辑配置文件:
vi /etc/vsftpd.conf
找到并修改以下两行,没有就手动加:
local_enable=YES
write_enable=YES
local_root=/mnt/sda1 # 改成你的U盘或硬盘挂载点,比如你插的移动硬盘
chroot_local_user=YES
allow_writeable_chroot=YES
然后重启服务:/etc/init.d/vsftpd restart
Padavan:在FTP设置页面,有个“根目录”选项,一般默认是/media/AiDisk_a1,如果你插了U盘但没挂载成功,就会看不到文件。去“USB应用程序”里查看“USB状态”,确保设备已识别。
5个高频问题FAQ(你肯定遇到过一个)
Q1:刷了B12的OpenWrt固件,FTP能连上,但上传文件提示“550 Permission denied”怎么办?
A:这是写权限问题。检查/etc/vsftpd.conf里write_enable=YES是否开启,并且你登录的账号对该目录有写权限。如果是root登录,看chroot_local_user是否设置为YES且目录可写。很多固件默认chroot后根目录只读,需要加allow_writeable_chroot=YES。
Q2:我的小米B12刷了Padavan,FTP连上了但速度只有几百KB/s,正常吗? A:不正常。B12是千兆路由器,USB2.0接口理论速度也就30MB/s左右,但几百KB肯定不对。先检查网线是不是百兆,再看路由器设置里“USB 3.0”模式是否开启(有些固件默认关)。另外,小文件传输速度慢正常,传个大文件测试。
Q3:FTP账号密码忘了,怎么重置?
A:OpenWrt里直接SSH执行passwd root,重新设置root密码即可。Padavan在“系统管理”→“管理员设置”里改。注意,这会影响SSH登录密码,一并改了。
Q4:刷完固件后,路由器IP变成了192.168.123.1,之前是192.168.31.1,FTP客户端里填哪个?
A:填你路由器当前的IP。你可以通过电脑连接路由器后,查看网关地址(CMD里输入ipconfig)。如果你有强迫症,可以在OpenWrt的“网络”→“接口”里把LAN口IP改回原来的。
Q5:用FileZilla连接时,一直卡在“读取目录列表”最后超时,但连接是成功的? A:这是最经典的数据连接模式问题。FileZilla默认是“主动模式”,而路由器NAT后经常不支持。去FileZilla设置里,把传输模式改成“被动模式”,问题立刻解决。
实用建议:如何避免下次再“翻车”
- 刷机前备份原厂配置:这不该是废话。在官方固件里导出配置文件,万一新固件不满意,刷回去还能一键恢复。
- 优先选带“FTP已预配置”的固件:在恩山论坛或GitHub找B12固件时,看更新日志或评论区,有没有人提到“FTP默认开启”。如果作者没提到,默认就是没开,做好心理准备。
- 用SMB代替FTP:如果你只是局域网内传文件,SMB(Windows共享)比FTP好用太多,速度更快,而且不用折腾权限。OpenWrt里装
samba36-server,Padavan在“存储”里开启“Windows AD 域”。只推荐内网用,外网访问还是FTP或WebDAV更安全。 - 别折腾“固化”:2026年了,很多B12刷机后重启就还原,需要“固化Bootloader”。如果你只是用FTP,别折腾固化,容易变砖。每次重启后重新执行一遍
opkg install vsftpd也就一分钟的事。 - 最后的大招:如果你实在搞不定,刷回官方固件。小米B12官方固件自带FTP功能(在“高级设置”→“USB”里开启),稳定不折腾。第三方固件适合爱折腾的人,不适合“即插即用”党。
如果你需要的话,可以试试下面的免费工具:
总结一句:刷机后FTP不能用,80%是配置问题,20%是固件选择问题。按我上面的步骤走一遍,九成能通。如果还不行,去恩山论坛搜“B12 FTP”,大概率能找到你固件版本的专属坑。别急着换路由器,B12的硬件在2026年依然能打,别浪费了。