036 tftp命令
命令说明
tftp(Trivial File Transfer Protocol)是基于 UDP 69 端口的极简文件传输客户端,无认证、无目录浏览,常用于网络设备(交换机/路由器)上传下载配置、无盘启动和批量部署场景。
语法
tftp [选项] [主机 [端口]] tftp> 子命令(get/put/quit 等)
常用参数
| 参数 | 说明 |
|---|---|
| -m 模式 | 传输模式:netascii(文本)或 octet(二进制),传镜像/固件必须用 octet |
| -r 远程文件 | 指定远端文件名,配合 get/put 使用 |
| -l 本地文件 | 指定本地文件名 |
| -c 命令 | 非交互模式直接执行 get/put,如 tftp -c get -r foo -l bar host |
| get | 交互子命令:从服务器下载文件 |
| put | 交互子命令:上传文件到服务器 |
| binary / ascii | 交互子命令:切换二进制/文本模式 |
| status | 交互子命令:查看当前传输模式与参数 |
| quit / q | 交互子命令:退出 tftp |
使用示例
$ tftp 192.168.1.100
连接到 TFTP 服务器进入交互模式
$ tftp> binary
切换为二进制模式(传固件/镜像前必做)
$ tftp> get router.cfg
下载服务器上的 router.cfg 到当前目录
$ tftp> put vlan.conf
上传本地 vlan.conf 到服务器当前目录
$ tftp> quit
退出交互模式
$ tftp -m octet -c get -r ios.bin -l /tmp/ios.bin 192.168.1.100
一行命令非交互下载固件
$ yum install -y tftp-server && systemctl start tftp
安装并启动本机 TFTP 服务端
$ firewall-cmd --add-service=tftp --permanent && firewall-cmd --reload
防火墙放行 UDP 69 端口
实用技巧
- TFTP 无认证、明文传输、单文件不超过一定大小且效率低;日常传文件优先用 scp/rsync,TFTP 只用于设备引导、pxe、网络设备等必须场景。
- 传二进制文件忘记切 binary 模式会导致文件损坏(ascii 模式会转换换行符),这是最常见的坑。
- 服务端默认目录通常是 /var/lib/tftpboot,需给目录放开读写权限(chmod 777 或属主匹配),否则 put 会报 Permission denied。
- TFTP 用 UDP 69 且数据传输使用随机端口,防火墙需放行服务而非仅 69 端口;测试连通可临时关闭防火墙。
- 与 FTP 区别:FTP 基于 TCP 20/21 有认证和目录操作,TFTP 只有读/写两个操作,协议极简。