什么是 TFTP?
TFTP (Trivial File Transfer Protocol) 是一个简单的文件传输协议,类似于 FTP,但它更简单、功能更少。

- 优点: 实现简单,不需要复杂的用户认证,占用资源少。
- 缺点: 不安全(没有用户名/密码验证),功能有限(不能列出目录、不能删除文件)。
- 主要用途: 通常用于网络设备的固件升级,如路由器、交换机、防火墙、IP电话、无线路由器等,也常用于 PXE 网络启动环境中传输启动文件。
使用 Windows 自带的 TFTP 客户端(仅客户端)
首先需要明确一点:现代 Windows 系统默认只包含 TFTP 客户端,而不包含 TFTP 服务器 功能。
这意味着你可以用 Windows 命令行从其他 TFTP 服务器 下载 文件,但不能用它来 接收 文件,即不能作为服务器。
如何使用 TFTP 客户端?
-
打开命令提示符 或 PowerShell。
-
基本命令格式如下:
(图片来源网络,侵删)-
从 TFTP 服务器下载文件到本地:
tftp -i [服务器IP地址] get [远程文件名] [本地文件名 - 可选]
-i: 指定二进制模式传输(对于固件等重要文件,强烈推荐使用)。[服务器IP地址]: 运行 TFTP 服务器的机器的 IP 地址。get: 下载文件的关键字。[远程文件名]: 服务器上你想下载的文件名。[本地文件名]: 保存到本地的文件名,如果省略,则与远程文件名相同。
示例:
# 从 IP 为 192.168.1.100 的服务器下载名为 firmware.bin 的文件,并保存为 myfirmware.bin tftp -i 192.168.1.100 get firmware.bin myfirmware.bin
-
从本地上传文件到 TFTP 服务器:
tftp -i [服务器IP地址] put [本地文件名] [远程文件名 - 可选]
put: 上传文件的关键字。- 其他参数与
get类似。
示例:
(图片来源网络,侵删)# 将本地的 config.txt 文件上传到 192.168.1.100 服务器,并命名为 new_config.txt tftp -i 192.168.1.100 put config.txt new_config.txt
-
使用第三方 TFTP 服务器软件(推荐)
既然 Windows 自身不带服务器功能,我们就需要安装第三方软件,这里推荐两款非常流行且免费的工具:Tftpd32 和 SolarWinds TFTP Server。
推荐工具 1:Tftpd32 (经典、免费、功能全面)
这是一个非常经典的小工具,集成了 TFTP 服务器、DHCP 服务器、SNMP 等多种功能,非常适合个人使用和小型网络环境。
优点:
- 免费,单个可执行文件,无需安装。
- 功能强大,除了 TFTP 服务器,还集成了 DHCP、Syslog、SNMP Agent。
- 界面直观,操作简单。
安装与配置步骤:
-
下载:
- 访问其官方网站或可靠的下载站点(
https://tftpd32.jounin.net/)。 - 下载
tftpd32或tftpd64(64位版本) 的 ZIP 压缩包。
- 访问其官方网站或可靠的下载站点(
-
运行:
- 解压 ZIP 文件,直接运行
tftpd32.exe(或tftpd64.exe),无需安装。
- 解压 ZIP 文件,直接运行
-
配置:
- 首次运行会弹出一个配置窗口,如果没弹出,可以点击界面上的 "Settings" 按钮。
- TFTP 选项卡:
- Current directory: 设置你的 TFTP 根目录,所有上传和下载的文件都相对于这个目录,你可以设置为
C:\TFTP-Root。注意:这个目录必须已经存在,TFTP 服务需要有读写权限。 - Security: 勾选 "Accept only known hosts" 可以只允许来自特定 IP 地址的设备连接,增加安全性。
- Timeout (sec): 设置超时时间,可以根据网络情况调整。
- Current directory: 设置你的 TFTP 根目录,所有上传和下载的文件都相对于这个目录,你可以设置为
- 其他选项卡:
- 如果你需要为 PXE 启动服务,可以在 "PXE" 选项卡中配置。
- 如果你需要为网络设备分配 IP 地址,可以在 "DHCP" 选项卡中配置。
-
启动服务:
配置完成后,点击界面上的 "TFTP server" 按钮,使其状态变为 "Running",现在你的 TFTP 服务器就已经启动了。
使用:
- 下载: 网络设备可以通过
tftp get命令从你电脑的 IP 地址下载Current directory中的文件。 - 上传: 设备可以通过
tftp put命令将文件上传到Current directory中。
推荐工具 2:SolarWinds TFTP Server (专业、稳定、免费)
SolarWinds 提供的这款 TFTP 服务器是业界非常知名的免费工具,界面更现代化,非常稳定可靠。
优点:
- 免费,商业和个人使用均可。
- 界面美观,配置清晰。
- 非常稳定,适合生产环境或频繁使用的场景。
- 提供详细的传输日志。
安装与配置步骤:
-
下载:
访问 SolarWinds 官网搜索 "TFTP Server",下载并安装。
-
配置:
- 安装并打开软件。
- 在主界面,点击 "..." 按钮来选择 TFTP Root Directory(TFTP 根目录),和 Tftpd32 一样,这是所有文件存放的位置。
- 你可以设置 Server Interface(服务器监听的网卡)和 Timeout(超时)。
- 在 Logging 选项卡中,你可以启用日志记录,方便排查问题。
-
启动服务:
点击主界面上的 "Start" 按钮,服务器即开始运行。
使用 Docker(适合开发者和技术爱好者)
如果你已经安装了 Docker,使用容器来运行 TFTP 服务器是一种非常干净和高效的方式。
优点:
- 环境隔离,不会污染你的主系统。
- 安装和卸载极其简单。
- 版本管理方便。
步骤:
-
确保已安装 Docker。
-
创建 TFTP 根目录: 在你的电脑上创建一个文件夹,
C:\docker\tftp。 -
运行 Docker 容器:
- 打开 PowerShell 或命令提示符,运行以下命令:
docker run -d -p 69:69/udp -v C:\docker\tftp:/tftp-root --name tftp-server panchshakti/tftp-hpa
-d: 在后台运行容器。-p 69:69/udp: 将容器的 69 端口(TFTP 默认端口)映射到主机的 69 端口。-v C:\docker\tftp:/tftp-root: 将你本地的C:\docker\tftp目录挂载到容器内的/tftp-root目录,这是文件传输的根目录。--name tftp-server: 给容器起一个名字,方便管理。panchshakti/tftp-hpa: 这是一个流行的、轻量级的 TFTP 服务器 Docker 镜像。
- 打开 PowerShell 或命令提示符,运行以下命令:
-
管理:
- 停止服务:
docker stop tftp-server - 启动服务:
docker start tftp-server - 查看日志:
docker logs tftp-server
- 停止服务:
总结与对比
| 方法 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|
| Windows 自带客户端 | 系统自带,无需安装 | 不能作为服务器,功能单一 | 只需要从服务器下载文件的用户 |
| Tftpd32 | 免费,轻量,功能集成度高 | 界面较老,偶尔有兼容性问题 | 个人用户,小型网络,需要多种网络工具的人 |
| SolarWinds TFTP Server | 界面现代,稳定可靠,有日志 | 需要安装 | 对稳定性有要求的个人用户和小型企业 |
| Docker | 环境隔离,部署快捷,易于管理 | 需要 Docker 知识 | 开发者,技术爱好者,追求整洁环境的用户 |
对于绝大多数 Windows 我强烈推荐使用 Tftpd32 或 SolarWinds TFTP Server。 它们简单易用,能完美满足搭建 TFTP 服务器的需求。
