spiped(发音为“ess-pipe-dee”)是一款用于在 socket 地址之间创建对称加密和认证管道的工具。它允许用户连接到一个地址(如本地 UNIX socket),并透明地建立到另一个地址(如远程系统的 UNIX socket)的安全连接。该工具类似于 ssh -L 的端口转发功能,但无需依赖 SSH,仅需预共享对称密钥即可实现轻量级加密通信。
本 Docker 镜像封装了 spiped 工具,提供开箱即用的加密管道功能,适用于需要安全转发网络连接的场景。
-F 参数),适配容器生命周期管理spiped)身份运行,降低权限风险本镜像默认从 /spiped/key 文件读取密钥(-k 参数),并强制以前台模式运行(-F 参数)。其他参数与原生 spiped 工具完全兼容。可通过以下命令查看完整参数列表:
console$ docker run -it --rm mips64le/spiped usage: spiped {-e | -d} -s <source socket> -t <target socket> -k <key file> [-DFj] [-f | -g] [-n <max # connections>] [-o <connection timeout>] [-p <pidfile>] [-r <rtime> | -R]
核心参数说明:
-e:加密模式(将明文连接加密后转发到目标)-d:解密模式(将加密连接解密后转发到目标)-s <source socket>:源 socket 地址(格式:[IP]:端口 或 unix:路径)-t <target socket>:目标 socket 地址(格式同上)-k <key file>:密钥文件路径(镜像中固定为 /spiped/key,需通过挂载提供)-n <num>:最大并发连接数限制-o <timeout>:连接超时时间(秒)将加密连接从宿主机 8025 端口转发到本地 25 端口(如邮件服务):
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ # 挂载密钥文件(只读) -p 8025:8025 \ # 映射端口 --init \ # 确保正确处理信号 mips64le/spiped \ -d -s '[0.0.0.0]:8025' -t '[127.0.0.1]:25' # 解密模式:源地址0.0.0.0:8025,目标127.0.0.1:25
将加密连接从宿主机 9200 端口转发到名为 elasticsearch 的容器 9200 端口:
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ -p 9200:9200 \ --link elasticsearch:elasticsearch \ # 链接目标容器 --init \ mips64le/spiped \ -d -s '[0.0.0.0]:9200' -t 'elasticsearch:9200' # 目标地址为容器名:端口
若无需绑定特权端口(<1024),可通过 --user spiped 以非特权用户运行,增强安全性:
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ --user spiped \ # 切换为非特权用户 -p 9200:9200 \ --link elasticsearch:elasticsearch \ --init \ mips64le/spiped \ -d -s '[0.0.0.0]:9200' -t 'elasticsearch:9200'
spiped 依赖预共享对称密钥,可通过以下命令生成密钥文件(保存至 /path/to/keyfile/ 目录):
console$ docker run -it --rm \ -v /path/to/keyfile:/spiped/key \ # 挂载密钥文件目录(可写) mips64le/spiped spiped-generate-key.sh # 执行密钥生成脚本
生成后,密钥文件 spiped-keyfile 将保存至 /path/to/keyfile/,需通过安全方式(如 scp)传输到通信双方。
以下是使用 docker-compose 部署 spiped 加密转发 Elasticsearch 的示例:
yamlversion: '3' services: spiped: image: mips64le/spiped volumes: - /path/to/keyfile:/spiped/key:ro # 挂载密钥文件(只读) ports: - "9200:9200" user: spiped # 非特权用户运行 init: true command: -d -s '[0.0.0.0]:9200' -t 'elasticsearch:9200' depends_on: - elasticsearch elasticsearch: image: elasticsearch:7.14.0 environment: - discovery.type=single-node
*镜像支持以下架构(mips64le 架构不支持**本镜像):
amd64arm32v5arm32v6arm32v7arm64v8i386ppc64leriscv64s390x本镜像标签与*** spiped 版本同步,具体标签及对应 Dockerfile 可参考 Docker Hub。
mips64le 架构不支持本镜像,部署前请确认目标架构是否在支持列表中。:ro)挂载,避免容器内篡改;密钥传输需通过安全通道。--init 参数,确保容器能正确处理 SIGTERM 等信号,实现优雅退出。--user spiped 降低权限风险。本镜像包含的 spiped 软件许可证信息详见 tarsnap.com/spiped.html 或 源码仓库。
镜像中可能包含其他软件(如基础系统组件、Bash 等),其许可证可能不同。用户需自行确保对本镜像的使用符合所有包含软件的许可证要求。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429