温馨提示×

为什么ubuntu ftpserver失败

小樊
47
2026-10-05 11:59:14
栏目: 智能运维

Ubuntu 上 FTP Server 启动/连接失败 的原因很多,下面按「最常见 → 较少见」帮你系统梳理,并给出排查方法。


一、最常见原因

1️⃣ FTP 服务根本没装 / 没启动

Ubuntu 默认 不带 FTP 服务。

常见服务:

  • vsftpd(最常用)
  • proftpd
  • pure-ftpd

检查是否安装:

which vsftpd
systemctl status vsftpd

若未安装:

sudo apt update
sudo apt install vsftpd
sudo systemctl enable --now vsftpd

2️⃣ 防火墙阻止(非常常见)

FTP 使用:

  • 21(控制端口)
  • 被动模式还需要一段端口范围

查看防火墙:

sudo ufw status

允许 FTP:

sudo ufw allow 21/tcp
sudo ufw allow 20/tcp

如果是 被动模式,还需在 vsftpd.conf 中指定端口并放行:

pasv_min_port=30000
pasv_max_port=31000
sudo ufw allow 30000:31000/tcp

3️⃣ 配置文件错误(vsftpd 尤其容易)

常见错误配置:

listen=YES
listen_ipv6=YES   # ❌ 两个同时开会失败

✅ 正确做法:

  • IPv4 用 listen=YES
  • IPv6 用 listen_ipv6=YES
  • 不要同时开

修改后:

sudo systemctl restart vsftpd

4️⃣ 用户无法登录

vsftpd 默认禁止某些用户登录:

  • /etc/ftpusers 中的用户(如 root)
  • 没有家目录
  • shell 被禁止

检查:

cat /etc/ftpusers

允许用户登录示例:

local_enable=YES
write_enable=YES

二、云服务器特别注意(极易踩坑)

5️⃣ 云厂商安全组没开

即使 Ubuntu 防火墙放行,云控制台安全组也必须开:

  • 21
  • 被动端口范围

否则 100% 连不上。


6️⃣ 被动模式在 NAT / 公网下失败

云服务器常见现象:

  • 能连上
  • 列目录卡住

解决(vsftpd):

pasv_address=你的公网IP
pasv_enable=YES

三、SELinux(Ubuntu 一般不是,但提一下)

Ubuntu 默认 没有 SELinux,可忽略。 如果是 CentOS 才需要考虑。


四、快速自查清单 ✅

systemctl status vsftpd
sudo ufw status
cat /etc/vsftpd.conf | grep -E "listen|pasv|local_enable"

然后本地测试:

ftp localhost

五、如果你愿意,我可以精准帮你定位

请告诉我:

  1. 用的是哪个 FTP 服务(vsftpd?)
  2. 报错信息(客户端 / 服务端日志)
  3. 本地还是云服务器
  4. 主动还是被动模式

我可以直接给你一份「可运行配置」。

0 踩