标签:拓扑 quit src oss ESS ftp软件 remote 数据 none
嗯~点关注不迷路
图1-19 FTP主动模式示意图
基本原理
FTP(文件传输协议)的特殊性:
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:
一个控制连接(control connection) ,它使用服务器的21端口,生存期是整个FTP会话时间;另外一个传输数据为工作在端口20的连接
主动模式
PORT模式即主动模式,工作原理以及步骤:1)FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录;2)登录成功后使用命令查看或者准备索取数据;3)客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;4)FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据。该工作工程如图1-19所示。在华为设备上实现FTP也是该模式,我们在华为设备上实现一个基本的FTP文件传输(很多时候用于备份或者升级VRP系统文件的场景,本位置拓扑可参考图1-13)
服务器端(地址为12.1.1.2):
ftp server enable
aaa
local-user ftp1 password cipher %$%$h;oSNQ<7#B2!>vNyIO;T7Ucl%$%$
local-user ftp1 privilege level 15
local-user ftp1 ftp-directory flash:
local-user ftp1 service-type ftp
客户端测试:
<AR1>ftp 12.1.1.2
Trying 12.1.1.2 ...
Press CTRL+K to abort
Connected to 12.1.1.2.
220 FTP service ready.
User(12.1.1.2:(none)):ftp1
331 Password required for ftp1
Enter password:
230 User logged in.
[AR1-ftp]
[AR1-ftp]get ssl***.zip #从R2下载文件
如上的例子我们可以查看报文可以清晰的看到FTP21端口的控制命令和FTP 20端口的FTP数据传输
图1-20 FTP主动模式工作在端口21的控制连接
图1-21 FTP主动模式工作在端口20的数据传输
小技巧:FTP的主动模式是传统的FTP方式。在此,考生可以参考图解向考官表明该过程。另外给大家分享一个乾颐堂作业体系中一名学员针对FTP作业的故事:FTP的21端口号就像员工的老大,老大让做什么就做什么,而FTP的20端口号就像下面的员工一样,照做就是。这也是一个很生动的例子
为了保持完整性,我们在此也简要描述一下FTP的被动模式,即PASV模式,是Passive的缩写,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。区别就在于是服务器开放了一个随机端口(而非20)。
实际上FTP的主动模式或者被动模式可以在FTP软件定义
一个华为VRP上被动FTP的例子
[R1]ftp server enable //服务器地址10.0.0.1
aaa
local-user ender password cipher %$%$BdT"SX\el/M~v\YVt;%%C1D{%$%$
local-user ender privilege level 15
local-user ender ftp-directory flash:
local-user ender service-type ftp
客户端测试(客户端地址10.0.0.3)
<SW1>ftp 10.0.0.1
Trying 10.0.0.1 ...
Press CTRL+K to abort
Connected to 10.0.0.1.
220 FTP service ready.
User(10.0.0.1:(none)):ender
331 Password required for ender.
Enter password:
230 User logged in.
[ftp]
[ftp]
[ftp]
[ftp]pass
[ftp]passive //切换到被动模式
Info: Succeeded in switching passive on.
[ftp]dir
227 Entering Passive Mode (10,0,0,1,198,23).
125 ASCII mode data connection already open, transfer starting for *.
drwxrwxrwx 1 noone nogroup 0 Sep 28 12:46 dhcp
-rwxrwxrwx 1 noone nogroup 121802 May 26 2014 portalpage.zip
-rwxrwxrwx 1 noone nogroup 2263 Sep 28 12:44 statemach.efs
-rwxrwxrwx 1 noone nogroup 828482 May 26 2014 ssl***.zip
drwxrwxrwx 1 noone nogroup 0 Sep 28 12:46 .
226 Transfer complete.
[ftp]get statemach.efs
Warning: The size of file statemach.efs is as same as the remote one. Overwrite it? [Y/N]:y
227 Entering Passive Mode (10,0,0,1,194,182).
125 ASCII mode data connection already open, transfer starting for statemach.efs.
226 Transfer complete.
FTP: 2263 byte(s) received in 11.830 second(s) 191.29byte(s)/sec.
[ftp]quit
主动方式是指在建立数据连接时由服务器主动发起连接请求,并要求客户端和服务器端同时打开端口以建立连接;被动方式是指在建立数据连接时由客户端主动发起连接请求,且只要求服务器端产生一个连接相应端口的进程
通过报文理解被动模式
FTP主动模式和被动模式在VRP上实现(实验、报文和理论解析)
标签:拓扑 quit src oss ESS ftp软件 remote 数据 none
原文地址:http://blog.51cto.com/enderjoe/2287361