CentOS搭建FTP服务

服务器:CentOS 7.2 64 位

FTP服务端:vsftpd

客户端:FileZilla

文章最后是我遇到的两个问题及解决方案

安装vsftpd

  • 安装 yum install vsftpd -y
  • 启动 service vsftpd start
  • 确认 netstat -tunlp (program name有vsftpd)
  • 测试 telnet 公网IP 21 (返回220)

配置vsftpd

输入:vi /etc/vsftpd/vsftpd.conf

按i或a进入编辑模式,底部有个insert标识,将文件中的anonymous_enable=YES改为 anonymous_enable=NO (只把YES改成NO就行了,其他不动),修改完成后按下【Esc】退出,然后在底部输入:wq!保存退出操作。

本次更改内容为:不允许匿名登录

关于linux和Xshell的更多操作请参考:

常用Linux命令

Xshell命令(常用收集)

我的linux也是入门水平,只是最近经常用才有所提高,如有错误敬请指出

添加用户

  • 添加用户 useradd -m -d /home/用户名 -s /sbin/nologin 用户名
  • 设置密码 passwd 用户名 然后输入密码即可
CentOS搭建FTP服务_第1张图片
添加用户

问题

  • 问题1:测试telnet连接不上

一般安装启动没什么问题,在windows测试连接的时候总是连接不上,后来发现是因为我启动了安全组没有配置21端口,因为服务器被攻击过一次,后来就配置了安全组,安全组中没有配置21端口。

解决方案:在安全组策略中加上21端口即可,FTP属于TCP协议。

CentOS搭建FTP服务_第2张图片
配置21端口
  • 问题2:本地ftp客户端读取目录失败,连接超时

问题出现在 PASV 命令处。原因在于 FTP 协议在部分网络架构上的不适,我用的腾讯云。

FTP 客户端默认被动模式传输,因此在通信过程中会去寻找服务器端的 IP 地址进行连接,但是由于腾讯云的外网 IP 不是直接配在网卡上,因此在被动模式下客户端无法找到有效 IP (只能找到云服务器内网 IP ,内网 IP 无法直接和外网通信),故无法建立连接。

解决方案:

  1. 将客户端传输模式改为主动即可;
  2. 如果客户端网络环境要求被动模式,输入vi /etc/vsftpd/vsftpd.conf新增这些语句:
pasv_address=外网 IP
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=2048

然后保存,重启,稍等一会儿就可以正常连接了

你可能感兴趣的:(CentOS搭建FTP服务)