在Linux服务器管理中,TFTP(Trivial File Transfer Protocol)常用于简单的文件传输场景,如网络设备的固件升级、自动化部署等,CentOS系统作为企业级常用的操作系统,默认不包含TFTP服务,但可通过简单的配置快速搭建,本文将详细介绍如何在CentOS系统中安装、配置和管理in.tftpd服务,确保其安全、稳定运行。

安装TFTP服务
需要通过包管理器安装tftp-server软件包,在CentOS 7及更高版本中,可使用yum或dnf命令执行安装:
sudo yum install tftp-server -y
安装完成后,系统会自动创建/var/lib/tftpboot目录作为TFTP服务的默认根目录,所有文件传输操作均基于此目录展开,建议检查该目录的权限,确保tftp用户具有读写访问权:
sudo chmod 777 /var/lib/tftpboot sudo chown -R tftp:tftp /var/lib/tftpboot
配置TFTP服务
in.tftpd的配置文件位于/etc/xinetd.d/tftp,需修改以下关键参数:
disable = no:启用TFTP服务。protocol = udp:指定传输协议为UDP(默认端口69)。server_args = -s /var/lib/tftpboot:设置服务根目录。per_source = 11:限制同一IP的并发连接数。cps = 100 2:限制传输速率(100字节/秒,突发2秒)。
编辑完成后,保存文件并重启xinetd服务以生效:

sudo systemctl restart xinetd sudo systemctl enable xinetd
若系统未启用xinetd,需先安装并启动该服务:
sudo yum install xinetd -y sudo systemctl start xinetd
防火墙与SELinux配置
为确保外部客户端可访问TFTP服务,需开放UDP 69端口:
sudo firewall-cmd --permanent --add-port=69/udp sudo firewall-cmd --reload
检查SELinux的布尔值,允许TFTP服务写入目录:
sudo setsebool -P tftp_home_dir on
若遇到权限问题,可临时关闭SELinux进行测试(生产环境不推荐):

sudo setenforce 0
常见问题排查
- 连接超时:检查防火墙规则和
xinetd服务状态,确认端口未被占用。 - 文件读写失败:验证
/var/lib/tftpboot目录权限及SELinux上下文:sudo restorecon -Rv /var/lib/tftpboot
安全加固建议
- 限制访问IP:在
/etc/xinetd.d/tftp中添加only_from = 192.168.1.0/24指定允许的网段。 - 禁用匿名上传:避免设置
/var/lib/tftpboot为777权限,改用755并移除组用户和其他用户的写权限。 - 定期清理文件:删除不需要的传输文件,防止磁盘空间耗尽。
通过以上步骤,即可在CentOS系统中成功搭建安全的TFTP服务。in.tftpd作为轻量级文件传输工具,虽功能简单,但在特定场景下仍具有实用价值,合理配置与维护,能充分发挥其效能并降低安全风险。
FAQs
Q1: 如何修改TFTP服务的默认根目录?
A1: 编辑/etc/xinetd.d/tftp文件,修改server_args参数为新的目录路径,例如server_args = -s /new/tftp/path,确保新目录权限正确,并重启xinetd服务。
Q2: TFTP传输大文件时失败,如何解决?
A2: 可能因超时设置导致,可通过调整/etc/xinetd.d/tftp中的max_idle参数延长空闲超时时间,或检查客户端的TFTP超时配置,确认服务器磁盘空间充足,避免因存储不足中断传输。