TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议,常用于网络设备(如路由器、交换机)的固件升级或配置文件传输,相比FTP,TFTP无需复杂的认证机制,配置简单,但安全性较低,建议在可信网络环境中使用,以下是TFTP服务器的详细使用教程,包括安装、配置及操作步骤。

安装TFTP服务器
以Linux系统为例,常用的TFTP服务器软件是tftp-hpa和xinetd,首先通过包管理器安装,例如在Ubuntu/Debian系统中执行:
sudo apt update sudo apt install tftp-hpa xinetd
在CentOS/RHEL系统中,使用以下命令:
sudo yum install tftp-server xinetd
安装完成后,需确保xinetd服务启动,并设置为开机自启:
sudo systemctl start xinetd sudo systemctl enable xinetd
配置TFTP服务器
TFTP服务器的配置文件通常位于/etc/xinetd.d/tftp,编辑该文件,修改以下关键参数:

disable = no:启用TFTP服务。protocol = udp:使用UDP协议(默认TFTP端口为69)。server_args = -s /var/lib/tftpboot:指定TFTP根目录,需确保该目录存在且权限正确(可执行sudo mkdir -p /var/lib/tftpboot && sudo chmod 777 /var/lib/tftpboot)。
配置完成后,重启xinetd服务使生效:
sudo systemctl restart xinetd
上传和下载文件
上传文件到服务器
使用tftp命令客户端上传文件,例如将本地文件test.txt上传到服务器:
tftp -i <服务器IP> put test.txt
从服务器下载文件
下载服务器文件config.cfg到本地:
tftp -i <服务器IP> get config.cfg
批量传输文件
若需批量上传或下载,可结合脚本实现,使用for循环上传多个文件:

for file in file1 file2 file3; do
tftp -i <服务器IP> put $file
done
常见问题排查
- 权限问题:确保TFTP根目录对用户有读写权限。
- 防火墙拦截:检查防火墙是否放行UDP 69端口,例如在Ubuntu中执行
sudo ufw allow 69/udp。 - 服务未启动:通过
sudo systemctl status xinetd确认服务状态。
相关问答FAQs
Q1: TFTP与FTP有何区别?
A1: TFTP是轻量级协议,基于UDP,无需认证,适用于简单文件传输;FTP基于TCP,支持认证和复杂操作(如目录浏览),安全性更高但配置较复杂。
Q2: 如何限制TFTP服务器的访问IP?
A2: 在/etc/xinetd.d/tftp配置文件中添加only_from = 192.168.1.0/24参数,限制仅允许该网段IP访问,重启服务后生效。
