CentOS7安装和配置ftp服务
一、ftp简介
ftp(File Transfer Protocol文件传输协议)是基于TCP/IP协议的应用层协议,用于文件的传输,包括ftp服务器(或服务端)和ftp客户端。
ftp客户端与服务器创建网络连接,请求登录服务器,登录成功后,就可以进行文件传输,主要包括开载文件和上传文件两种操作。
ftp协议很古老,有人说它技术太落后,不安全,对于这种说法我不于评论。但是,ftp的应用场景仍非常广泛,这是不争的事实。
在Linux系统中,ftp客户端和ftp服务器是操作系统自带的,但不一定会缺省安装。
二、安装ftp软件包
在CentOS7中,采用yum来安装ftp软件包,包括ftp服务器和ftp客户端。如果已经安装,再次执行yum就会把软件包升级到最新版本。
1、安装ftp服务器
yum -y install vsftpd
2、安装ftp客户端
yum -y install ftp
三、配置ftp服务器
ftp的传输模式有被动模式和主动式两种,缺省是被动模式,主动模式的应用场景极少,为了方便表达,在接下来的内容中只介绍被动模式,主动模式在本文中也有介绍。
1、关闭SELINUX
修改/etc/selinux/config文件,把SELINUX参数的值改为disabled。
SELINUX =disabled
重启linux系统或执行setenforce 0使修改马上生效。
2、配置ftp数据端口参数
ftp的数据端口也称为高端口,在/etc/vsftpd/vsftpd.conf文件中配置,由pasv_min_port和pasv_max_port两个参数指定,如果文件中没有这两个参数,手工的加进去。
pasv_min_port=5000 # 高端口范围的最小值。
pasv_max_port=5500 # 高端口范围的最大值。
3、开通防火墙
开通防火墙的方法有两种:
1)开通ftp服务。
firewall-cmd --zone=public --add-service=ftp --permanent
2)开通ftp服务需要的端口,21是控制端口,5000-5500是数据端口范围,也就是上一节中在/etc/vsftpd/vsftpd.conf文件中配置的pasv_min_port和pasv_max_port参数。
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=5000-5500/tcp --permanent
重启防火墙:
systemctl restart firewalld.service
4、启动vsftpd服务
ftp服务器的服务名是vsftpd,相关的操作如下:
systemctl start vsftpd # 启动服务。
systemctl stop vsftpd # 停止服务。
systemctl restart vsftpd # 重启服务。
systemctl status vsftpd # 查看服务状态。
systemctl enable vsftpd # 启用开机自动动vsftpd服务。
systemctl disable vsftpd # 禁用开机自动动vsftpd服务。
5、云平台访问策略配置
如果您购买的是云服务器上,需要登录云服务器提供商的管理平台开通访问策略(或安全组),开通21和高端口的访问策略。
不同云服务器提供商的管理平台操作方法不同,具体操作方法阅读操作手册、或者百度,或者咨询云服务器提供商的客服。
如果云服务器的ftp服务不对建立数据会话,在百度中输入“被动模式下FTP不能建立数据会话问题“可以找到解决问题的方法,目前的阿里云服务器就存在这个问题。
四、主动模式和被动模式
ftp有两种模式,分别是port模式(主动模式)和pasv模式(被动模式)。
1、主动模式
客户端给服务端的21端口发命令说:我要输传文件,我已经打开了自己的20端口,您向我的20端口发起TCP连接,我们来传输文件。服务端知道后,就会主动向客户端的20端口发起连接,连接成功后开始传输文件。

在主动模式下,ftp请求是由客户端TCP连接的;传输数据的时候,TCP连接却是由服务端发起的。
2、被动模式
客户端给服务器端的21端口发命令说:我要传输文件。服务器端知道后打开一个空闲的高端口,然后告诉客户端,我已经打开了某某端口,您向我这个端口发起TCP连接,然后我们用这个端口来传输文件。

