虚拟机CentOS搭建FTP
参考阿里云文档
一、背景信息
FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:
- 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。(不常用)
- 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。
说明 大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。
FTP支持以下三种认证模式:
- 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。
- 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
- 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。
二、安装配置vsftpd
vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件
(1)安装
#安装该服务 vsftpd
yum install -y vsftpd
#设置FTP开机自启动
systemctl enable vsftpd.service
#启动FTP服务
systemctl start vsftpd.services
#查看FTP服务监听的端口
netstat -antup | grep ftp
#端口为21则安装FTP服务成功
(2)配置本地用户访问FTP服务器。
关闭防火墙:或者开启ftp对应的端口
service iptables -F
setenforce 0
在linux中创建用户 yue 密码为123
在windows中,以管理员方式打开DOS,输入
ftp 192.168.43.126 #此处为虚拟机的IP地址
输入用户名,口令即可登录FTP了。
为FTP服务创建一个Linux用户。
adduser ftp yue
passwd 123
(3)防火墙配置介绍
#第一步,查看firewall状态
systemctl status firewalld.service
firewall-cmd --state
#第二步,查看开放端口
firewall-cmd --zone=public --list-ports
#第三步,添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#第四步,务必要重载才能生效开放的端口
firewall-cmd --reload
#第五步,询问端口状态和移除端口
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --remove-port=80/tcp --permanent