2.3 文件传输:FTP 与 TFTP
在网络维护中,我们经常需要备份配置文件、升级设备操作系统(系统镜像),或者将日志文件导出。这时就需要用到文件传输协议。
最常用的两种协议是:
- FTP (File Transfer Protocol):基于 TCP,可靠,支持认证(账号密码)。
- TFTP (Trivial File Transfer Protocol):基于 UDP,简单快速,通常无认证。
本节重点介绍 FTP 的配置与使用。
1. 实验场景
为了防止设备故障导致配置丢失,我们需要定期将配置文件备份到服务器。
场景角色:
- FTP Server (服务端):提供文件存储服务的设备(可以是路由器,也可以是 PC)。
- FTP Client (客户端):登录服务端进行上传/下载操作的设备。
模拟拓扑:
- R1 (Client): 172.16.12.1
- R2 (Server): 172.16.12.2
- 前提:R1 和 R2 之间网络可达(能 Ping 通)。
2. 配置路由器为 FTP Server
在 R2 上开启 FTP 服务,并创建一个允许 FTP 登录的用户。
bash
[R2] ftp server enable # 1. 开启 FTP 服务功能
[R2] aaa
[R2-aaa] local-user ftpuser password cipher Huawei@123 # 2. 创建用户名为 ftpuser
[R2-aaa] local-user ftpuser privilege level 3 # 3. 赋予管理权限(3级)
[R2-aaa] local-user ftpuser service-type ftp # 4. 指定服务类型为 ftp
[R2-aaa] local-user ftpuser ftp-directory flash: # 5. 指定 FTP 根目录(家目录)注意:
ftp-directory非常重要,如果不指定,用户登录后可能看不到任何文件或无法操作。通常指定为flash:。
3. 路由器作为 FTP Client 登录
现在我们在 R1 上模拟客户端,远程登录 R2 并下载文件。
3.1 登录 FTP
在用户视图下执行:
bash
<R1> ftp 172.16.12.2
Trying 172.16.12.2 ...
Press CTRL+K to abort
Connected to 172.16.12.2.
220 FTP service ready.
User(172.16.12.2:(none)): ftpuser <-- 输入用户名
331 Password required for ftpuser.
Enter password: <-- 输入密码 Huawei@123 (不回显)
230 User logged in.
[R1-ftp] <-- 进入 FTP 视图提示:如果是 PC 作为客户端,可以使用 Windows 的 CMD (
ftp 172.16.12.2) 或图形化软件 (FileZilla)。
3.2 查看文件 (Dir/Ls)
bash
[R1-ftp] dir
200 Port command okay.
150 Opening ASCII mode data connection for *.
-rwxrwxrwx 1 noone nogroup 1722 Jun 06 13:15 vrpcfg.zip
-rwxrwxrwx 1 noone nogroup 432 Jun 06 12:57 private-data.txt
226 Transfer complete.3.3 下载文件 (Get)
将 Server 上的 vrpcfg.zip 下载到本地:
bash
[R1-ftp] get vrpcfg.zip
200 Port command okay.
150 Opening ASCII mode data connection for vrpcfg.zip.
226 Transfer complete.
FTP: 1722 byte(s) received in 0.220 second(s) 7.82Kbyte(s)/sec.- 下载后,文件保存在 R1 的 Flash 中,名字默认不变。
- 如果要改名:
get source-file target-file。
3.4 上传文件 (Put)
将 R1 本地的配置文件上传到 Server:
bash
[R1-ftp] put my-config.zip
200 Port command okay.
150 Opening ASCII mode data connection for my-config.zip.
226 Transfer complete.3.5 退出
bash
[R1-ftp] quit
221 Server closing.4. 常见问题排查
- 无法登录:
- 检查网络是否通畅 (
ping)。 - 检查 Server 是否开启 (
ftp server enable)。 - 检查 AAA 用户是否正确配置了
service-type ftp和ftp-directory。
- 检查网络是否通畅 (
- 传输慢或中断:
- FTP 默认使用主动模式,如果在防火墙或 NAT 后面,可能需要切换模式(但在路由器直连场景较少见)。
- 权限不足:
- 检查 AAA 用户的
privilege level,读写操作通常需要 3 级权限。
- 检查 AAA 用户的