FTP(文件传输协议)服务器是常用的文件共享解决方案。以下是在Linux系统上部署FTP服务器的详细步骤:
常见选择: - vsftpd (Very Secure FTP Daemon):轻量级、安全性高 - ProFTPD:功能丰富、配置灵活 - Pure-FTPd:简单易用、安全性好
sudo apt update
sudo apt install vsftpd
sudo apt install proftpd
编辑配置文件:
sudo nano /etc/vsftpd.conf
常见配置选项:
# 允许本地用户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 本地用户创建文件时的umask
local_umask=022
# 禁止匿名登录(提高安全性)
anonymous_enable=NO
# 限制用户只能访问其主目录(推荐)
chroot_local_user=YES
allow_writeable_chroot=YES
# 被动模式设置(用于防火墙后)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo usermod -s /sbin/nologin ftpuser
允许FTP端口(默认21)和被动模式端口范围:
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw enable
启动/重启服务:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
sudo systemctl restart vsftpd
测试连接:
ftp localhost
# 或使用图形化FTP客户端如FileZilla
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
local_max_rate=100000 # 100KB/s
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
Q: 用户无法上传文件
A: 检查:
1. 目录权限:sudo chown ftpuser:ftpuser /home/ftpuser
2. vsftpd.conf中的write_enable=YES
3. SELinux设置(如有):sudo setsebool -P ftp_home_dir on
Q: 被动模式无法工作
A: 确保:
1. 防火墙开放了被动模式端口范围
2. 在vsftpd.conf中正确配置了pasv_min_port和pasv_max_port
3. 如果服务器在NAT后,配置pasv_address=你的公网IP
通过以上步骤,您应该能够在Linux系统上成功部署一个功能完善且相对安全的FTP服务器。