怎么开启TFTP服务器?Windows/Linux系统开启方法+测试

chengsenw 项目开发怎么开启TFTP服务器?Windows/Linux系统开启方法+测试已关闭评论26阅读模式

记得去年给一个客户部署一批网络交换机,凌晨两点突然接到电话说固件升级失败,设备半瘫了。我当时心里一沉,赶紧远程连过去,发现就是因为TFTP服务器没配明白,传输老是中断。最后折腾了半小时才用TFTP把备份固件传进去救了急。从那以后我就觉得,这玩意儿虽然古老,但关键时刻真能顶事。

怎么开启TFTP服务器?Windows/Linux系统开启方法+测试

TFTP(Trivial File Transfer Protocol)说白了就是网络世界的"快递小哥"——特别轻量,不签收不保价(无连接、不可靠),但跑腿速度快,专门在内网里传小文件。你肯定不会用它送贵重物品(比如生产环境的大文件),但给路由器传个固件、给打印机发个配置,或者像我用它救急交换机,都是典型场景。


Windows篇:图形化界面点点鼠标就行

Windows系统其实自带TFTP功能,只是默认藏得深。我个人的习惯是:如果临时用一次就开系统自带功能,要是经常用反而推荐第三方工具,因为自带的有时权限管理挺烦人。

开启步骤:

  1. 打开"程序和功能"(win+R输入appwiz.cpl),点左侧"启用或关闭Windows功能"
  2. 找到"TFTP客户端"和"TFTP服务器"两个选项——注意!客户端默认可能勾选了,但服务器得手动勾选
  3. 重启系统后,服务列表里会出现"TFTP Client"服务,记得设为自动启动

这里有个坑我踩过: Windows防火墙默认会拦TFTP。你得手动开条规则:

netsh advfirewall firewall add rule name="TFTP Service" dir=in action=allow protocol=UDP localport=69

不然就像我那次,客户端连得上服务器但传不了文件,排查半天才发现是防火墙没放行。

如果想用第三方工具,比如tftpd64,其实更简单。下载解压直接运行,选择根目录(就是放传输文件的地方),点启动就行。不过要注意的是,这工具默认所有文件可读写,千万别放在有敏感数据的目录——我有次测试时不小心把整个Downloads目录设成了根目录,差点被同事笑话。


Linux篇:终端里几条命令的事

Linux下我习惯用tftp-hpa,这是最常用的实现。别看要敲命令,其实比Windows还利索,特别是如果你熟悉bash的话。

Ubuntu/Debian系安装:

sudo apt update
sudo apt install tftpd-hpa

安装完不用急着启动,先改配置。配置文件通常在/etc/default/tftpd-hpa,用vim或nano打开:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpd"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"

这里有几个关键点:

  • TFTP_DIRECTORY必须是绝对路径,而且权限要对(chmod 755)
  • --secure把文件限制在该目录内,防止乱跳目录
  • --create允许上传文件,不然只能下载

改完保存,重启服务:

sudo systemctl restart tftpd-hpa
sudo systemctl enable tftpd-hpa

我遇到过的权限问题: 有次给客户部署时,文件怎么都传不上去,最后发现是SELinux没关。所以如果遇到莫名其妙的问题,可以先用getenforce检查下SELinux状态,或者用setenforce 0临时关闭测试。


测试:不测试就像开车不看油表

搭建完不测试,迟早要出事。我的习惯是至少做两层测试:基本传输验证和抓包分析。

基本测试(以Linux客户端为例):

# 连接本地TFTP服务器
tftp localhost
tftp> get test.txt    # 下载文件
tftp> put upload.bin  # 上传文件
tftp> quit

Windows客户端类似,打开命令提示符输入tftp -i 127.0.0.1 get test.txt(-i参数用于二进制模式)。

如果测试失败,首先查防火墙:

# Linux查看69端口是否监听
sudo netstat -anu | grep :69

# 通用抓包看UDP流量
sudo tcpdump -i any -n udp port 69

有次我帮学弟排查问题,抓包发现请求根本没到服务器,最后发现是云服务器的安全组没配置UDP 69端口入口规则——这种问题不抓包根本看不出来。


为什么TFTP现在还有人用?

说实话,TFTP协议确实老旧:没加密、没认证、基于UDP容易丢包。但它在特定场景下无可替代:

  1. 嵌入式设备引导:很多网络设备固件小于32MB,TFTP简单到可以直接烧进ROM
  2. PXE网络启动:机房批量装系统还得靠它传初始引导文件
  3. 紧急恢复场景:就像我那次交换机变砖,只有TFTP能救急

不过如果传敏感数据,一定要换SFTP或SCP。我之前有个项目最初用TFTP传配置文件,后来被安全审计抓到了,连夜改成SFTP——毕竟明文传输在内网也不安全。

最后说两句

如果你刚开始接触TFTP,我的建议是:先在虚拟机里练手,别直接上生产环境。特别是注意文件权限和防火墙,这两个坑我见过太多人栽了。

虽然现在有更多高级协议,但TFTP就像螺丝刀里的扁口款——不是最先进,但某些时候就是最趁手的那个。毕竟那天凌晨两点,就是这把"扁口螺丝刀"帮我救回了一机房设备。

 
chengsenw
  • 本文由 chengsenw 发表于 2025年12月4日 09:04:45
  • 转载请务必保留本文链接:https://www.gewo168.com/3572.html