用来传输文件的协议-FTP

一.FTP协议--文件传输协议

1.了解FTP协议

(1)FTP服务是用来传输文件的协议

FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组中的协议之一,用于互联网上的控制文件的双向传输。是传输文件到Linux服务器的工具。

常用的传输文件到Linux服务器的工具有以下几种:

vsftp(FTP)、sftp(SSH)、samba(CIFS)、winscp、lrzsz(sz传出、rz传入)

(2)FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令

(3)FTP数据连接分为主动模式和被动模式

主动模式:FTP服务端接收下载控制命令后,会主动从tcp/20号端口发送数据传输给客户端

主动模式:客户端给服务端的21控制端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会连接客户端已打开的那个数据端口把东西传给客户端,这就是主动模式,可理解为服务端主动给客户端传输文件。

 被动模式:FTP服务端接收下载控制命令后,会开启一个空闲端口被动等待客户端数据传输连接

被动模式:客户端给服务器端的21端口发命令说,我要下载什么什么,服务端知道后,就打开一个空闲的端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧。于是客户端就从那个端口进去拿文件了,这就是被动模式,可理解为服务端被客户端拿走了东西。

 2.FTP工具的安装

(1)vsftp 的安装

[root@192 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@192 ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                 1913552       0  1913552    0% /dev
tmpfs                    1930628       0  1930628    0% /dev/shm
tmpfs                    1930628   12820  1917808    1% /run
tmpfs                    1930628       0  1930628    0% /sys/fs/cgroup
/dev/mapper/centos-root 37202180 4526604 32675576   13% /
/dev/sda1                 520868  184528   336340   36% /boot
tmpfs                     386128      64   386064    1% /run/user/0
/dev/sr0                 4635056 4635056        0  100% /mnt
[root@192 ~]# cd /mnt/Packages/
[root@192 Packages]# ls | grep vsftp
vsftpd-3.0.2-29.el7_9.x86_64.rpm
[root@192 Packages]# rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm
警告:vsftpd-3.0.2-29.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.2-29.el7_9            ################################# [100%]

(2)vsftp 文件存放的位置

[root@192 Packages]# rpm -qpc vsftpd-3.0.2-29.el7_9.x86_64.rpm
警告:vsftpd-3.0.2-29.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@192 Packages]# cd /etc/vsftpd/
[root@192 vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

(3)vsftp 服务的配置文件

                   #vsftpd.conf文件中基本配置的含义 
anonymous_enable=YES    #默认允许匿名用户登录

local_enable=YES        #允许本地用户登录

write_enable=YES        #是否开放ftp写的权限

local_umask=022         #本地用户上传的文件的默认权限值

anon_upload_enable=YES  #允许匿名用户上传文件

anon_mkdir_write_enable=YES   #允许用户上传和创建目录

anon_other_write_enable=YES   #允许用户其他的写入操作:删除、重命名和覆盖

(4)修改配置文件的操作

之后重启 vsftp 服务即可

[root@192 vsftpd]# systemctl start vsftpd
[root@192 vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@192 vsftpd]# netstat -lntp | grep vsftpd         #查看软件使用的端口号

tcp6       0      0 :::21                   :::*                    LISTEN      12473/vsftpd 

(5)验证 vsftpd 的使用-win10为例

【1】要先将win10的网络设置为服务端一样的NAT模式

【2】尝试是否连接和连接操作

C:\Users\liu>ping 192.168.10.10             #查看是否能接收到主机的IP

正在 Ping 192.168.10.10 具有 32 字节的数据:
来自 192.168.10.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.10 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.10.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.10 的回复: 字节=32 时间=1ms TTL=64

192.168.10.10 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 1ms,平均 = 0ms
 
C:\Users\liu>ftp 192.168.10.10          #连接到主机
连接到 192.168.10.10。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.10.10:(none)): ftp         #设置用户类型
331 Please specify the password.  
密码:                                   #创建密码
230 Login successful.
ftp> pwd                                #查看当前位置
257 "/"                    #‘/’目录即为在vsftpd.conf文件内设置的目录/var/ftp/
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
test1
226 Directory send OK.
ftp: 收到 15 字节,用时 0.00秒 15000.00千字节/秒。

