Linux云主机怎么设置FTP?

HCRM技术_小炮 云主机 2026-02-09 34 1

在Linux云主机上设置FTP服务,推荐使用vsftpd(非常安全的FTP守护进程),以下是详细步骤:

一、安装vsftpd

更新系统并安装

Ubuntu/Debian
sudo apt update
sudo apt install vsftpd
CentOS/RHEL
sudo yum install vsftpd
Rocky/AlmaLinux
sudo dnf install vsftpd

启动服务并设置开机自启

sudo systemctl start vsftpd
sudo systemctl enable vsftpd
sudo systemctl status vsftpd

二、基本配置

备份原始配置文件

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
限制用户在其主目录中(重要安全设置)
chroot_local_user=YES
allow_writeable_chroot=YES
被动模式设置(适用于云服务器)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=41000
pasv_address=你的公网IP地址  # 如果云主机有独立IP
日志设置
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
限制用户(可选)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO  # 仅允许列表中的用户

三、用户管理

创建FTP专用用户(推荐)

创建用户(不分配登录shell,只能用于FTP)
sudo useradd -m -s /bin/false ftpuser
sudo passwd ftpuser
如果使用用户列表,添加用户到允许列表
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

设置目录权限

修改用户主目录权限
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

四、防火墙配置

开放FTP端口

Ubuntu/Debian (ufw)
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:41000/tcp
sudo ufw reload
CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=40000-41000/tcp
sudo firewall-cmd --reload
或者使用ftp服务预设
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

五、云主机特殊配置

配置被动模式公网IP

如果云主机有弹性公网IP或浮动IP:

在vsftpd.conf中添加
pasv_address=你的公网IP地址
pasv_promiscuous=YES

安全组/网络ACL规则

在云平台控制台添加入站规则:

- 端口 20-21 (TCP)

- 被动模式端口范围(如40000-41000)

六、重启服务并测试

重启vsftpd
sudo systemctl restart vsftpd
测试连接
ftp localhost
或从客户端连接
ftp 你的服务器IP

七、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

配置SSL

在vsftpd.conf中添加
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

八、替代方案:SFTP(更安全)

如果只需要文件传输,建议使用SFTP(基于SSH):

SFTP已内置在SSH中,无需额外安装
创建SFTP专用用户
sudo useradd -m -s /bin/false sftpuser
sudo passwd sftpuser
配置SSH
sudo nano /etc/ssh/sshd_config
添加以下内容:
Match User sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication yes
    ChrootDirectory /home/sftpuser
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no
重启SSH
sudo systemctl restart sshd

九、故障排查

查看日志:

检查vsftpd状态
sudo systemctl status vsftpd
查看日志
sudo tail -f /var/log/vsftpd.log
sudo journalctl -u vsftpd

常见问题:

1、连接超时:检查防火墙/安全组

2、530登录错误:检查用户权限和PAM配置

3、500 OOPS: vsftpd: refusing to run with writable root...

   # 解决方案1:允许可写的chroot
   allow_writeable_chroot=YES
   
   # 解决方案2:修改目录权限
   sudo chmod a-w /home/ftpuser

安全建议:

1、使用SFTP替代FTP(更安全)

2、如需使用FTP,务必启用SSL/TLS

3、限制用户访问范围(chroot)

4、定期更新vsftpd软件

5、使用强密码策略

6、考虑使用fail2ban防止暴力破解

选择哪种方案取决于你的具体需求:

简单内部使用:基础FTP配置

公网传输:FTP+SSL或直接使用SFTP

最高安全性:SFTP或FTPS(FTP over SSL)

文章摘自:https://idc.huochengrm.cn/zj/23504.html

评论

精彩评论
  • 2026-02-09 16:50:36

    在Linux云主机上设置FTP服务,推荐使用vsftpd,步骤包括安装、配置、用户管理、防火墙设置等,并建议使用SFTP或FTP+SSL增强安全性。