04-FTP和TFTP配置
本章节下载: 04-FTP和TFTP配置 (297.22 KB)
FTP(File Transfer Protocol,文件传输协议)用于在FTP服务器和FTP客户端之间传输文件,是IP网络上传输文件的通用协议。
FTP协议使用TCP端口20和21进行传输。端口20用于传输数据,端口21用于传输控制消息。FTP协议基本操作在RFC959中进行了描述。
FTP有两种文件传输模式:
· 二进制模式,用于传输非文本文件(比如后缀名为.app、.bin和.btm的文件)。
· ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。
当设备作为FTP客户端时,使用的传输模式用户可通过命令行修改,缺省为二进制模式;当设备作为FTP服务器时,使用的传输模式由FTP客户端决定。
FTP有两种工作方式:
· 主动方式(PORT):建立数据连接时由FTP服务器发起连接请求,当FTP客户端处于防火墙后时不适用(如FTP客户端处于私网内)。
· 被动方式(PASV):建立数据连接时由FTP客户端发起连接请求,当FTP服务器限制客户端连接其高位端口(一般情况下大于1024)时不适用。
是否使用被动方式由FTP客户端程序决定,不同FTP客户端软件对FTP工作方式的支持情况可能不同,请在使用时以软件的实际情况为准。
AC可以作为FTP服务器,也可以作为FTP客户端。
图1-1 FTP组网应用示意图
在建立FTP连接前请确保FTP服务器与FTP客户端之间路由可达,否则,连接建立失败。
当设备作为FTP服务器时,至少要开启FTP服务器功能,并配置FTP服务器的认证和授权,其它命令请根据需要选择配置。
表1-1 配置FTP服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动FTP服务器功能 |
ftp server enable |
缺省情况下,FTP服务器功能处于关闭状态 |
(可选)使用ACL(Access Control List,访问控制列表)限制哪些FTP客户端可以访问设备 |
ftp server acl { acl-number | ipv6 acl-number6 } |
缺省情况下,没有使用ACL限制FTP客户端 |
(可选)配置FTP服务与SSL服务器端策略关联 |
ftp server ssl-server-policy policy-name |
缺省情况下,没有配置SSL服务器端策略与FTP服务关联 |
(可选)配置FTP服务器的连接空闲时间 |
ftp timeout minutes |
缺省情况下,连接空闲时间为30分钟 如果在设置的连接空闲时间到期时,FTP服务器和客户端一直没有信息交互,则断开它们之间的连接 |
(可选)配置FTP服务器发送的FTP报文的DSCP优先级 |
ftp server dscp dscp-value |
二者选其一 缺省情况下,FTP服务器发送的FTP报文的DSCP优先级为0,FTP服务器发送的IPv6 FTP报文的DSCP优先级为0 |
(可选)配置FTP服务器发送的IPv6 FTP报文的DSCP优先级 |
ftp server ipv6 dscp dscp-value |
|
(可选)配置使用FTP方式同时登录设备的在线的最大用户连接数 |
aaa session-limit ftp max-sessions |
缺省的最大用户连接数为32 配置本命令后,已经在线的用户连接不会受到影响,只对新的用户连接生效。如果当前在线的用户连接数已经达到最大值,则新的连接请求会被拒绝,登录会失败 关于该命令的详细描述请参见“安全配置指导”中的“AAA” |
只有认证通过并授权成功的用户,才能通过FTP访问设备上的指定路径。
设备对FTP客户端的认证,有以下两种方式:
· 本地认证:设备作为认证服务器,在本设备上验证FTP客户端的用户名和密码是否合法。
· 远程认证:远程认证是指设备将用户输入的用户名/密码发送给远端的认证服务器,由认证服务器来验证用户名/密码是否匹配。
设备对FTP客户端的授权,有以下两种方式:
· 本地授权:设备给FTP客户端授权,指定FTP客户端可以使用设备上的某个路径。
· 远程授权:远程服务器给FTP客户端授权,指定FTP客户端可以使用设备上的某个路径。
关于认证和授权的详细配置请参见“安全配置指导”中的“AAA”。
表1-2 释放已建立的FTP连接
操作 |
命令 |
说明 |
强制释放与指定用户之间的FTP连接 |
free ftp user username |
二者必选其一 |
强制释放与指定IP地址的主机之间的FTP连接 |
free ftp user-ip [ ipv6 ] client-address [ port port-num ] |
完成上述配置后,在任意视图下执行display命令可以显示FTP服务器的配置和运行情况,通过查看显示信息验证配置的效果。
表1-3 FTP服务器显示和维护
操作 |
命令 |
查看当前FTP服务器的配置和运行情况 |
display ftp-server |
查看当前FTP登录用户的详细情况 |
display ftp-user |
· AC作为FTP服务器,Client作为FTP客户端。
· 将存储在Client上的文件temp.bin上传到FTP服务器,并使用FTP功能备份AC的启动配置文件。
· FTP客户端登录FTP服务器的用户名为abc,密码为123456。
配置前请确保Client和AC之间路由可达,IP地址如图1-2所示,具体配置步骤略。
(1) 配置AC(FTP server)
# 在AC上添加一个FTP用户abc,并设置其认证密码为123456,访问时使用的用户角色为network-admin,授权访问目录为Flash的根目录,abc可以使用的服务类型为FTP。
<Sysname> system-view
[Sysname] local-user abc class manage
[Sysname-luser-abc] password simple 123456
[Sysname-luser-abc] authorization-attribute user-role network-admin work-directory flash:/
[Sysname-luser-abc] service-type ftp
[Sysname-luser-abc] quit
# 启动AC的FTP服务功能。
[Sysname] ftp server enable
[Sysname] quit
# 删除AC中的多余文件,以保证剩余足够的空间,用于存储需要上传的文件。
<Sysname> dir
Directory of flash:
0 drw- - Jun 29 2016 18:30:38 logfile
1 drw- - Jun 21 2016 14:51:38 diagfile
2 drw- - Jun 21 2016 14:51:38 seclog
3 -rw- 2943 Jul 02 2016 08:03:08 startup.cfg
4 -rw- 63901 Jul 02 2016 08:03:08 startup.mdb
5 -rw- 716 Jun 21 2016 14:58:02 hostkey
6 -rw- 572 Jun 21 2016 14:58:02 serverkey
7 -rw- 6541264 Aug 04 2016 20:40:49 backup.bin
473664 KB total (467080 KB free)
<Sysname> delete /unreserved flash:/backup.bin
(2) 配置Client(FTP client)
# 以用户名abc、密码123456登录FTP服务器。
c:\> ftp 1.2.1.1
Connected to 1.2.1.1.
220 FTP service ready.
User (1.2.1.1:(none)): abc
331 Password required for abc.
Password:
230 User logged in.
# 将传输模式设置为ascii,并将AC的配置文件startup.cfg下载到Client本地进行备份。
ftp> ascii
200 TYPE is now ASCII
ftp> get startup.cfg back-startup.cfg
# 将传输模式设置为binary,并上传文件temp.bin到AC。
ftp> binary
200 TYPE is now 8-bit binary
ftp> put temp.bin
# 退出FTP。
ftp> bye
· 主设备和从设备共同组成IRF。主设备的成员编号为1,从设备的成员编号为2。
· IRF作为FTP服务器,Client作为FTP客户端。
· 将存储在Client上的文件temp.bin上传到FTP服务器,并使用FTP功能备份IRF的配置文件。
· FTP客户端登录FTP服务器的用户名为abc,密码为123456。
图1-3 FTP服务器典型配置组网图
如果主设备和从设备剩余的内存空间不够,请使用delete /unreserved file-url命令删除部分暂时不用的文件后再执行以下操作。
配置前请确保AC和Client之间路由可达,IP地址如图1-3所示,具体配置步骤略。
(1) IRF(FTP server)上的配置
# 在IRF上添加一个本地用户abc,并设置其认证密码为123456,访问时使用的用户角色为network-admin,授权访问目录为cfa0的根目录,abc可以使用的服务类型为FTP。
<Sysname> system-view
[Sysname] local-user abc class manage
[Sysname-luser-abc] password simple 123456
[Sysname-luser-abc] authorization-attribute user-role network-admin work-directory cfa0:/
如果要直接访问从设备cfa0的根目录,需要将“authorization-attribute work-directory cfa0:/”配置中的“cfa0:/”替换成“slot2#cfa0:/”。
[Sysname-luser-abc] service-type ftp
[Sysname-luser-abc] quit
# 启动IRF的FTP服务功能。
[Sysname] ftp server enable
[Sysname] quit
(2) Client(FTP client)的配置
# 以用户名abc、密码123456登录FTP服务器。
c:\> ftp 1.1.1.1
Connected to 1.1.1.1.
220 FTP service ready.
User(1.1.1.1:(none)):abc
331 Password required for abc.
Password:
230 User logged in.
# 将传输模式设置为ascii,并将IRF的配置文件config.cfg下载到Client本地进行备份。
ftp> ascii
200 TYPE is now ASCII
ftp> get config.cfg back-config.cfg
# 将传输模式设置为binary,并上传文件temp.bin到主设备存储介质的根目录下。
ftp> binary
200 TYPE is now 8-bit binary
ftp> put temp.bin
# 退出FTP。
ftp> bye
FTP客户端要访问FTP服务器,必须先与FTP服务器建立连接。连接的建立方式有两种,一种是使用ftp命令直接建立连接;一种是在FTP客户端视图下使用open命令间接建立连接。
在使用ftp命令建立FTP连接时,还可以进行源地址绑定。源地址绑定可以通过指定源接口(建议使用LoopBack接口或Dailer接口)或源IP地址来实现。
表1-4 建立FTP连接(IPv4组网环境)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)在IPv4组网环境下配置FTP客户端发送的FTP报文的源地址 |
ftp client source { interface interface-type interface-number | ip source-ip-address } |
缺省情况下,没有配置源地址,使用路由出接口的主IP地址作为设备发送FTP报文的源IP地址 |
退回用户视图 |
quit |
- |
在用户视图下直接登录FTP服务器 |
ftp ftp-server [ service-port ] [ dscp dscp-value | source { interface { interface-name | interface-type interface-number } | ip source-ip-address } ] * |
二者必选其一 ftp命令直接在用户视图下执行;open命令在FTP客户端视图下执行 |
在FTP客户端视图下间接登录FTP服务器 |
ftp |
|
open server-address [ service-port ] |
使用ftp client source命令指定了源地址后,又在ftp命令中指定了源地址,则采用ftp命令中指定的源地址进行通信。
表1-5 建立FTP连接(IPv6组网环境)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)在IPv6组网环境下配置FTP客户端发送的FTP报文的源地址 |
ftp client ipv6 source { interface interface-type interface-number | ipv6 source-ipv6-address } |
缺省情况下,没有配置源地址,设备自动选择IPv6 FTP报文的源IPv6地址,具体选择原则请参见RFC 3484 |
退回用户视图 |
quit |
- |
在用户视图下直接登录FTP服务器 |
ftp ipv6 ftp-server [ service-port ] [ dscp dscp-value | source { interface interface-type interface-number | ipv6 source-ipv6-address } ] * [ -i interface-type interface-number ] |
二者必选其一 ftp ipv6命令直接在用户视图下执行;open命令在FTP客户端视图下执行 |
在FTP客户端视图下间接登录FTP服务器 |
ftp ipv6 |
|
open server-address [ service-port ] |
使用ftp client ipv6 source命令指定了源地址后,又在ftp ipv6命令中指定了源地址,则采用ftp ipv6命令中指定的源地址进行通信。
当设备作为FTP客户端,与FTP服务器成功建立连接后,在FTP服务器的授权目录下,用户可以进行创建、删除文件夹等操作。
表1-6 操作FTP服务器上的目录
操作 |
命令 |
说明 |
查看FTP服务器上的目录/文件的详细信息 |
dir [ remotefile [ localfile ] ] |
二者选其一 |
ls [ remotefile [ localfile ] ] |
||
切换FTP服务器上的工作路径 |
cd { directory | .. | / } |
- |
退出FTP服务器的当前目录,返回FTP服务器的上一级目录 |
cdup |
- |
显示当前用户正在访问的FTP服务器上的路径 |
pwd |
- |
在FTP服务器上创建目录 |
mkdir directory |
- |
删除FTP服务器上指定的目录 |
rmdir directory |
- |
当设备作为FTP客户端,与FTP服务器成功建立连接后,在FTP服务器的授权目录下,用户可以通过以下操作,向FTP服务器上传或从FTP服务器下载文件,推荐使用以下步骤:
(1) 使用dir或者ls命令了解FTP服务器上的目录结构以及文件所处的位置。
(2) 删除过时文件,以便有效利用存储空间。
(3) 设置传输模式。FTP传输文件有两种模式:一种是ASCII码模式,用于传输文本文件;另一种是二进制模式,用于传输非文本文件。
(4) 使用lcd命令显示或切换FTP客户端本地的工作路径。无论使用相对路径还是绝对路径进行上传/下载操作,上传的将是该路径下的文件,文件下载后也将保存到该路径下。
(5) 进行上传/下载操作。
表1-7 操作FTP服务器上的文件
操作 |
命令 |
说明 |
查看FTP服务器上的目录/文件的详细信息 |
dir [ remotefile [ localfile ] ] |
二者选其一 |
ls [ remotefile [ localfile ] ] |
||
彻底删除FTP服务器上的指定文件 |
delete remotefile |
- |
设置FTP文件传输的模式为ASCII模式 |
ascii |
二者选其一 缺省情况下,文件传输模式为二进制模式 |
设置FTP文件传输的模式为二进制模式 |
binary |
|
切换数据的传输方式 |
passive |
缺省情况下,数据传输的方式为被动方式 |
显示或切换FTP客户端本地的工作路径 |
lcd [ directory | / ] |
- |
上传本地文件到FTP服务器 |
put localfile [ remotefile ] |
- |
下载FTP服务器上的文件 |
get remotefile [ localfile ] |
- |
在原文件的内容后面添加新文件的内容 |
append localfile [ remotefile ] |
- |
指定重传点 |
restart marker |
配合put、get、append等命令使用 |
更新本地文件 |
newer remotefile |
- |
从本地文件的尾部开始获取文件的剩余内容 |
reget remotefile [ localfile ] |
- |
重命名文件 |
rename [ oldfilename [ newfilename ] ] |
- |
当设备作为FTP客户端,与FTP服务器连接建立成功后,可以更改登录用户。
该功能通常用于不同权限用户之间的切换,用户的成功切换不会影响当前的FTP连接(即FTP控制连接、数据连接以及连接状态都不变);如果输入的用户名/密码错误,则会断开当前连接,用户必须重新登录才能继续访问FTP服务器。
表1-8 更改登录用户
操作 |
命令 |
说明 |
在现有FTP连接上重新发起FTP认证 |
user username [ password ] |
- |
当设备作为FTP客户端,与FTP服务器连接建立成功后,通过以下命令,可以帮助用户定位和诊断FTP连接过程中出现的问题。
表1-9 FTP连接的维护与调试
操作 |
命令 |
说明 |
显示FTP服务器支持的FTP相关协议命令字 |
rhelp |
- |
显示FTP服务器支持的FTP相关协议命令字的帮助信息 |
rhelp protocol-command |
- |
显示FTP服务器的状态 |
rstatus |
- |
显示FTP服务器上指定目录或文件的详细信息 |
rstatus remotefile |
- |
显示当前FTP连接的状态 |
status |
- |
显示FTP服务器的系统信息 |
system |
- |
切换FTP功能的协议信息开关 |
verbose |
缺省情况下,FTP协议信息开关处于开启状态 |
打开FTP调试信息开关 |
debug |
缺省情况下,FTP客户端调试信息开关处于关闭状态 |
清除缓存的命令应答 |
reset |
- |
当设备作为FTP客户端,与FTP服务器连接建立成功后,可以使用以下任意一条命令来断开FTP连接。
表1-10 断开FTP连接
操作 |
命令 |
说明 |
不退出FTP客户端视图的前提下,断开与FTP服务器的连接 |
disconnect |
二者选其一 在FTP客户端视图下执行 |
close |
||
断开与FTP服务器的连接,并退回到用户视图 |
bye |
二者选其一 在FTP客户端视图下执行 |
quit |
当设备作为FTP客户端,与FTP服务器连接建立成功后,可以使用以下任意一条命令显示命令或命令的帮助信息。
表1-11 显示帮助信息
操作 |
命令 |
说明 |
显示命令或命令的帮助信息 |
help [ command-name ] |
二者选其一 |
? [ command-name ] |
在完成上述配置后,可在任意视图下执行display命令,通过查看显示信息验证配置的效果。
表1-12 FTP客户端显示和维护
操作 |
命令 |
显示设备作为FTP客户端时的源地址配置 |
display ftp client source |
· AC作为FTP客户端从FTP服务器上下载文件temp.bin,并将启动配置文件上传到FTP服务器进行备份。
· 设置AC登录FTP服务器的用户名为abc,密码为123456。
图1-4 FTP客户端典型配置组网图
如果设备剩余的内存空间不够,请使用delete /unreserved file-url命令删除部分暂时不用的文件后再执行以下操作。
配置前请确保AC和FTP服务器之间路由可达,IP地址如图1-4所示,具体配置步骤略。
# 以用户名abc、密码123456登录FTP服务器。
<Sysname> ftp 10.1.1.1
Press CTRL+C to abort.
Connected to 10.1.1.1 (10.1.1.1).
220 WFTPD 2.0 service (by Texas Imperial Software) ready for new user
User (10.1.1.1:(none)): abc
331 Give me your password, please
Password:
230 Logged in successfully
Remote system type is MSDOS.
ftp>
# 将传输模式设置为binary,以便传输文件。
ftp> binary
200 TYPE is now 8-bit binary
# 将文件temp.bin从FTP服务器下载到AC。
ftp> get temp.bin
local: temp.bin remote: temp.bin
150 Connecting to port 47457
226 File successfully transferred
23951480 bytes received in 95.399 seconds (251.0 kbyte/s)
# 将AC的配置文件startup.cfg上传到FTP服务器进行备份。
ftp> ascii
200 TYPE is now ASCII
ftp> put startup.cfg back-startup.cfg
local: startup.cfg remote: back-startup.cfg
150 Connecting to port 47461
226 File successfully transferred
3494 bytes sent in 5.646 seconds (618.00 kbyte/s)
ftp> bye
221-Goodbye. You uploaded 2 and downloaded 2 kbytes.
221 Logout.
<Sysname>
· 主设备和从设备两台成员设备组成IRF。主设备的成员编号为1,从设备的成员编号为2。
· IRF作为FTP客户端从FTP服务器上下载新的文件temp.bin,并将配置文件上传到FTP服务器进行备份。
· 设置设备登录FTP服务器的用户名为abc,密码为123456。
图1-5 FTP客户端典型配置组网图
如果主设备和从设备剩余的内存空间不够,请使用delete /unreserved file-url命令删除部分暂时不用的文件后再执行以下操作。
配置前请确保IRF和FTP服务器之间路由可达,IP地址如图1-5所示,具体配置步骤略。
# 以用户名abc、密码123456登录FTP服务器。
<Sysname> ftp 10.1.1.1
Press CTRL+C to abort.
Connected to 10.1.1.1 (10.1.1.1).
220 WFTPD 2.0 service (by Texas Imperial Software) ready for new user
User (10.1.1.1:(none)): abc
331 Give me your password, please
Password:
230 Logged in successfully
Remote system type is MSDOS.
ftp>
# 将传输模式设置为binary,以便传输文件。
ftp> binary
200 TYPE is now 8-bit binary
# 将文件temp.bin从FTP服务器下载到IRF。
· 将文件temp.bin从FTP服务器下载到主设备存储介质的根目录下。
ftp> get temp.bin
local: temp.bin remote: temp.bin
150 Connecting to port 47457
226 File successfully transferred
23951480 bytes received in 95.399 seconds (251.0 kbyte/s)
· 将文件temp.bin从FTP服务器下载到从设备存储介质的根目录下。
ftp> get temp.bin slot2#cfa0:/temp.bin
# 将IRF的配置文件config.cfg上传到FTP服务器进行备份。
ftp> ascii
200 TYPE is now ASCII
ftp> put config.cfg back-config.cfg
local: config.cfg remote: back-config.cfg
150 Connecting to port 47461
226 File successfully transferred
3494 bytes sent in 5.646 seconds (618.00 kbyte/s)
ftp> bye
221-Goodbye. You uploaded 2 and downloaded 2 kbytes.
221 Logout.
<Sysname>
TFTP(Trivial File Transfer Protocol,简单文件传输协议)用于在TFTP服务器和TFTP客户端之间传输文件。它基于UDP协议,使用UDP端口建立连接、收/发数据报文。与基于TCP的FTP协议比较,TFTP不需要认证,没有复杂的报文交互,部署简单,适用于客户端和服务器均很可靠的网络环境。
目前,设备只能作为TFTP客户端,不支持作为TFTP服务器。
图2-1 TFTP组网示意图
当设备作为TFTP客户端时,可以把设备的文件上传到TFTP服务器,还可以从TFTP服务器下载文件到设备。如果下载时设备上已经存在一个和目标文件名同名的文件,则系统会先将设备上已有的文件删除,再保存远端文件。如果下载失败(如网络断开等原因),则原文件已被删除,无法恢复。因此,当下载启动文件或配置文件等重要文件时,建议使用一个当前目录下不存在的文件名作为目标文件名。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使用ACL限制设备可访问哪些TFTP服务器 |
tftp-server acl acl-number |
可选 缺省情况下,没有使用ACL对设备可访问的TFTP服务器进行限制 |
配置TFTP客户端的源地址 |
tftp client source { interface interface-type interface-number | ip source-ip-address } |
缺省情况下,没有配置源地址,使用路由出接口的主IP地址作为设备发送TFTP报文的源IP地址 |
退回用户视图 |
quit |
- |
在IPv4网络,用TFTP上传/下载文件 |
tftp tftp-server { get | put | sget } source-filename [ destination-filename ] [ dscp dscp-value | source { interface interface-type interface-number | ip source-ip-address } ] * |
使用tftp client source命令指定了源地址后,又在tftp命令中指定了源地址,则采用tftp命令中指定的源地址进行通信 该命令在用户视图下执行 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)在IPv6网络,使用ACL限制设备可访问哪些TFTP服务器 |
tftp-server ipv6 acl acl-number |
缺省情况下,没有使用ACL对设备可访问的TFTP服务器进行限制 |
在IPv6网络,配置TFTP客户端的源地址 |
tftp client ipv6 source { interface interface-type interface-number | ipv6 source-ip-address } |
缺省情况下,没有配置源地址,设备自动选择IPv6 TFTP报文的源IPv6地址,具体选择原则请参见RFC 3484 |
退回用户视图 |
quit |
- |
在IPv6网络,用TFTP上传/下载文件 |
tftp ipv6 tftp-server [ -i interface-type interface-number ] { get | put | sget } source-filename [ destination-filename ] [ dscp dscp-value | source { interface interface-type interface-number | ipv6 source-ipv6-address } ] * |
使用tftp client ipv6 source命令指定了源地址后,又在tftp ipv6命令中指定了源地址,则采用tftp ipv6命令中指定的源地址进行通信 该命令在用户视图下执行 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!