CentOS系统下TFTP服务的安装与配置指南
在Linux系统中,TFTP(Trivial File Transfer Protocol)因其轻量化的特性,常用于局域网内快速传输小型文件,例如网络设备的固件升级或自动化运维场景,对于需要在CentOS环境下部署TFTP服务的用户,以下内容将提供一套完整的操作流程,涵盖安装、配置、测试及常见问题处理。

**一、准备工作
1、系统环境确认
确保当前系统为CentOS 7或更高版本,并以root
用户或具备sudo
权限的账户登录,可通过以下命令查看系统版本:
- cat /etc/redhat-release
2、更新软件源
执行yum update
更新系统软件包,避免因依赖问题导致安装失败:
- yum update -y
**二、安装TFTP服务端与客户端
TFTP服务依赖于tftp-server
和xinetd
两个核心组件,客户端工具为tftp
。
1、安装服务端

- yum install -y tftp-server xinetd
2、安装客户端(可选)
若需测试服务,可安装客户端工具:
- yum install -y tftp
**三、配置TFTP服务
1、修改主配置文件
编辑/etc/xinetd.d/tftp
文件,确保以下参数生效:
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /var/lib/tftpboot -c
- disable = no
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
关键参数说明:
server_args
:-s
指定TFTP根目录(默认/var/lib/tftpboot
),-c
允许上传文件。

disable
:必须设置为no
以启用服务。
2、创建TFTP根目录
- mkdir -p /var/lib/tftpboot
- chmod 777 /var/lib/tftpboot
权限放宽便于测试,生产环境建议按需调整。
3、启动服务并设置开机自启
- systemctl start xinetd
- systemctl enable xinetd
**四、防火墙与SELinux配置
1、放行TFTP端口
TFTP默认使用UDP 69端口,需在防火墙中添加规则:
- firewall-cmd --permanent --add-port=69/udp
- firewall-cmd --reload
2、调整SELinux策略(如启用)
若系统启用SELinux,执行以下命令避免权限拦截:
- setsebool -P tftp_anon_write 1
**五、服务功能验证
1、本地测试文件传输
- 在TFTP根目录创建测试文件:
- echo "Hello, TFTP!" > /var/lib/tftpboot/test.txt
- 通过客户端下载文件:
- tftp 127.0.0.1
- tftp> get test.txt
- tftp> quit
- 检查当前目录是否生成test.txt
并包含正确内容。
2、跨主机测试(可选)
从另一台Linux设备使用tftp
命令或Windows系统借助第三方工具(如SolarWinds TFTP)进行文件上传/下载测试。
**六、常见问题排查
1、连接超时或拒绝
- 检查防火墙是否放行UDP 69端口。
- 确认xinetd
服务状态:systemctl status xinetd
。
2、文件上传失败
- 确保server_args
包含-c
参数。
- 检查TFTP根目录的写入权限及SELinux策略。
3、权限错误
- 若日志提示权限不足(查看/var/log/messages
),尝试临时关闭SELinux:setenforce 0
,测试是否为策略导致。
**七、安全建议
限制访问范围:通过防火墙规则仅允许信任的IP段访问TFTP服务。
目录权限控制:避免使用777
权限,建议为特定用户或组分配权限。
日志监控:定期检查/var/log/messages
,分析异常传输行为。
TFTP作为简单的文件传输协议,适用于对安全性要求较低的场景,若需加密传输或复杂权限管理,建议考虑SFTP或FTP替代方案,对于自动化运维、网络设备维护等特定需求,合理配置的TFTP仍能显著提升效率。