乐于分享
好东西不私藏

银河麒麟系统使用vsftpd软件搭建FTP服务器(极简必会版)

银河麒麟系统使用vsftpd软件搭建FTP服务器(极简必会版)
一、安装vsftpd软件

根据电脑 CPU 架构选择对应版本安装:


●飞腾、麒麟990、盘古处理器:安装ARM架构版本

海光、兆芯处理器:安装X86架构版本


将对应安装包拷贝至电脑后,双击即可完成安装。

二、新建FTP文件目录并赋权

我用来演示的这台电脑用户名为adminsys

打开电脑终端,并输入以下命令

sudo mkdir -p /home/用户名/sharesudo chmod 777 -R /home/用户名/sharell /home/用户名/ | grep share 

这三条命令的意思分别是:

1.创建共享文件夹,在 /home/用户名 下面,创建一个叫share的文件夹,专门做FTP共享目录。

注:以上的用户名就是你自己电脑本身的用户名,如Administrator这样的名称,每个人的都不一定相同,要根据自己的电脑来进行设置。

2.赋予最高权限(可读、可写、可删)给这个共享文件夹开最大权限,所有人都能读、写、新建/删除文件。-R表示文件夹里边所有内容也一起授权。

3.检查文件夹是否创建成功,查看/home/用户名/目录,只显示名字带share的内容,用来确认文件夹创建成功。

三、创建登录白名单并添加用户(使用本机登录用户名)

1.打开终端,执行以下命令,创建并编辑FTP登录白名单文件:

sudo vim /etc/vsftpd.chroot_list

2.按 i 进入编辑模式,输入本机系统登录用户名,完成后按 Esc 键退出编辑,输入 :wq 并回车,保存并退出。

3.执行以下命令,查看并确认用户名已正确写入:

cat -n /etc/vsftpd.chroot_list

四、备份vsftpd配置文件(重要)

执行以下命令,对原配置文件进行备份,避免修改出错后无法恢复:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

备份配置文件这一步一定要进行操作,不然配置出错后想要恢复默认配置很麻烦。如果出现错误,想要恢复成默认配置可以使用以下命令把刚才备份的文件覆盖恢复即可:

sudo cp /etc/vsftpd.conf.bak /etc/vsftpd.conf

然后重启服务生效:

sudo systemctl restart vsftpd

五、修改vsftpd配置文件

1.执行命令编辑配置文件:

sudo vim /etc/vsftpd.conf

2.按 i 键进入编辑模式。

3.找到以下配置项,删除行首的 # 取消注释,确保参数如下:

write_enable=YES

允许FTP用户上传、修改、删除文件(开启写入权限)。

chroot_list_file=/etc/vsftpd.chroot_list

指定用户限制名单,只允许列表内的用户登录FTP,更加安全。

utf8_filesystem=YES

开启UTP-8编码,解决中文文件名乱码问题。

4.在配置文件末尾,新增以下两项内容:(自定义共享目录和FTP端口)

local_root=/home/用户名/share

指定FTP用户登录后直接进入的共享目录,所有上传下载都在此文件夹。我演示用的这台电脑用户名是adminsys所以用户名位置被替换为adminsys。

listen_port=12121

自定义FTP服务端口为12121(不使用默认21端口,更安全)。

5.键入 Esc 键退出编辑模式,键入英文冒号 : ,然后输入 wq ,按下回车键,保存并退出。

六、重启并查看vsftpd服务状态

1.执行以下命令重启vsftpd服务,使配置生效:

sudo systemctl restart vsftpd

2.执行以下命令查看服务运行状态,确认启动成功:

sudo systemctl status vsftpd

七、关闭防火墙

执行以下命令清空防火墙规则,放行FTP连接:

sudo iptables -F

八、关闭联网控制策略

常见问题快速排查

1.提示“无效的文件名”:

○ 检查 utf8_filesystem=YES 是否开启

○ 客户端设置为 UTF-8 编码

○ 确认共享目录权限为 777 且所有者为登录用户

2.连接不上/超时:

○ 检查防火墙是否放行12121端口和被动端口范围

○ 确认vsftpd服务处于active(running)状态

3.上传/写入失败:

○ 检查write_enable=YES是否开启

○ 确认共享目录权限和chroot配置正确

配置完成后可以使用电脑登录ftp服务器进行验证,我们也可以将其配置为打印机FTP扫描的接收端。