必须先安装vsftpd并正确配置:确认系统类型(APT或YUM/DNF系),更新软件源后安装服务;创建专用用户并设家目录为/data/FTP;修改/etc/vsftpd.conf启用本地用户、chroot限制及白名单;最后放行firewalld的FTP端口。

如果你在麒麟操作系统上需要搭建一个FTP服务,以便实现文件的远程上传与下载,就必须先安装vsftpd这个轻量级、高安全性的FTP守护进程——它被麒麟OS官方仓库预置,但默认未启用,且不同版本使用的包管理器不同,选错命令会导致安装失败。
确认系统类型并更新软件源
打开终端,执行:cat /etc/os-release,查看ID字段和VERSION_ID字段组合。若显示ID=ubuntu或ID=debian,说明是APT系;若显示ID=kylin且VERSION_ID为“22.0”“30”或含“SP1/SP2”,则大概率是DNF/YUM系。
APT系执行:sudo apt update;DNF系执行:sudo dnf makecache。这一步必须成功,否则后续安装会报“Unable to locate package vsftpd”错误。
【关键前提】若系统无外网,需提前挂载安装镜像并配置本地repo,否则所有apt/dnf命令均无效。
安装vsftpd服务
APT系(如Kylin Desktop V10 SP1)运行:sudo apt install -y vsftpd。
DNF/YUM系(如Kylin Server V10 SP2)运行:sudo dnf install -y vsftpd 或 sudo yum install -y vsftpd。
安装完成后立即验证:sudo systemctl is-active vsftpd,返回active才表示服务已加载;若返回unknown或inactive,说明安装失败或服务未注册。
启用并启动服务
第一步:设置开机自启并立即启动:sudo systemctl enable --now vsftpd。
第二步:检查端口监听状态:sudo ss -tlnp | grep :21,必须看到vsftpd进程绑定在0.0.0.0:21或[::]:21,否则防火墙或SELinux可能拦截了连接。
第三步:验证进程存活:ps aux | grep vsftpd | grep -v grep,有输出即表示守护进程已在后台运行。
创建专用FTP用户并设家目录
方法一(推荐):新建受限用户,禁用shell登录:sudo useradd -m -d /data/FTP -s /sbin/nologin ftpuser。
方法二:复用已有普通用户(不推荐),仅修改其家目录:sudo usermod -d /data/FTP 用户名,但需确保该用户未被/etc/vsftpd/ftpusers列入黑名单。
为ftpuser设置密码:sudo passwd ftpuser,输入两次新密码即可。
创建并授权目标目录:sudo mkdir -p /data/FTP && sudo chown ftpuser:ftpuser /data/FTP && sudo chmod 755 /data/FTP。注意:路径必须存在且权限正确,否则chroot会失败并拒绝登录。
配置vsftpd.conf核心参数
先备份原始配置:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak。
用vim编辑主配置:sudo vim /etc/vsftpd.conf,定位并确保以下行存在且值正确:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/data/FTP
若要启用白名单机制(绕过ftpusers黑名单),追加三行:userlist_enable=YES→userlist_deny=NO→userlist_file=/etc/vsftpd.allowed_users。
放行防火墙端口
银河麒麟V10默认启用firewalld,必须显式放行FTP控制端口21:sudo firewall-cmd --permanent --add-service=ftp。
重载规则生效:sudo firewall-cmd --reload。
若使用iptables替代firewalld,执行:sudo iptables -I INPUT -p tcp --dport 21 -j ACCEPT→sudo iptables-save > /etc/sysconfig/iptables。


















