统信uos系统部署ftp服务需根据场景选择vsftpd或pure-ftpd:vsftpd适用于标准安全共享,支持匿名及授权用户隔离;pure-ftpd适合虚拟用户与chroot精细管控;均需配置防火墙放行21端口并验证连通性。

如果您希望在统信UOS系统上提供文件共享与远程传输能力,则需部署一个稳定、可控的FTP服务端。以下是基于不同需求场景的多种可行搭建路径,涵盖主流服务软件、安装方式、基础配置及访问验证环节。
一、使用vsftpd搭建标准FTP服务器
vsftpd(Very Secure FTP Daemon)是统信UOS官方推荐的FTP服务实现,具备高安全性、低资源占用和良好兼容性,适用于桌面版与服务器版系统。其默认配置严格限制访问权限,需按需调整以启用匿名或授权用户功能。
1、打开终端,执行系统包索引更新与vsftpd安装命令:
sudo apt update && sudo apt install -y vsftpd
2、确认安装成功并查看版本信息:
vsftpd -v
3、备份原始配置文件以防误操作:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
4、编辑主配置文件:
sudo nano /etc/vsftpd.conf
5、根据目标访问模式修改关键参数:若启用匿名访问,确保以下四行存在且值为YES:
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
6、创建匿名用户根目录并赋予开放写入权限:
sudo mkdir -p /srv/ftp/pub
sudo chmod -R o+rw /srv/ftp/pub
7、重启服务使配置生效:
sudo systemctl restart vsftpd
8、设置开机自启:
sudo systemctl enable vsftpd
二、使用Pure-FTPd搭建轻量安全FTP服务
Pure-FTPd是一款设计简洁、注重安全隔离的FTP守护进程,支持虚拟用户机制与chroot沙箱环境,特别适合多租户或需精细权限控制的场景。它不依赖系统账户,所有FTP用户均映射至单一宿主系统用户,降低系统暴露面。
1、通过APT安装Pure-FTPd服务端:
sudo apt install pure-ftpd
2、启用全局chroot限制,防止用户越权访问:
echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone
3、指定虚拟用户数据库路径:
echo "/etc/pure-ftpd/pureftpd.pdb" | sudo tee /etc/pure-ftpd/conf/PureDB
4、创建专用系统用户作为虚拟用户的执行宿主,禁止其登录shell:
sudo useradd -m ftpuser -s /usr/sbin/nologin
5、建立上传目录并归属该用户:
sudo mkdir -p /ftp/uploads
sudo chown -R ftpuser:ftpuser /ftp
6、添加第一个虚拟FTP用户testftp,绑定至上传目录:
sudo pure-pw useradd testftp -u ftpuser -d /ftp/uploads
7、输入两次密码后,生成并加载用户数据库:
sudo pure-pw mkdb
8、启动Pure-FTPd服务(需先停止vsftpd避免端口冲突):
sudo systemctl start pure-ftpd
三、配置防火墙放行FTP服务端口
FTP协议默认使用21端口进行控制连接,部分模式还需20端口(主动模式)或随机高位端口(被动模式)。若系统启用firewalld或iptables,未放行相关端口将导致客户端连接超时或目录列表失败。
1、检查当前防火墙状态:
sudo firewall-cmd --state
2、若处于运行中,添加FTP服务规则并永久生效:
sudo firewall-cmd --add-service=ftp --permanent
3、重载防火墙配置:
sudo firewall-cmd --reload
4、验证规则是否已加载:
sudo firewall-cmd --list-services | grep ftp
5、如使用iptables,执行以下命令开放21端口:
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
6、保存iptables规则(D版适用):
sudo iptables-save > /etc/iptables/rules.v4
四、启用匿名访问并验证连通性
匿名访问无需账号密码,适合公开资源分发或临时文件交换。其核心在于允许anonymous用户读写指定目录,同时禁用本地系统账户登录,避免权限提升风险。
1、确保vsftpd配置中已启用anonymous_enable=YES,并注释或设为NO的local_enable=NO
2、确认匿名根目录存在且权限宽松:
ls -ld /srv/ftp/pub
3、在该目录下创建测试文件:
echo "anonymous test" | sudo tee /srv/ftp/pub/README.txt
4、在统信UOS本机使用命令行客户端测试:
ftp localhost
5、当提示name:时输入ftp,password直接回车
6、进入后执行ls查看目录内容,get README.txt下载验证
7、使用图形界面访问:在“计算机”→“网络邻居”搜索框中输入ftp://127.0.0.1,选择匿名登录
五、配置授权用户访问并设定家目录隔离
授权用户模式要求每个FTP用户拥有独立身份凭证与专属工作空间,通过chroot机制将其严格限制在自身目录内,防止跨目录浏览或篡改他人文件。此方式适用于内部协作或分级共享场景。
1、创建新系统用户test1,指定家目录为/srv/ftp/test1:
sudo useradd -d /srv/ftp/test1 -s /bin/bash test1
2、为其设置密码:
echo "test1:123" | sudo chpasswd
3、将用户加入FTP白名单:
echo "test1" | sudo tee -a /etc/vsftpd.user_list
4、在/etc/vsftpd.conf中添加以下两行:
userlist_enable=YES
userlist_deny=NO
5、启用chroot并指定用户根目录模板:
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/srv/ftp/$USER
6、创建用户专属目录并赋权:
sudo mkdir -p /srv/ftp/test1
sudo chown test1:test1 /srv/ftp/test1
sudo chmod 755 /srv/ftp/test1
7、重启vsftpd服务:
sudo systemctl restart vsftpd
8、从另一台设备使用FTP客户端连接IP地址,输入用户名test1与密码123完成登录










