centos - ftp

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客户端从服务器的通讯内容中获取的是服务器的内网地址, 从网络连接中获取到的是外网地址, 实际应该使用外网地址。

常见的客户端软件默认使用被动模式。

 

你可能感兴趣的:(centos - ftp)