(6)FTP的一些常用命令

                #ftp 的一些常用指令
ftp> pwd                #查看当前的位置
ftp> ls                #查看当前目录的信息
ftp> cd pub            #切换到pub 目录
ftp> get 文件名        #下载文件到本地目录
ftp> put 文件名        #上传文件到主机ftp目录
ftp> quit             #退出

【1】get 命令 下载主机文件到目录

ftp> get lxp.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for lxp.txt (15 bytes).
226 Transfer complete.
ftp: 收到 15 字节,用时 0.00秒 15000.00千字节/秒。
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
lxp.txt
pub
test1
226 Directory send OK.
ftp: 收到 24 字节,用时 0.02秒 1.50千字节/秒。
ftp>

【3】cd 命令  切换目录

(7)关闭匿名用户登录

C:\Users\liu\Desktop>ftp 192.168.10.10   
连接到 192.168.10.10。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.10.10:(none)): ftp      #匿名用户登录失败
331 Please specify the password.
密码:
530 Login incorrect.
登录失败。
ftp> quit
221 Goodbye.


C:\Users\liu\Desktop>ftp 192.168.10.10
连接到 192.168.10.10。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.10.10:(none)): zhangsan    #非匿名用户登录成功
331 Please specify the password.
密码:
230 Login successful.
ftp>

3.图形化界面登录FTP

4.设置黑名单和白名单

userlist_enable=YES     #启用用户列表

 进入到文件 vsftpd.conf 中,到最底部加入下图的配置,黑名单和白名单的用户列表在 user_list 文件中,

若是想要 user_list 文件成为黑名单,进入到文件 vsftpd.conf 中添加userlist_enable=YES

若是想要 user_list 文件成为白名单,进入到文件 vsftpd.conf 中添加userlist_enable=NO

拓展:其他配置文件含义

listen_port=2121      #设置监控端口
max_clients=100       #最大连接数
max_per_ip=5          #每个IP的最大连接数

五 .总结:

1.FTP协议采用的是TCP作为传输协议,21号端口用来传输FTP控制命令的,20号端口用来传输文件数据的

2.了解FTP的传输模式:主动模式和被动模式

3.知道黑白名单的设置,黑名单,是名单上的用户被拒绝访问。白名单是只有名单上的用户才可以进行访问

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FTP(File Transfer Protocol)是一种用于文件传输协议。它可以让用户通过网络文件从一个计算机传输到另一个计算机。FTP服务器就是用来存储和管理这些文件服务器FTP服务器可以分为两种类型:匿名FTP服务器和非匿名FTP服务器。匿名FTP服务器不需要用户进行身份验证,任何人都可以访问并下载其中的文件。非匿名FTP服务器需要用户进行身份验证,只有经过授权的用户才能访问其中的文件FTP服务器的基本原理是:用户使用FTP客户端软件连接到FTP服务器,并通过FTP协议进行文件传输FTP服务器会将用户的请求解析为文件操作,并根据用户的权限决定是否允许进行该操作。如果请求合法,FTP服务器将会执行相应的操作并返回结果给用户。 FTP服务器可以使用不同的端口号进行通信,常用的端口号是21。用户可以通过FTP客户端软件连接到FTP服务器,并进行上传、下载、删除等文件操作。FTP服务器也可以支持匿名访问,用户可以使用“anonymous”作为用户名,并输入电子邮件地址作为密码进行访问。 FTP服务器还可以支持多种安全协议,如SFTP(Secure File Transfer Protocol)和FTPS(FTP over SSL/TLS)。这些协议可以对数据进行加密传输,保证数据的安全性。 总之,FTP服务器是一种非常实用的网络文件传输工具,可以方便地进行文件传输和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值