Ubuntu FTP实现多用户同时登录的步骤(以vsftpd为例)
首先更新系统包列表并安装vsftpd(Ubuntu默认仓库提供):
sudo apt update
sudo apt install vsftpd
编辑vsftpd的主配置文件(/etc/vsftpd.conf
),修改以下关键参数以支持多用户同时登录:
sudo nano /etc/vsftpd.conf
核心配置项说明:
local_enable=YES
(必须开启,否则无法使用系统用户登录)。write_enable=YES
(若需要用户上传/修改文件,必须开启)。chroot_local_user=YES
(将用户锁定在自己的家目录,提升安全性);allow_writeable_chroot=YES
(允许chroot目录可写,避免部分FTP客户端因目录不可写而报错)。max_clients=100
(服务器最大并发连接数,根据服务器性能调整);max_per_ip=5
(每个IP的最大连接数,防止单个IP占用过多资源)。pasv_enable=YES
(被动模式兼容大多数FTP客户端,尤其是防火墙后的客户端);pasv_min_port=10000
、pasv_max_port=10100
(设置被动模式端口范围,需在防火墙中放行)。可选配置(根据需求调整):
anonymous_enable=NO
(默认关闭,建议开启以提升安全性)。ssl_enable=YES
、force_local_data_ssl=YES
、force_local_logins_ssl=YES
(需提前生成SSL证书,增强数据传输安全)。为每个需要登录FTP的用户创建系统账户,并设置对应的家目录权限:
# 创建用户(例如“ftpuser1”)
sudo adduser ftpuser1
# 设置用户密码(按提示输入两次)
sudo passwd ftpuser1
# 创建用户FTP目录(可选,若需自定义路径)
sudo mkdir -p /home/ftpuser1/ftp
# 设置目录所有者(确保用户对其家目录有读写权限)
sudo chown -R ftpuser1:ftpuser1 /home/ftpuser1
# 设置目录权限(755允许用户读写执行,其他用户仅读执行)
sudo chmod -R 755 /home/ftpuser1
若服务器启用了UFW防火墙,需放行FTP相关端口(控制连接21/tcp、数据连接被动模式端口范围):
# 允许FTP控制连接(默认21端口)
sudo ufw allow 21/tcp
# 允许被动模式端口范围(根据配置文件中的pasv_min/max_port调整)
sudo ufw allow 10000:10100/tcp
# 启用防火墙(若未启用)
sudo ufw enable
应用配置更改,重启vsftpd服务:
sudo systemctl restart vsftpd
# 设置开机自启(可选,但建议开启)
sudo systemctl enable vsftpd
使用FTP客户端(如FileZilla、WinSCP或命令行ftp
工具),分别用不同用户账号连接服务器,验证是否能同时登录并访问各自的目录:
ftp 服务器IP地址
# 输入用户名(如ftpuser1)和密码
# 测试上传/下载文件(如put localfile.txt、get remotefile.txt)
ssl_enable=YES
),避免数据明文传输;禁止匿名用户登录(anonymous_enable=NO
),防止未授权访问。max_clients
(最大并发连接数)和local_max_rate
(用户最大传输速率,如local_max_rate=50000
表示50KB/s),避免服务器过载。/var/log/vsftpd.log
文件查看FTP连接日志,及时排查连接问题或异常行为。pasv_min_port
到pasv_max_port
之间的所有端口,否则被动模式下的数据传输会失败。