linux数据后台综合管理学习笔记(三)

第三章:基于FTP的文件传输子系统

3.1centos7配置ftp

        ftp(File Transfer Protocol文件传输协议)是基于TCP/IP 协议的应用层协议,用于文件的传输,包括ftp服务器(或服务端)和ftp客户端。

        ftp客户端与服务器创建网络连接,请求登录服务器,登录成功后,就可以进行文件传输,主要包括开载文件和上传文件两种操作。

        ftp协议很古老,有人说它技术太落后,不安全。但是在内部环境中,尤其是企业内部网络环境中,确实还存在使用FTP作为文件传输协议的情况。尽管FTP在内部网络中仍然广泛使用,但随着技术的发展和安全性的要求提升,一些组织也开始转向更安全和功能更强大的文件传输协议,如SFTP(基于SSH的安全文件传输协议)或HTTP(通过Web服务器进行文件传输)等。这些协议提供了更好的安全性和灵活性,适应了现代网络环境中对文件传输的更高要求。

        在Linux系统中,ftp客户端和ftp服务器是操作系统自带的,但不一定会缺省安装。

3.1.1安装ftp服务器和客户端

//安装服务器
yum -y install vsftpd
//安装客户端
yum -y install ftp

3.1.2配置ftp服务器 

        ftp的传输模式有被动模式和主动式两种,缺省是被动模式,主动模式的应用场景极少,为了方便表达,在接下来的内容中只介绍被动模式,主动模式在本文中也有介绍。

        1)关闭SELINUX

        SELinux 是 Linux 内核的一个安全模块,提供了强制访问控制(MAC)机制。但有时候,SELinux 的策略可能会导致某些应用程序或操作出现问题,关闭 SELinux 可能会简化配置和排除一些障碍。

        在调试和故障排除过程中,关闭 SELinux 可以帮助确定是否是 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)开通防火墙

//开通ftp服务
firewall-cmd --zone=public --add-service=ftp --permanent

//开通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

//ftp服务器的服务名是vsftpd,相关的操作如下:
systemctl start   vsftpd    # 启动服务。
systemctl stop    vsftpd    # 停止服务。
systemctl restart vsftpd    # 重启服务。
systemctl status  vsftpd    # 查看服务状态。
systemctl enable  vsftpd    # 启用开机自动动vsftpd服务。
systemctl disable vsftpd    # 禁用开机自动动vsftpd服务。

3.1.3 主动模式和被动模式

        1)主动模式

        客户端给服务端的21端口发命令说:我要输传文件,我已经打开了自己的20端口,您向我的20端口发起TCP连接,我们来传输文件。服务端知道后,就会主动向客户端的20端口发起连接,连接成功后开始传输文件。

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

        2)被动模式

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

        在被动模式下,不管是ftp命令,还是传输数据,都是由客户端向服务端发起TCP连接。

 3.2centos7配置防火墙

        防火墙技术是用于安全管理的软件和硬件设备,在计算机内/外网之间构建一道相对隔绝的保护屏障,以保护数据和信息安全性的一种技术。

        防火墙分为网络防火墙和主机防火墙。

        网络防火墙由软件和硬件组成,可以保护整个网络,价格也很贵,从几万到几十万的都有,功能非常强大,主要包括入侵检测、网络地址转换、网络操作的审计监控、强化网络安全服务等功能。

        主机防火墙只有软件部分(操作系统和杀毒软件自带),用于保护本操作系统,功能比较简单,只能防范简单的攻击。

        CentOS7的防火墙规则既可以是端口,也可以是服务。

        防火墙查看和配置以下介绍的命令,如果没有特别说明就表示需要管理员权限执行。

查看防火墙的命令

1)查看防火墙的版本。
firewall-cmd --version

2)查看firewall的状态。
firewall-cmd --state

3)查看firewall服务状态(普通用户可执行)。
systemctl status firewalld

4)查看防火墙全部的信息。
firewall-cmd --list-all

