CentOS7安装及配置vsftpd-精简绝版

卸载已经安装的vsftpd(无安装过跳过)

  • 查看是否已经安装vsftpd

命令1: # rpm -q vsftpd
命令2:# rpm -e vsftpd-3.0.2-25.el7.x86_64

全局安装

命令:# yum -y install vsftpd

设置开机启动

命令:# systemctl enable vsftpd

启动vsftpd服务器

命令:# systemctl start vsftpd.service

开放21端口

命令1:# firewall-cmd --zone=public --add-port=21/tcp --permanent
命令2:# firewall-cmd --permanent --zone=public --add-service=ftp
命令3:# firewall-cmd --reload

添加FTP用户

  • 表示新增一个名为ftpuser(用户名),

  • 且指定上传目录在/home/captain下

命令1:# useradd -g root -d /home/captain -s /sbin/nologin ftpuser

备注:如果后期想变更此用户的上传目录到
(/run/media/root/xxx/wwwroot/xxx.org),
请使用下面的命令:

命令:# usermod -d /run/media/root/captain/wwwroot/xxx.org ftpuser

设置用户密码**

命令: # passwd ftpuser

输入怎么想设置的密码则可。

配置selinux允许ftp访问home和外网访问

命令1:# setsebool -P allow_ftpd_full_access on
命令2:# setsebool -P ftp_home_dir on

设置权限(此用户可以访问整个主机目录,后面备注设置权限问题)

命令:# chown -R ftpuser:root /home/captain

修改VSFTP配置文件,禁用匿名登录

  • 设置anonymous_enable=NO

命令1: # cd /etc/vsftpd
命令2: # vim vsftpd.conf

重启vsftpd服务器

命令:# systemctl restart vsftpd.service

补充说明

(1)当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

(2)从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,

则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录

的写权限,注意把目录替换成你自己的。

或者你可以在vsftpd的配置文件中增加下列一项:

allow_writeable_chroot=YES

(3)使用cmd命令容器发生

500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list错误

解决:修改vsftpd.conf配置文件,注释以下内容


(4)本地使用ftpClient调试是发生

java.net.SocketException: Connection reset异常

解决:在本地电脑执行以下命令

netsh advfirewall set global StatefulFTP disable

vsftpd常用命令

# 启动服务
systemctl start vsftpd.service
# 停止服务
systemctl stop vsftpd.service
# 重启服务
systemctl restart vsftpd.service
# 服务状态查看
systemctl status vsftpd.service
# 设置开机启动
systemctl enable vsftpd


声明:原创,欢迎转载~! 记得点个关注我哦~!

你可能感兴趣的:(CentOS7安装及配置vsftpd-精简绝版)