在 Ubuntu 上“禁止 FTP 登录”通常有几种不同场景,下面按最常见需求给你说明做法。
如果你根本不想提供 FTP 服务:
常见 FTP 服务有:
vsftpdproftpdpure-ftpdsystemctl status vsftpd
以 vsftpd 为例:
sudo systemctl stop vsftpd
sudo systemctl disable vsftpd
如果使用的是 proftpd:
sudo systemctl stop proftpd
sudo systemctl disable proftpd
✅ 这样 FTP 端口(21)就不会再监听,任何人都无法 FTP 登录。
如果你只是想禁用不安全的 FTP,但保留文件传输:
Ubuntu 默认已支持 SFTP(基于 SSH)。
只需确保:
sudo systemctl status ssh
用户可通过:
sftp://用户名@服务器IP
登录。
FTP 登录通常需要合法 shell。
sudo usermod -s /usr/sbin/nologin 用户名
或:
sudo usermod -s /bin/false 用户名
⚠️ 注意:这也会影响 SSH 登录(推荐用 /usr/sbin/nologin)。
编辑:
sudo nano /etc/vsftpd.conf
添加:
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
然后:
echo 用户名 | sudo tee -a /etc/vsftpd.user_list
sudo systemctl restart vsftpd
sudo ufw deny 21/tcp
或(iptables):
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
| 需求 | 推荐做法 |
|---|---|
| 完全不用 FTP | 停止并禁用 vsftpd |
| 安全传输文件 | 用 SFTP,关 FTP |
| 禁止某用户 | nologin + vsftpd 用户列表 |
| 临时封端口 | ufw deny 21 |
如果你能告诉我:
我可以给你更精确的一条命令方案。