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 只有读/写两个操作,协议极简。