5)查看防火墙已开通的端口。
firewall-cmd --list-port

6)查看防火墙已开通的服务。
firewall-cmd --list-service

7)查看全部的服务列表(普通用户可执行)。
firewall-cmd --get-services

8)查看防火墙服务是否开机启动。
systemctl is-enabled firewalld


配置防火墙的命令

1)启动、重启、关闭防火墙服务。

# 启动
systemctl start firewalld

# 重启
systemctl restart firewalld

# 关闭
systemctl stop firewalld

2)开放、移去某个端口。

# 开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 移去80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

3)开放、移去范围端口。

# 开放5000-5500之间的端口
firewall-cmd --zone=public --add-port=5000-5500/tcp --permanent

# 移去5000-5500之间的端口
firewall-cmd --zone=public --remove-port=5000-5500/tcp --permanent

4)开放、移去服务。

# 开放ftp服务
firewall-cmd --zone=public --add-service=ftp --permanent

# 移去http服务
firewall-cmd --zone=public --remove-service=ftp --permanent

5)重新加载防火墙配置(修改配置后要重新加载防火墙配置或重启防火墙服务)。
firewall-cmd --reload

6)设置开机时启用、禁用防火墙服务。

# 启用服务
systemctl enable firewalld

# 禁用服务
systemctl disable firewalld


3.3 ftp命令详解

        客户端ip为192.168.211.128,用户名为sxixia

        服务端ip为192.168.211.131,用户名为diana

        1)登入服务器

        方式一:输入ftp+服务器ip,接着按提示输入用户名和密码。

[sxixia@localhost ~]$ ftp 192.168.211.131
Connected to 192.168.211.131 (192.168.211.131).
220 (vsFTPd 3.0.2)
Name (192.168.211.131:sxixia): diana
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

        方式二:输入ftp,再输入open+服务器ip地址,接着按提示输入用户名和密码。

[sxixia@localhost ~]$ ftp
ftp> open 192.168.211.131
Connected to 192.168.211.131 (192.168.211.131).
220 (vsFTPd 3.0.2)
Name (192.168.211.131:sxixia): diana
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

        方式三:输入ftp -n + 服务器ip地址,再输入user + 用户名 + 密码。这种方式密码是显式的,不建议使用。

[sxixia@localhost ~]$ ftp -n 192.168.211.131
Connected to 192.168.211.131 (192.168.211.131).
220 (vsFTPd 3.0.2)
ftp> user diana 密码
331 Please specify the password.
230 Login successful.
ftp> 

        2)退出服务器

        输入exit,quit,bye都行。

        3)目录操作

        查看服务器工作目录------pwd命令

ftp> pwd
257 "/home/diana"

         切换服务器工作目录------cd 目录名

ftp> cd /home/diana/Downloads
250 Directory successfully changed.
ftp> pwd
257 "/home/diana/Downloads"

         切换本地工作目录------lcd 目录名

ftp> lcd /home/sxixia/Downloads/
Local directory now /home/sxixia/Downloads

        4)查看文件/目录操作

        列出服务器目录或文件详细信息------ls,dir 目录名

ftp> ls /home/diana/Downloads
227 Entering Passive Mode (192,168,211,131,21,1).
150 Here comes the directory listing.
-rw-rw-r--    1 1000     1000          368 May 09 12:35 makefile
-rwxrwxr-x    1 1000     1000        54280 May 09 12:46 mysql
-rw-rw-r--    1 1000     1000          213 May 09 12:46 mysql.cpp
-rwxrwxr-x    1 1000     1000        11144 Apr 04 16:12 server
-rw-------    1 1000     1000         1410 Apr 04 16:05 server.cpp
226 Directory send OK.

