
【信创】麒麟V10 -FTP 服务部署文档(vsftpd)
适用版本:vsftpd 3.0.3 | 系统:Linux (aarch64 / ky10) | 模式:被动模式

一、环境信息
/data/ftp | |
ftpuser |
二、安装
上传并安装 RPM
# 将 vsftpd-3.0.3-30.ky10.aarch64.rpm 上传到服务器 /tmp/ 目录cd /tmprpm -ivh vsftpd-3.0.3-30.ky10.aarch64.rpm如果提示依赖问题,使用
yum localinstall vsftpd-3.0.3-30.ky10.aarch64.rpm自动解决。
三、配置文件
3.1 配置文件位置
/etc/vsftpd/vsftpd.conf3.2 完整配置及说明
# === 访问控制 ===anonymous_enable=NO# 禁止匿名登录local_enable=YES# 允许本地用户登录userlist_enable=YES# 启用用户列表控制# === 读写权限 ===write_enable=YES# 允许上传文件local_umask=022# 上传文件权限掩码(755)# === 用户隔离 ===chroot_local_user=YES# 将用户锁定在自己的 home 目录allow_writeable_chroot=YES# 允许在锁定目录中写入# === 运行模式 ===listen=YES# 独立运行模式(仅 IPv4)listen_ipv6=NO# 不监听 IPv6pam_service_name=vsftpd # PAM 认证服务名# === 被动模式 ===pasv_enable=YES# 开启被动模式pasv_min_port=30000# 被动模式端口下限pasv_max_port=31000# 被动模式端口上限# === 日志与连接 ===dirmessage_enable=YES# 进入目录时显示消息xferlog_enable=YES# 记录上传/下载日志xferlog_std_format=YES# 使用标准 xferlog 格式connect_from_port_20=YES# PORT 模式数据连接使用 20 端口四、环境配置
4.1 创建 FTP 根目录
mkdir -p /data/ftpchmod 755 /data/ftp4.2 创建 FTP 用户
useradd -s /sbin/nologin -d /data/ftp ftpuserpasswd ftpuser # 设置密码# 目录归属chown ftpuser:ftpuser /data/ftp4.3 允许 nologin 用户登录 FTP
echo"/sbin/nologin" >> /etc/shells4.4 开放防火墙端口
# FTP 命令端口firewall-cmd --permanent --zone=public --add-port=21/tcp# 被动模式数据端口(必须开!)firewall-cmd --permanent --zone=public --add-port=30000-31000/tcpfirewall-cmd --reload五、启动与管理
5.1 启动服务
systemctl start vsftpd5.2 设置开机自启
systemctl enable vsftpd5.3 查看状态
systemctl status vsftpd5.4 重启服务
systemctl restart vsftpd5.5 停止服务
systemctl stop vsftpd六、验证测试
6.1 本机 curl 测试
# 查看目录(空目录无输出即正常)curl -u "ftpuser:密码" ftp://127.0.0.1/# 创建测试文件后再次查看echo"hello ftp" > /data/ftp/test.txtcurl -u "ftpuser:密码" ftp://127.0.0.1/期望:显示
test.txt
6.2 远程上传测试
在另一台服务器上执行:
# 创建测试文件echo"upload test" > /tmp/ftp_test.txt# 使用 curl 上传curl -T /tmp/ftp_test.txt -u "ftpuser:密码" ftp://FTP服务器IP/回到 FTP 服务器验证:
ls -la /data/ftp/ftp_test.txtcat /data/ftp/ftp_test.txt6.3 Windows 资源管理器测试
在 Windows 资源管理器地址栏输入:
ftp://服务器IP输入 ftpuser 的用户名和密码,应该能看到目录内容并拖拽文件。
七、配置文件生效流程
上传配置文件到 /etc/vsftpd/vsftpd.conf │ ▼ systemctl restart vsftpd │ ▼ firewall-cmd 开放 21 + 30000-31000 │ ▼ curl 测试连接八、常见问题
530 Access denied | echo "/sbin/nologin" >> /etc/shells | |
530 Login incorrect | /etc/vsftpd/user_list,注释掉该用户 | |
firewall-cmd --add-port=30000-31000/tcp | ||
500 OOPS: vsftpd: refusing to run with writable root | allow_writeable_chroot | allow_writeable_chroot=YES |
Permission denied | chown ftpuser:ftpuser /data/ftp |
九、安全建议
anonymous_enable=NO | |
chroot_local_user=YES | |
nologin | |
userlist_enable=YES | /etc/vsftpd/user_list 精确控制谁能登录 |
喜欢我的文章点点关注⭐

夜雨聆风