CentOS与VSFTP网络配置指南
在配置VSFTP前,需完成以下基础准备工作:
sudo yum update -y确保系统软件包为最新版本;sudo yum install vsftpd -y命令安装VSFTP服务器;sudo systemctl start vsftpd启动服务,并设置开机自启sudo systemctl enable vsftpd。编辑主配置文件/etc/vsftpd/vsftpd.conf,设置以下参数:
listen=YES:启用独立模式(避免作为inetd/xinetd子进程运行,提升稳定性);listen_ipv6=NO:禁用IPv6(若无需IPv6支持,减少配置复杂度);listen_address=服务器IP(如192.168.1.100):指定VSFTP绑定的IP地址(单网卡无需修改,双网卡需绑定内网/外网IP以实现隔离);pasv_enable=YES:启用被动模式(解决FTP主动模式下的“连接被拒绝”问题,适用于客户端位于防火墙后的场景);pasv_min_port=60000/pasv_max_port=60100:设置被动模式的端口范围(需与防火墙规则匹配,允许该区间端口通过)。使用firewalld开放FTP相关端口:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=60000-60100/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="21" protocol="tcp" accept'
sudo firewall-cmd --reload
若系统启用了SELinux(getenforce返回Enforcing),需调整以下策略:
sudo setsebool -P ftp_home_dir on;sudo setsebool -P allow_ftpd_full_access on;sudo setenforce 0。sudo systemctl status vsftpd,确认服务处于active (running)状态;ss -tulnp | grep vsftpd,检查是否监听21端口(及被动模式端口范围);sudo firewall-cmd --list-all查看是否开放了21端口和被动模式端口;ping 服务器IP(检查网络通路)和telnet 服务器IP 21(检查21端口是否可达)。passwd -S 用户名,状态应为P);chroot_local_user=YES,需将用户添加到/etc/vsftpd/chroot_list(允许其访问主目录外的路径);tail -f /var/log/vsftpd.log获取详细错误信息(如“530 Login incorrect”表示认证失败)。755(sudo chmod 755 /home/用户名),上传目录需设置为777(sudo chmod 777 /var/ftp/upload,若需写入);public_content_rw_t(sudo chcon -Rt public_content_rw_t /var/ftp/upload);pasv_enable=YES、pasv_min_port/pasv_max_port设置正确,且防火墙允许该端口范围;df -h查看磁盘剩余空间(需大于待传输文件大小)。/etc/vsftpd/vsftpd.conf,设置anonymous_enable=NO(避免未授权用户访问);chroot_local_user=YES将用户限制在主目录(防止访问系统其他目录),若需允许部分用户访问其他路径,可配置allow_writeable_chroot=YES;sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem),并在配置文件中添加:ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
force_anon_data_ssl=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem