乐趣区

linux 搭建FTP服务器

一:安装 FTP
yum install vsftpd -y

输入 vsftpd - v 判断是否安装成功
启动 / 停止 / 重启 FTP
systemctl start vsftpd.service(service vsftpd start) #启动
systemctl stop vsftpd.service(service vsftpd stop) #停止
systemctl restart vsftpd.service(service vsftpd restart)# 重启

二:添加 ftp 用户
1:创建 ftp 用户并设置密码
useradd vsftpd #创建 ftp 用户
passwd vsftpd #设置密码

2:配置该用户仅能通过 FTP 访问
usermod -s /sbin/nologin vsftpd

三:FTP 配置
1:FTP 的配置文件在 /etc/vsftpd/vsftpd.conf,找到以下配置并修改或添加
# 修改为 NO,关闭匿名用户访问
anonymous_enable=NO
# 将所有本地用户限制在自家目录中,NO 则不限制 (禁止切换根目录)。
chroot_local_user=YES
# 设置系统用户 FTP 主目录
local_root=/data
# 开启 charoot 写权限
allow_writeable_chroot=YES
#配置可以登录 ftp 的用户目录
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#配置 ftp 用户访问目录配置目录
user_config_dir=/etc/vsftpd/userconfig
# 配置 FTP 被动模式的端口
pasv_min_port=30000
pasv_max_port=30000

2: 配置可以登录 ftp 用户
vim /etc/vsftpd/user_list

在 /etc/vsftpd/user_list 文件中添加可以登录 ftp 的用户:

3: 配置 ftp 用户登录后访问的目录在 /etc/vsftpd 目录下新建一个 userconfig 目录,在 userconfig 目录下配置用户的登录目录,例:注意:文件名就是你想要配置的用户名称
mkdir /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/vsftpd

在 vsftpd 文件中添加
local_root=/data/test #/data/test 表示我登录 ftp 是的根目录

配置完成后重启 FTP 更新配置
systemctl restart vsftpd.service(service vsftpd restart)# 重启

四:创建测试目录及文件
创建目录
mkdir -p /data/test

设置访问权限:
chmod 777 -R /data/test

创建一个测试文件,并在里面写上 this is test!!!
vim /data/test/test.txt

五:防火墙配置
禁用防火墙或者开启 21 端口和 30000 端口
(1): 禁用防火墙
systemctl stop firewalld

(2): 开启 21 端口
#开启 21 端口
firewall-cmd –zone=public –add-port=21/tcp –permanent
#开启 30000 端口
firewall-cmd –zone=public –add-port=30000/tcp –permanent
#刷新配置
firewall-cmd –reload

六:客户端访问 FTP 服务
1:登录:https://filezilla-project.org/ 下载 FIleZilla 客户端工具
将下载下来的 FIleZilla 进行安装,安装过程十分简单,这里不介绍了
2:使用 FIleZilla 登录 ftp 服务器 3: 配置 ftp 用户登录后访问的目录
在 /etc/vsftpd 目录下新建一个 userconfig 目录,在 userconfig 目录下配置用户的登录目录,例:注意:文件名就是你想要配置的用户名称
mkdir /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/vsftpd

在 vsftpd 文件中添加
local_root=/data/test #/data/test 表示我登录 ftp 是的根目录

配置完成后重启 FTP 更新配置
systemctl restart vsftpd.service(service vsftpd restart)# 重启

四:创建测试目录及文件
创建目录
mkdir -p /data/test

设置访问权限:
chmod 777 -R /data/test

创建一个测试文件,并在里面写上 this is test!!!
vim /data/test/test.txt

五:防火墙配置
禁用防火墙或者开启 21 端口和 30000 端口
(1): 禁用防火墙
systemctl stop firewalld

(2): 开启 21 端口和 30000 端口
#开启 21 端口
firewall-cmd –zone=public –add-port=21/tcp –permanent
#开启 30000 端口
firewall-cmd –zone=public –add-port=30000/tcp –permanent
#刷新配置
firewall-cmd –reload

六:客户端访问 FTP 服务
1:登录:https://filezilla-project.org/ 下载 FIleZilla 客户端工具
将下载下来的 FIleZilla 进行安装,安装过程十分简单,这里不介绍了
2:使用 FIleZilla 登录 ftp 服务器
如上图 ftp 服务器登录成功,但是登录成功后发现,只能从 ftp 服务器上下载文件下来,无法上传上去,上传时就报:

这是由于由于 vsftpd 默认被 SELinux 拦截,解决方法:
1:首先查看 SELinux 中有关 FTP 的设置状态:
getsebool -a | grep ftp

2:设置 ftpd_full_access 为开启状态
setsebool -P ftpd_full_access=on

3:重启 vsftpd 服务,即可正常访问 FTP
systemctl restart vsftpd.service(service vsftpd restart)# 重启

退出移动版