01、参考信息
CentOS7.0快速搭建HTTP服务器和仅供授权用户登陆的FTP服务器
centos7——安装ftp
vsftpd.conf.5配置文件手册
Vsftp的PASV mode(被动模式传送)和Port模式及 Linux下VsFTP配置全方案
CentOS下vsftp设置、匿名用户&本地用户设置、PORT、PASV模式设置
本文在阿里云ECS服务器中测试, centos系统没有启动防火墙, 内容显得简单
02、下载安装
[root@epimetheus ~]# yum update #更新yum [root@epimetheus ~]# yum install -y vsftpd #下载并安装
03、在centos系统中创建用户ftp01, 并将它添加至用户组ftp, 将目录/var/www分配给这个用户, 然后设置密码
[root@epimetheus ~]# useradd -g ftp -M -d /var/www -s /sbin/nologin ftp01 [root@epimetheus ~]# passwd ftp01
04、在阿里云的"安全组规则"中设置"入方向 ~ 允许 ~ 全部 ~ -1/-1", 这里放行了全部的端口号, 是FTP被动模式的锅
05、启动FTP
[root@epimetheus ~]# systemctl start vsftpd.service #启动ftp [root@epimetheus ~]# systemctl enable vsftpd.service #设置ftp开机启动
06、在FileZilla中测试连接, 出现530 Login incorrect的错误提示, 编辑文件/etc/pam.d/vsftpd, 然后重启ftp
[root@epimetheus ~]# vi /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 [root@epimetheus ~]# systemctl restart vsftpd.service #重新启动ftp
FAQ:
01. Login failure: 530 Login incorrect的解决办法, 参考信息。
01)密码错误。
02)检查vim /etc/vsftpd/vsftpd.conf, 进行下面的配置
local_enable=YES
pam_service_name=vs
ftpduserlist_enable=YES
03)检查vim /etc/pam.d/vsftpd, 进行下面的配置
#auth required pam_shells.so
04)最后无论哪种情况, 重启试试
sudo service vsftpd restart
02. 服务器发回了不可路由的地址。使用服务器地址代替。
01)更改Filezilla设置, 编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。
02)使用的阿里云服务器, 服务器地址存在内外网区别。
FTP客户端从服务器的通讯内容中获取的是服务器的内网地址, 从网络连接中获取到的是外网地址, 实际应该使用外网地址。
常见的客户端软件默认使用被动模式。