在被动模式下,不管是ftp命令,还是传输数据,都是由客户端向服务端发起TCP连接。
3、从主动模式到被动模式
在很久以前每台电脑都有一个ip地址,ftp只有主动模式,后来出现了共享上网技术,所以也就有了下面的问题。
共享上网就是多台电脑共享一个公网ip去使用internet,例如某个局域网出口的公网ip是210.33.25.108,当内网用户(192.168.1.100)访问外网的ftp服务器时,如果采用主动模式,192.168.1.100告诉了ftp服务器我需要某个文件和我打开了20端口之后,由于共享上网的原因,192.168.1.100在出网关的时候ip已经被转换成了210.33.25.108,所以ftp服务器端收到的消息是210.33.25.108需要某个文件并打开了20端口,ftp服务器就会尝试连接210.33.25.108的20端口,这样当然不会成功。
在主动模式中,ftp的两个端口是相对固定的,如果命令端口是n的话,那数据端口就是n-1,也就是说默认情况下,命令端口是21,数据端口就是20,如果您把ftp服务的端口改成了521,那么数据端口就是520,这样配置防火墙很方便,只需要开通两个端口就可以了。但是,在共享上网的环境中无法使用主动模式。
在被动模式中,默认情况下命令端口是21,数据端口是随机分配的。但是,被动模式中数据端口的范围可以配置,防火墙也可以配置端口范围。
五、版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!
CentOS7安装和配置ftp服务的更多相关文章
- CentOS7安装和配置FTP
1. 安装vsftpd #安装vsftpd yum install -y vsftpd #设置开机启动 systemctl enable vsftpd.service # 重启 service vsf ...
- Centos7安装及配置DHCP服务
DHCP服务概述: 名称:DHCP - Dynamic Host Configuration Protocol 动态主机配置协议. 功能:DHCP(Dynamic Host Configurati ...
- CentOS7安装及配置vsftpd (FTP服务器)
CentOS7安装及配置vsftpd (FTP服务器) 1.安装vsftpd 1 yum -y install vsftpd 2.设置开机启动 1 systemctl enable vsftpd 3. ...
- CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)
本文章向大家介绍CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置),主要包括CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)使用实例.应用 ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 6.在计算节点上安装并配置计算服务Nova
安装和配置计算节点这个章节描述如何在计算节点上安装和配置计算服务. 计算服务支持几种不同的 hypervisors.为了简单起见,这个配置在计算节点上使用 :KVM <kernel-based ...
- 配置FTP服务
配置FTP服务 1.安装FTP服务器(默认已安装) 服 务:vsftpd 位 置:光盘1 软 件:vftpd-2.0.1-5.i386.rpm 配 置:/etc/vsftpd/vsftpd.conf ...
- Centos7安装并配置mysql5.6完美教程
Centos7安装并配置mysql5.6完美教程 Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息.然而,网上关于Linux安装 ...
- Windows Server 2003 下如何安装及配置 FTP 服务器(转)
Windows Server 2003 下如何安装及配置 FTP 服务器 一.安装 FTP 服务器组件: 写在这里的一点 : 安装及配置 FTP 服务器之前 , 必须先手工配置服务器本身的 IP 地址 ...
- 【运维技术】VM虚拟机上使用centos7安装docker启动gogs服务教程【含B站视频教程】
VM虚拟机上使用centos7安装docker启动gogs服务视频教程 BiliBili视频教程链接飞机票,点我 使用VMware Workstation安装Centos7 MinMal系统 第一步: ...
随机推荐
- 模拟HTTP请求超时时间设置
HTTP请求有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间(请求资源超时时间). 使用curl命令行 连接超时时间用 --connect-timeout 参数来指定 数据传输的最大 ...
- yum配置与使用
yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件. 一.yum的配置文件 [main] cached ...
- 参考C# 使用 System.Web.Script.Serialization 解析 JSON
参考C# 使用 System.Web.Script.Serialization 解析 JSON 使用json需要引用到System.Web.Script.Serialization.习惯在解决方案右键 ...
- 达拉草201771010105《面向对象程序设计(java)》第十六周学习总结
达拉草201771010105<面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识 1.程序与进程的概念: (1)程序是一段静态的代码,它是应用程序执行的蓝 本. (2)进 ...
- 使用HBuilder开发移动APP:ajax调用接口数据
既然要做APP,与接口交互式少不了的,除非只是想做一个纯静态的APP.所以html5+的环境准备好后,我最先开始研究的就是如何与接口交互. 使用HBuilder新建示例教程后,里面会有一个ajax(网 ...
- 学习经典算法—JavaScript篇(一)排序算法
前端攻城狮--学习常用的排序算法 一.冒泡排序 优点: 所有排序中最简单的,易于理解: 缺点: 时间复杂度O(n^2),平均来说是最差的一种排序方式: 因为在默认情况下,对于已经排好序的部分,此排序任 ...
- PYTHON 第二天学习记录
- 3,Java中的文件IO流
1,File类 ··· 概念:File对象可以表示一个文件或目录.可以对其进行增删改查. ··· 常用方法: File f = new File("."); 判断是 ...
- 《JavaScript 模式》读书笔记(1)— 简介
哇,看了自己最近的一篇文章,其实那时候刚接触Jest,啥也不会(虽然现在其实也一样不会,嘿嘿),就像记录下工作中遇到的一些问题,其实,后来的一些发现吧,那两篇文章写的其实是有一些问题的.希望不会给大家 ...
- django setting文件那些事
1.设置语言.时区 2.设置新建的用户表作为默认用户表 3.利用apps文件夹收纳app 新建python package apps,然后把app放在该文件夹下 然后setting中添加如下代码: 4 ...