按照配置进行安装后,内网可以访问,公网访问不到

yum -y install vsftpd

cat /etc/vsftpd/vsftpd.conf 

anonymous_enable=NO
local_enable=YES
local_root=/var/ftp/pub/admin
#设置以下参数,限制用户只能访问自身的主目录。
chroot_local_user=YES
#所有用户都被限制在其主目录
chroot_list_enable=YES
#启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list
#例外用户名单
allow_writeable_chroot=YES
#设置以下参数,配置FTP支持被动模式。并指定FTP服务器的公网IP地址,以及可供访问的端口范围,端口范围请根据实际环境进行设置。
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
pasv_address=xx.xx.xx.xx
#FTP服务器的公网IP地址
pasv_min_port=3000
#被动模式下的最小端口
pasv_max_port=3100
#被动模式下的最大端口

xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

需要注意的事项pam_service_name=vsftpd和下面的配置的中禁用的一行

cat /etc/pam.d/vsftpd

#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth

这两项配置缺少或者丢失会影响到公网的访问和浏览器的访问,被动模式下的最小端口和最大端口还有20,21端口要在华为云安全组放通3000-3100端口3000-3100 是自己指定的,可以设置为任意端口范围,20-21是服务端口,3000-3100是数据传输端口

重启服务

systemctl restart vsftpd

systemctl enable vsftpd

设置权限

搭建的是两个用户  一个admin可以上传下载   一个是ftpadmin只能下载


设置ftpadmin只有下载的权限

setfacl -m  u:ftpadmin:rx -R /var/ftp/

设置admin有上传下载的权限

setfacl -m  u:admin:rwx -R /var/ftp/

取消用户对该目录的限制

setfacl -b  u:admin:rwx -R /var/ftp/

然后进行访问

内网访问 ftp 10.168.0.3 输入用户名和密码

公网访问 ftp xx.xx.xx.xx 输入用户名和密码

centos7.9 搭建ftp服务_用户名