
jauderho/tftpdjauderho/tftpd 是一个基于 tftp-hpa 实现的轻量级 TFTP (Trivial File Transfer Protocol) 服务器 Docker 镜像。该镜像源自 kalaksi/docker-tftpd 项目,专注于提供最小化、易于部署的 TFTP 服务。
主要用途:
提供符合 TFTP 协议的文件传输服务,支持文件上传与下载,适用于需要简单、无认证机制的网络文件传输场景。
tftp-hpa(高性能 TFTP 服务器实现)作为核心,兼容性强。适用于需要 无认证、轻量级、低复杂度 文件传输的场景,不建议用于传输敏感数据或高并发业务。
从 Docker Hub 拉取最新版本镜像:
bashdocker pull jauderho/tftpd:latest
docker run)bashdocker run -d \ --name tftpd \ -p 69:69/udp \ -v /path/to/tftp/files:/tftpboot \ jauderho/tftpd:latest
-p 69:69/udp:映射容器 UDP 69 端口到宿主机(TFTP 协议默认端口)。-v /path/to/tftp/files:/tftpboot:挂载宿主机目录 /path/to/tftp/files 作为 TFTP 根目录(容器内路径为 /tftpboot)。指定自定义端口、允许文件上传、启用详细日志:
bashdocker run -d \ --name tftpd \ -p 6969:69/udp \ # 宿主机端口 6969 映射到容器 69 -v /data/tftp:/tftpboot \ -e TFTP_DIR="/tftpboot" \ # TFTP 根目录(容器内路径) -e TFTP_PORT="69" \ # 容器内监听端口(需与 -p 映射一致) -e TFTP_OPTIONS="--secure --create --verbose" \ # 允许上传(--create)、详细日志(--verbose) jauderho/tftpd:latest
创建 docker-compose.yml 文件:
yamlversion: "3.8" services: tftpd: image: jauderho/tftpd:latest container_name: tftpd restart: unless-stopped # 异常退出后自动重启 ports: - "69:69/udp" # UDP 端口映射 volumes: - ./tftp-root:/tftpboot # 当前目录下 tftp-root 作为宿主机挂载点 environment: - TFTP_DIR="/tftpboot" # TFTP 根目录(容器内) - TFTP_USER="tftp" # 运行服务的用户 - TFTP_OPTIONS="--secure --create" # 允许创建文件(上传)、限制根目录访问 networks: - tftp-network # 自定义网络(可选) networks: tftp-network: driver: bridge
启动服务:
bashdocker-compose up -d
通过环境变量自定义服务行为,支持以下参数:
| 环境变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
TFTP_DIR | TFTP 服务根目录(容器内路径,需与挂载目录对应) | /tftpboot | -e TFTP_DIR="/data/tftp" |
TFTP_PORT | 容器内监听端口(必须为 UDP 端口,需与 -p 映射的容器端口一致) | 69 | -e TFTP_PORT="6969" |
TFTP_USER | 运行 TFTP 服务的系统用户 | tftp | -e TFTP_USER="root" |
TFTP_OPTIONS | tftp-hpa 额外选项(空格分隔),支持以下常用参数:- --secure:限制访问 TFTP_DIR 内文件- --create:允许上传新文件(需宿主机目录权限)- --verbose:启用详细日志- --timeout 30:设置超时时间(秒) | --secure | -e TFTP_OPTIONS="--create --verbose --timeout 60" |
bashtftp <宿主机IP> tftp> get example.txt # 下载容器内 /tftpboot/example.txt 到本地
需先启用 --create 选项(见上文配置):
bashtftp <宿主机IP> tftp> put local-file.txt # 上传本地文件到容器内 /tftpboot/local-file.txt
权限问题:
宿主机挂载目录(如 /path/to/tftp/files)需确保容器内用户(默认 tftp,UID/GID 为 100:101)有读写权限,否则可能导致文件上传失败。可通过 chmod 777 /path/to/tftp/files 临时测试,生产环境建议通过 --user 参数指定宿主机用户 ID。
防火墙配置:
宿主机防火墙需允许 UDP 69 端口(或自定义端口)的入站流量,否则客户端无法连接。
日志查看:
通过 docker logs tftpd 查看服务运行日志,启用 --verbose 选项可获取更详细的传输记录。
安全性:
TFTP 协议无认证机制,请勿用于传输敏感数据。建议通过网络隔离(如 VLAN)限制访问范围。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务