TFTP 与 69 端口
69 是 TFTP 的端口,基于 UDP,协议极简:只能读写文件,没有认证、不能列目录,也没有断点续传。正因为够简单,它广泛用于网络设备的固件升级、配置备份与 PXE 引导取件,也用于话机与无线接入点的自动配置。服务端在收到请求后会另开随机端口完成传输,因此防火墙需要放行这些临时端口,或把它限制在受控网段内使用。
基本信息
| 服务 | TFTP 服务端(tftpd-hpa、设备内置服务) |
|---|---|
| 协议 | UDP(数据通道为服务端随机端口) |
| 规范 | RFC 1350;选项扩展见 RFC 2347 系列 |
| 配置文件 | /etc/default/tftpd-hpa,根目录常为 /srv/tftp |
| 常见客户端 | 命令行客户端、网络设备的升级命令 |
| 安全等级 | 仅限受控内网,用完关闭 |
典型使用场景
- 网络设备固件升级:把镜像放到服务器上,由设备主动拉取
- 配置备份与回传:设备把当前配置上传到服务器留档
- PXE 批量装机:与 DHCP 配合,客户端按引导文件启动安装
- 话机与无线设备自动配置:设备上电后按约定文件名拉配置
- 临时文件交换:在严格受限的管理网内做一次性传输
上传与下载示例
上传与下载示例
tftp 192.0.2.10 -c get startup.cfg # 从服务器取回配置(BusyBox 风格客户端)
tftp 192.0.2.10 -c put backup.cfg # 上传文件到服务器根目录
# 交互式客户端可先连接再执行 get 或 put
atftp --get --remote-file startup.cfg --local-file startup.cfg 192.0.2.10 # 另一种常见客户端典型用途与文件约定
| 场景 | 常用文件 | 说明 |
|---|---|---|
| PXE 引导 | 引导程序与内核镜像文件 | 与 DHCP 下发的引导服务器地址配合 |
| 网络设备 | 固件镜像、配置备份文件 | 升级与配置回传,注意文件名必须精确匹配 |
| 话机与无线设备 | 厂商约定的配置文件名 | 设备上电后自动拉取,通常是唯一配置来源 |
服务端配置与自检
服务端配置与自检
# /etc/default/tftpd-hpa
# TFTP_USERNAME="tftp"
# TFTP_DIRECTORY="/srv/tftp"
# TFTP_ADDRESS=":69"
# TFTP_OPTIONS="--secure --create"
sudo systemctl restart tftpd-hpa
sudo ss -ulnp | grep ':69 ' # 确认 UDP 已监听
sudo ls -l /srv/tftp # 属主与权限不对会表现为静默失败TFTP 没有任何认证与加密机制,跨网段暴露会泄露设备配置与凭据;应把服务限制在专用管理网,用完即关闭。
传输是另开端口完成的:客户端先与 69 协商,随后在服务端给出的随机端口上传输数据;只放行 69 而屏蔽高位端口的防火墙规则会让传输卡在起步阶段。
排障时同时看两端:抓包确认请求是否到达、服务端是否回包;服务端侧优先检查根目录权限与文件名是否精确匹配,很多失败是文件名大小写或路径写错导致的静默失败。