Linux tftp服务器怎么搭建?新手入门指南看这里!
- 云服务器
- 2026-01-01
- 3
Linux TFTP(Trivial File Transfer Protocol,简单文件传输协议)服务器是一种轻量级的文件传输服务,常用于网络设备(如路由器、交换机、防火墙)的固件升级、配置备份或自动化部署场景,与FTP相比,TFTP协议更简单,无需复杂的认证机制,仅支持文件传输功能,适用于低带宽或安全性要求不高的内网环境,本文将详细介绍Linux系统中TFTP服务器的搭建、配置及使用方法。
安装TFTP服务器软件
在Linux系统中,常用的TFTP服务器软件是tftphpa(服务器端)和tftphpa(客户端),可通过包管理器安装,以Ubuntu/Debian系统为例,执行以下命令:
sudo apt update sudo apt install tftphpa tftpdhpa
对于CentOS/RHEL系统,使用yum或dnf命令:
sudo yum install tftpserver tftp
安装完成后,TFTP服务默认不会自动启动,需手动启用并设置为开机自启:

配置TFTP服务器
TFTP服务器的核心配置文件是/etc/default/tftpdhpa(Ubuntu/Debian)或/etc/xinetd.d/tftp(CentOS/RHEL),以Ubuntu为例,编辑配置文件:
sudo nano /etc/default/tftpdhpa
关键参数说明如下:
| 参数 | 说明 | 示例值 |
||||
| TFTP_DIRECTORY | TFTP服务的根目录,存放可传输的文件 | /var/lib/tftpboot |
| TFTP_OPTIONS | 启动参数,如secure启用安全模式(仅允许上传到指定目录) | secure create permissive |
| RUN_DAEMON | 是否以守护进程方式运行 | yes |
配置完成后,创建TFTP根目录并设置权限:
若使用CentOS系统,需检查/etc/xinetd.d/tftp文件,确保disable = no,并重启xinetd服务:
sudo systemctl restart xinetd
防火墙与SELinux配置
若服务器启用了防火墙(如ufw或firewalld),需开放TFTP默认端口69:
- Ubuntu(ufw): sudo ufw allow 69/udp
- CentOS(firewalld): sudo firewallcmd permanent addservice=tftp
sudo firewallcmd reload
对于SELinux enabled的系统(如CentOS),需执行以下命令允许TFTP服务:
sudo setsebool P tftp_home_dir on
测试TFTP服务器
使用TFTP客户端测试上传下载功能,以Linux客户端为例,执行以下命令:
- 下载文件: tftp 192.168.1.100 c get test.txt
- 上传文件: tftp 192.168.1.100 c put test.txt
若提示“Transfer complete”,则说明配置成功。
常见问题排查
- 权限问题:确保TFTP根目录对用户tftp(或nobody)有读写权限。
- 服务未启动:检查systemctl status tftp或xinetd服务状态,确认端口69是否监听(netstat ulnp | grep 69)。
相关问答FAQs
Q1: TFTP服务器如何限制客户端的访问IP?
A1: 可通过修改TFTP配置文件添加address参数限制绑定IP,例如TFTP_OPTIONS="secure create address 192.168.1.100",或结合防火墙规则(如iptables)仅允许特定IP访问69端口。
Q2: 如何实现TFTP服务器的文件上传日志记录?
A2: TFTP本身不提供日志功能,可通过以下方式实现:
- 使用xinetd模式时,在/etc/xinetd.d/tftp中添加flags = IPv4并启用log_on_success和log_on_failure;
- 外部工具如auditd监控/var/lib/tftpboot目录的文件变更;
- 或将TFTP服务封装到脚本中,通过日志工具记录操作。