ftp> dir .
227 Entering Passive Mode (192,168,211,131,19,148).
150 Here comes the directory listing.
-rw-rw-r--    1 1000     1000          368 May 09 12:35 makefile
-rwxrwxr-x    1 1000     1000        54280 May 09 12:46 mysql
-rw-rw-r--    1 1000     1000          213 May 09 12:46 mysql.cpp
-rwxrwxr-x    1 1000     1000        11144 Apr 04 16:12 server
-rw-------    1 1000     1000         1410 Apr 04 16:05 server.cpp
226 Directory send OK.

        仅列出服务器目录或文件名------nlist 目录或文件名 [本地文件名] 

ftp> nlist /home/diana/Downloads
227 Entering Passive Mode (192,168,211,131,20,52).
150 Here comes the directory listing.
/home/diana/Downloads/makefile
/home/diana/Downloads/mysql
/home/diana/Downloads/mysql.cpp
/home/diana/Downloads/server
/home/diana/Downloads/server.cpp
226 Directory send OK.


//列出服务器目录下的文件结果输出到本地的list文件里
ftp> nlist /home/diana/Downloads /home/sxixia/Downloads/result.list
output to local-file: /home/sxixia/Downloads/result.list? y
227 Entering Passive Mode (192,168,211,131,21,97).
150 Here comes the directory listing.
226 Directory send OK.

[sxixia@localhost ~]$ cat /home/sxixia/Downloads/result.list 
/home/diana/Downloads/makefile
/home/diana/Downloads/mysql
/home/diana/Downloads/mysql.cpp
/home/diana/Downloads/server
/home/diana/Downloads/server.cpp

        5)下载/上传文件

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

        查看当前传输类型------type

        设定传输模式为二进制------bin

        设定传输模式为ASCII------ascii

ftp> type
Using binary mode to transfer files.
ftp> bin
200 Switching to Binary mode.
ftp> ascii
200 Switching to ASCII mode.

        下载单个文件------get/recv 服务器文件名 [本地文件名]

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

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

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

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

        下载多个文件------mget 服务器文件1 服务器文件2 ......服务器文件n

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

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

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

ftp> get /home/diana/Downloads/mysql.cpp /home/sxixia/Downloads/mysql2.cpp

local: /home/sxixia/Downloads/mysql2.cpp remote: /home/diana/Downloads/mysql.cpp
227 Entering Passive Mode (192,168,211,131,20,236).
150 Opening BINARY mode data connection for /home/diana/Downloads/mysql.cpp (213 bytes).
226 Transfer complete.
213 bytes received in 0.000286 secs (744.76 Kbytes/sec)
[sxixia@localhost ~]$ ls /home/sxixia/Downloads/
mysql2.cpp  result.list

ftp> prompt
Interactive mode off.
ftp> cd /home/diana/Downloads                                             
250 Directory successfully changed.
ftp> lcd /home/sxixia/Downloads/
Local directory now /home/sxixia/Downloads
ftp> mget *
[sxixia@localhost ~]$ ls /home/sxixia/Downloads/
makefile  mysql  mysql2.cpp  mysql.cpp  result.list  server  server.cpp

        上传单个文件------put/send 本地文件名 [服务器文件名]

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

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

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

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

        上传多个文件------mput 本地文件1 本地文件2 本地文件3......本地文件n

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

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

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

ftp> put result.list result2.list 
local: result.list remote: result2.list
227 Entering Passive Mode (192,168,211,131,21,86).
150 Ok to send data.
226 Transfer complete.
153 bytes sent in 4.8e-05 secs (3187.50 Kbytes/sec)
[diana@localhost Downloads]$ ls
result2.list

ftp> prompt
Interactive mode off.
ftp> mput *
[diana@localhost Downloads]$ ls
makefile  mysql2.cpp  result2.list  server
mysql     mysql.cpp   result.list   server.cpp

        6)其他ftp命令 

        重命名服务器上的文件

        rename 旧文件名 新文件名

        删除ftp服务器上单个文件

        delete 文件名

        删除多个文件

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

        在服务器上创建目录

        mkdir pathname

       删除服务器上的目录

        rmdir pathname

        切换传输模式

        passive

        显示帮助信息

        help[命令名]

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

3.4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值