欢迎光临护送网
详情描述
Ubuntu 22.04 FTP服务器安装配置详细教程

1. 选择FTP服务器软件

Ubuntu 22.04支持多种FTP服务器,最常用的是:

  • vsftpd(推荐):安全、稳定、轻量级
  • ProFTPD:功能丰富、配置灵活
  • Pure-FTPd:安全、易用

本教程以vsftpd为例。

2. 安装vsftpd

# 更新包列表
sudo apt update

# 安装vsftpd
sudo apt install vsftpd

# 查看服务状态
sudo systemctl status vsftpd

3. 基本配置

备份原始配置文件

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

编辑配置文件

sudo nano /etc/vsftpd.conf

修改配置参数(常见设置)

# 允许本地用户登录
local_enable=YES

# 允许上传文件
write_enable=YES

# 本地用户上传文件的umask
local_umask=022

# 允许匿名用户访问(可选)
anonymous_enable=NO

# 禁止匿名用户上传(如果启用匿名访问)
# anon_upload_enable=NO
# anon_mkdir_write_enable=NO

# 使用本地时间而不是GMT
use_localtime=YES

# 日志文件位置
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

# 被动模式设置(用于防火墙/NAT后)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

# 限制用户在其主目录(重要安全设置)
chroot_local_user=YES
allow_writeable_chroot=YES

# 用户列表控制
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO  # 仅允许列表中的用户

4. 创建FTP用户

创建新用户

# 创建用户(不创建主目录)
sudo useradd -m ftpuser

# 设置密码
sudo passwd ftpuser

# 如果需要,将用户添加到vsftpd允许列表
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

或使用现有用户

# 将现有用户添加到允许列表
echo "your_username" | sudo tee -a /etc/vsftpd.userlist

5. 配置SSL/TLS(可选但推荐)

生成SSL证书

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/vsftpd.pem \
    -out /etc/ssl/private/vsftpd.pem

在vsftpd.conf中添加SSL配置

# 启用SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

# SSL配置
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. 防火墙配置

# 允许FTP端口(20,21)
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

# 允许被动模式端口范围
sudo ufw allow 40000:50000/tcp

# 启用防火墙(如果未启用)
sudo ufw enable

7. 启动和测试

重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

测试连接

# 本地测试
ftp localhost

# 或使用lftp(功能更全)
sudo apt install lftp
lftp ftp://ftpuser@localhost

8. 客户端连接示例

Linux/Mac命令行

ftp your_server_ip
# 或
lftp ftp://username@your_server_ip

Windows

  • 使用资源管理器:ftp://your_server_ip
  • 使用FileZilla等FTP客户端

9. 高级配置

限制用户访问特定目录

# 创建目录并设置权限
sudo mkdir /home/ftpuser/files
sudo chown ftpuser:ftpuser /home/ftpuser/files

# 在配置文件中限制用户目录
# local_root=/home/$USER/files

配置带宽限制

# 限制本地用户最大带宽(KB/s)
local_max_rate=102400

# 限制匿名用户最大带宽(KB/s)
anon_max_rate=51200

限制并发连接

max_clients=50
max_per_ip=5

10. 故障排除

查看日志

# 查看vsftpd日志
sudo tail -f /var/log/vsftpd.log

# 查看系统日志
sudo journalctl -u vsftpd

常见问题解决

连接被拒绝

# 检查服务状态
sudo systemctl status vsftpd

# 检查端口监听
sudo netstat -tulpn | grep :21

认证失败

# 检查用户是否在允许列表
sudo cat /etc/vsftpd.userlist

# 检查用户主目录权限
sudo ls -ld /home/username

无法上传文件

# 检查目录权限
sudo chmod 755 /home/username
sudo chown username:username /home/username

11. 安全建议

禁用匿名访问(除非必要) 使用强密码策略 定期更新系统和vsftpd 考虑使用SFTP替代FTP(更安全) 配置fail2ban防止暴力破解
sudo apt install fail2ban

12. 安装SFTP(替代方案,更安全)

如果不需要传统FTP,建议使用SFTP:

# SSH已包含SFTP功能
# 确保SSH服务器已安装
sudo apt install openssh-server

# 配置SFTP限制用户访问
sudo nano /etc/ssh/sshd_config

添加以下配置:

Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /home/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

注意事项

FTP协议不安全,密码和数据以明文传输 建议仅在内部网络使用FTP 对外服务强烈建议使用SFTP或FTPS 定期备份配置文件 监控日志文件,检测异常活动

这个教程覆盖了从安装到配置的完整过程,你可以根据自己的需求调整配置参数。

相关帖子
运营商在2026年如何平衡网络建设投入与电话卡资费下调之间的关系?
运营商在2026年如何平衡网络建设投入与电话卡资费下调之间的关系?
面对长期康复治疗产生的高额持续性支出,家庭应如何建立可持续计划?
面对长期康复治疗产生的高额持续性支出,家庭应如何建立可持续计划?
淄博市病人跨省市转运120救护车-重症病人转院租救护车
淄博市病人跨省市转运120救护车-重症病人转院租救护车
淄博市救护车接送病人-长途医疗转运车出租
淄博市救护车接送病人-长途医疗转运车出租
Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法
Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法
社保卡解锁重置完密码,当场怎么做一次“小额刷卡/查询”验证,避免回家又报错?
社保卡解锁重置完密码,当场怎么做一次“小额刷卡/查询”验证,避免回家又报错?
线上续借失败提示“有逾期或权限受限”,通常会被哪几类情况触发?
线上续借失败提示“有逾期或权限受限”,通常会被哪几类情况触发?
写脱口秀开放麦稿子有什么雷区,为什么有人刚开口就被主持人打断?
写脱口秀开放麦稿子有什么雷区,为什么有人刚开口就被主持人打断?
重庆市房产网站建设#独立网站开发设计,一站式服务
重庆市房产网站建设#独立网站开发设计,一站式服务
朝阳市软件系统开发@企业网站定制开发,专业建站
朝阳市软件系统开发@企业网站定制开发,专业建站
牡丹江市120救护车转运跑长途-病人转院救护车,车内设备齐全
牡丹江市120救护车转运跑长途-病人转院救护车,车内设备齐全
大额银行贷款办理流程,梳理多级审核、实地走访等关键环节
大额银行贷款办理流程,梳理多级审核、实地走访等关键环节
2026年丰巢超时后一直不取会怎样,快递会被退回还是处理掉?
2026年丰巢超时后一直不取会怎样,快递会被退回还是处理掉?
聊城市短视频推广@网站开发服务,提供一站式建站服务
聊城市短视频推广@网站开发服务,提供一站式建站服务
剖腹产术后的身体恢复一般要多久,有哪些细节是产前就可以提前准备的?
剖腹产术后的身体恢复一般要多久,有哪些细节是产前就可以提前准备的?
齐齐哈尔市120救护车出租转院病人护送-接送病人转院出院
齐齐哈尔市120救护车出租转院病人护送-接送病人转院出院
老年公交卡在很多城市“仅限本地系统”,跨城不互通的技术原因是什么?
老年公交卡在很多城市“仅限本地系统”,跨城不互通的技术原因是什么?
廊坊市AI数字人视频制作#独立网站开发设计,定制建站
廊坊市AI数字人视频制作#独立网站开发设计,定制建站
学校或社区开放的羽毛球篮球场地的收费标准通常要求怎么预约,现场又要带哪些材料?
学校或社区开放的羽毛球篮球场地的收费标准通常要求怎么预约,现场又要带哪些材料?
标准里反复出现
标准里反复出现"以苯甲酸计"这四个字,它到底是折算公式还是单纯标注惯例?