CentOS7安装和配置ftp服务,ftp命令详解

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

3、重启防火墙:

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端口发起连接,连接成功后开始传输文件。

CentOS7安装和配置ftp服务,ftp命令详解_第1张图片

在主动模式下,ftp请求是由客户端TCP连接的;传输数据的时候,TCP连接却是由服务端发起的。

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

CentOS7安装和配置ftp服务,ftp命令详解_第2张图片

在被动模式下,不管是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,数据端口是随机分配的。但是,被动模式中数据端口的范围可以配置,防火墙也可以配置端口范围

ftp命令详解

一、安装ftp客户端软件包

在CentOS7中,采用yum来安装ftp客户端软件包,如果已经安装,再次执行yum就会把软件包升级到最新版本。

yum -y install ftp

二、ftp的用户

缺省情况下,ftp服务器操作系统用户名/密码也是ftp客户端登录的用户名/密码。root用户的权限过大,不允许登录ftp服务器。

三、登录服务器

方法一:输入​​ftp 服务器ip地址​​,回车后根据提示输入用户名和密码,如下图:
CentOS7安装和配置ftp服务,ftp命令详解_第3张图片
方法二:输入​​ftp​​​,用​​open 服务器ip地址​​,连上服务器后再输入用户名和密码,如下图:
CentOS7安装和配置ftp服务,ftp命令详解_第4张图片

方法三:输入​​ftp -n 服务器ip地址​​​,再输入​​user 用户名 密码登录​​,如下图:

CentOS7安装和配置ftp服务,ftp命令详解_第5张图片

四、切换工作目录

注意,如果目录名中有特殊符号,如空格,可以用双引号把目录名包含起来。

1、查看服务器工作目录

pwd

2、切换服务器工作目录

cd 目录名

3、切换本地工作目录

lcd 目录名

五、查看服务器上的目录和文件

1、列出目录或文件名的详细信息

ls  目录或文件名
dir 目录或文件名

ls和dir都可以用于查看目录和文件信息,常用ls,语法和Linux的ls命令相同。

CentOS7安装和配置ftp服务,ftp命令详解_第6张图片

2、仅列出目录和文件名

nlist 目录或文件名 [本地文件名]

1)列出/freecplus目录下的匹配*.h的文件名信息。

CentOS7安装和配置ftp服务,ftp命令详解_第7张图片

2)列出/freecplus目录下的匹配*.h的文件名信息,结果输出到本地的/tmp/freecplus.list文件中。

CentOS7安装和配置ftp服务,ftp命令详解_第8张图片

查看/tmp/freecplus.list内容。

CentOS7安装和配置ftp服务,ftp命令详解_第9张图片

六、下载/上传文件

1、文件传输入的模式

ftp的传输模式分为二进制和ASCII码两种模式,二进制模式可以传输任何文件,包括压缩包、可执行程序、图片、视频、音频等,而ASCII模式只能传输.txt、.htm等ascii码文件(文本文件)。在实际开发中,不管什么文件,都用二进制方式传输文件。

1)查看当前的传输模式。

type

2)设定传输模式为二进制。

bin

3)设定传输模式为ASCII。

ascii

示例:
CentOS7安装和配置ftp服务,ftp命令详解_第10张图片

2、下载文件

1)下载单个文件。

get/recv 服务器文件名 [本地文件名]

使用说明:

a)下载文件用get和recv都可以。

b)文件名不允许用通配符。

c)服务器文件名和本地文件名可以用绝对路径,如果不写路径,表示当前工作目录。

d)如果本地文件名省略不写,表示把服务器文件下载到本地的当前工作目录,文件名与服务器文件名相同。

2)下载多个文件。

mget 服务器文件1 服务器文件2 服务器文件3 …… 服务器文件n

使用说明:

a)待下载的文件名,可以一一列出来(用空格分隔),也可以用通配符。

b)下载的文件,存放在本地当前工作目录中。

c)下载文件时,会一一提示,如果想关闭都显示信息,先输入prompt命令。

prompt

3、上传文件**

1)上传单个文件。

put/send 本地文件名 [服务器文件名]

a)上传文件用put和send都可以。

b)文件名不允许用通配符。

c)本地文件名和服务器文件名可以用绝对路径,如果不写路径,表示当前工作目录。

d)如果服务器文件名省略不写,表示把本地文件上传到服务器的当前工作目录,文件名与本地文件名相同。

2)上传多个文件。

mput 本地文件1 本地文件2 本地文件3 …… 本地文件n

使用说明:

a)待上传的文件名,可以一一列出来(用空格分隔),也可以用通配符。

b)上传的文件,存放在服务器当前工作目录中。

c)上传文件时,会一一提示,如果想关闭都显示信息,先输入prompt命令。

prompt

七、其它ftp命令

1)重命名服务器上的文件

rename 旧文件名 新文件名

2)删除ftp服务器上单个文件

delete 文件名

3)删除多个文件。

mdelete 文件名1 文件名2 文件名3 …… 文件名n

4)在服务器上创建目录。

mkdir pathname

5)删除服务器上的目录。

rmdir pathname

6)切换传输模式。

passive

7)显示帮助信息。

help [命令名]

显示ftp命令的帮助信息,如果不输入命令名,则显示全ftp命令的帮助信息。

8)退出ftp。

bye

八、Windows的ftp客户端

在Windows的DOS命令提示符下输入ftp命令,但是不好用。

打开资源管理器,输入:ftp://服务器ip地址,如下图:

CentOS7安装和配置ftp服务,ftp命令详解_第11张图片

在空白的位置点鼠标右键,选择登录菜单,如下图:

CentOS7安装和配置ftp服务,ftp命令详解_第12张图片

输入用户名和密码登录ftp服务器,如下图:

CentOS7安装和配置ftp服务,ftp命令详解_第13张图片

接下来的操作就像windows的目录文件操作一样了。

你可能感兴趣的:(其他,服务器,linux,centos,网络协议,tcp/ip)