曲靖市网站建设_网站建设公司_VPS_seo优化
2026/1/6 17:06:49 网站建设 项目流程

Linux 下安装与配置 TFTP 服务器教程(2026 年最新)

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种轻量级协议,使用 UDP 69 端口,主要用于局域网内小文件传输(如网络设备固件升级、PXE 网络启动)。它没有认证机制,安全性较低,强烈建议仅在局域网内使用,并结合防火墙限制访问。

以下教程覆盖主流发行版:Ubuntu/Debian(使用 tftpd-hpa)和CentOS/RHEL/Rocky/AlmaLinux(使用 tftp-server)。步骤亲测基于最新版本(Ubuntu 24.04、RHEL 9+)。

1. Ubuntu/Debian 系统(推荐 tftpd-hpa)

安装

sudoaptupdatesudoaptinstalltftpd-hpa# 服务器sudoaptinstalltftp-hpa# 客户端(可选,用于测试)

配置

  • 默认共享目录:/var/lib/tftpboot(或/srv/tftp
sudomkdir-p/var/lib/tftpbootsudochmod777/var/lib/tftpboot# 允许读写(生产环境慎用,建议 755)sudochown-Rtftp:tftp /var/lib/tftpboot# 所有者设为 tftp 用户
  • 编辑配置文件/etc/default/tftpd-hpa
sudonano/etc/default/tftpd-hpa

内容修改为(关键选项解释):

TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" # 共享目录 TFTP_ADDRESS=":69" # 监听端口 TFTP_OPTIONS="--secure --create -l -v" # --secure: 限制在目录内 # --create: 允许上传新文件 # -l: 独立模式,-v: 详细日志

启动与开机自启

sudosystemctl restart tftpd-hpasudosystemctlenabletftpd-hpasudosystemctl status tftpd-hpa# 检查运行状态
2. CentOS/RHEL/Rocky/AlmaLinux 系统

安装

sudodnf update# 或 yum update(旧版)sudodnfinstalltftp-server tftp# 服务器 + 客户端sudodnfinstallxinetd# 如果未安装(部分旧版需)

配置

  • 默认共享目录:/var/lib/tftpboot
sudomkdir-p/var/lib/tftpbootsudochmod755/var/lib/tftpbootsudochown-Rnobody:nobody /var/lib/tftpboot# 安全所有者
  • TFTP 通过 systemd socket 激活,或 xinetd(旧版)。
  • 修改 systemd 服务(推荐现代方式):
sudocp/usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.servicesudocp/usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socketsudonano/etc/systemd/system/tftp-server.service

修改 ExecStart 行:

ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot -c --secure # -s: chroot 到目录,-c: 允许创建文件,--secure: 安全模式
  • 重新加载:
sudosystemctl daemon-reload

启动与开机自启

sudosystemctl start tftp.socketsudosystemctlenabletftp.socket tftp.servicesudosystemctl status tftp# 检查
3. 防火墙配置(所有系统必做)

TFTP 使用 UDP 69 端口:

  • Ubuntu(ufw)
sudoufw allow69/udpsudoufw reload
  • CentOS/RHEL(firewalld)
sudofirewall-cmd--permanent--add-service=tftpsudofirewall-cmd--reload
4. 测试 TFTP 服务器
  • 在服务器上放测试文件:
echo"Hello TFTP"|sudotee/var/lib/tftpboot/test.txt
  • 在另一台机器(或本机)测试(安装 tftp 客户端):
tftp 服务器IP tftp>get test.txt# 下载tftp>put newfile.txt# 上传(需 --create 选项)tftp>quit
  • 查看下载的文件:cat test.txt
5. 安全最佳实践(非常重要!)

TFTP无加密、无认证,易受攻击:

  • 仅限局域网:不要暴露到公网(避免 DoS 或文件窃取)。
  • 防火墙限制:只允许特定 IP 访问(如firewall-cmd --add-source=192.168.1.0/24 --service=tftp)。
  • 使用 --secure:限制客户端只能访问指定目录。
  • 最小权限:目录权限 755,只读时禁用 --create。
  • SELinux(RHEL):启用并设置上下文sudo chcon -R -t public_content_t /var/lib/tftpboot
  • 临时使用:用完后关闭服务systemctl stop tftpd-hpa
  • 日志监控:查看/var/log/syslog/var/log/messages

配置完成后,你的 TFTP 服务器即可用于嵌入式开发、路由器升级或 PXE 启动。如果遇到问题(如权限错误、超时),检查日志和防火墙。欢迎提供具体错误继续提问!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询