环境
- ubuntu 22.04 64bit
- windows 11 64bit
简介
TFTP (Trivial File Transfer Protocol)是一种简单的文件传输协议,通常用于在联网设备之间传输配置文件和固件映像。在本文中,我们将在 Ubuntu 22.04 系统上完成安装和设置 TFTP。
服务器安装配置
首先,打开终端,执行下面命令来安装软件包
sudo apt install tftpd-hpa
完成后,通过 ps 来查看服务是否启动
ps ax | grep tftp

接下来,再去编辑下 tftpd 的配置文件 /etc/default/tftpd-hpa

文件中,几个配置项的含义是:
TFTP_USERNAME变量设置TFTP服务器运行的用户TFTP_DIRECTORY变量设置TFTP服务器查找要提供的文件的目录TFTP_ADDRESS变量设置TFTP服务器监听的IP地址和端口TFTP_OPTIONS变量设置TFTP服务器的各种选项,如防止文件被删除或覆盖的-secure选项
这里,我就修改了
TFTP_DIRECTORY,比如 /home/xgx/tftp_share
TFTP_OPTIONS,添加了一个参数 --create
编辑好后,保存退出
如果 tftp_share 文件夹不存在的话,也要创建
mkdir /home/xgx/tftp_share
然后设置一下文件夹的权限
sudo chown -R nobody:nogroup /home/xgx/tftp_share
sudo chmod -R 777 /home/xgx/tftp_share
上述命令将目录的所有者和组分别设置为 nobody 和 nogroup,并赋予每个人读取、写入和执行权限
最后,重启一下 tftp 服务
sudo systemctl restart tftpd-hpa.service
如果,服务启动失败,可以通过命令 sudo systemctl status tftpd-hpa.service 来查看出错信息
安装客户端测试
服务器端已经准备好了,接下来,我们就去安装个客户端测试一下
sudo apt install tftp-hpa
客户端 tftp 的使用很简单
tftp <TFTP_SERVER_IP_ADDRESS>
其中,<TFTP_SERVER_IP_ADDRESS> 替换为 TFTP 服务器的 IP 地址。比如我们这里
tftp 192.168.1.128
连接上后,可以输入 ? 来查看可使用的指令

比如,要拉取一个文件,可以这样
# test.c,这个文件是存储在 home/xgx/tftp_share 下的
tftp> get test.c
# 如果 test.c,这个文件是存储在 home/xgx/tftp_share/a 下的
tftp> get a/test.c
上传文件,操作类似
tftp> put <LOCAL_FILE_PATH> <REMOTE_FILE_NAME>
其中,<LOCAL_FILE_PATH> 替换为本地计算机上文件的路径,<REMOTE_FILE_NAME> 替换为 TFTP 服务器上文件的名称,不写的话,保持原文件名不变
# 将当前文件夹下的 test.py 上传到服务器上,文件名也是 test.py
tftp> put test.py
退出客户端,直接输入 quit 即可。
windows中开启客户端
打开控制面板,找到程序

然后,点击启用或关闭Windows功能

打开TFTP客户端
