引言

TFTP(Trivial File Transfer Protocol)是一种简化的文件传输协议,基于UDP(用户数据报协议)实现的,在研发生产过程中经常用来在设备和维护终端之间传输配置文件和日志文件。本文介绍一款非常简单好用的支持tftp软件tftpd64,它支持作为tftp server和tftp client,而且也支持作为DHCP server,DNS server等。

准备软件

官方下载:TFTPD64 : an opensource IPv6 ready TFTP server/service for windows : TFTP server

绿色版本下载:https://download.csdn.net/download/lai_2020/90251551

测试组网

WAN PC作为tftp服务端,创建D:\server_download\testfile1.txt,并输入若干字符,用于测试tftp下载

LAN PC作为tftp客户端,创建D:\client_download\testfile2.txt,并输入若干字符,用于测试tftp下载用于测试tftp上传

配置tftp服务端

在WAN PC上运行tftpd64软件,点击settings按钮

在GLOBAL页,只勾选TFTP Server

在TFTP页,设置主目录为D:\server_download,并检查Tftp port是否为默认的69端口号

点击OK,重启tftp软件确保修改生效

将Server interface改成接到路由器的网卡,并点击Show Dir可以查看当前主目录下的文件

配置tftp客户端

在LAN PC上运行tftp软件,在GLOBAL页设置只作为TFTP Client,并同样设置主目录和TFTP端口

重启后,Tftp Client页面如下

上传报文

按以下页面输入参数

Host 输入 WAN PC的IP 192.168.1.2

Port 输入端口号69

Local File,点击按钮选择要上传的文件D:\client_download\testfile2.txt

最后点击Put按钮,上传文件到tftp Server

传输结束有以下弹窗,点击OK关闭

在WAN PC的tftp服务端,如果文件比较大,会在窗口看到传输进度条

点击Log viewer可以看到传输日志

在WAN PC的主目录可以看到testfile2.txt文件,表明上传文件成功

tftp客户端抓包

在LAN PC上用wireshark抓包并输入tftp过滤,可以看到tftp过程的交互报文

从抓包看,tftp过程分两个阶段,第一阶段是发出上传请求,第二阶段是上传文件

第一阶段,Client发出Write Request,文件名是testfile2.txt,文件大小是15字节,Server回复ACK

第二阶段,Client传输文件;

值得注意的是,传输数据的目的端口是62019,并非tftp的默认端口69,Server在回复请求时,源端口号是62019。这表明tftp只是在发送请求时用到69端口号,后续是由PC随机分配。

下载文件

按以下页面输入参数

Host 输入 WAN PC的IP 192.168.1.2

Port 输入端口号69

Local File,输入文件保存的目录及文件名,如D:\client_download\testfile2.txt

Remote File,输入testfile1.txt,注意文件需要存放tftp Server的主目录下

最后点击Get按钮,下载文件到本地

在LAN PC的主目录可以看到testfile1.txt文件,表明下载文件成功

从抓包看,tftp过程分两个阶段,第一阶段是发出下载请求,第二阶段是下载文件

第一阶段,Client发出Read Request,文件名是testfile1.txt,Server回复ACK,并告知文件大小是14字节

第二阶段,Client下载文件;


原创不易,你的支持是我最大的动力,欢迎大家点赞,收藏,关注!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