arm32v7/spipedspiped(发音为"ess-pipe-dee")是一款用于在 socket 地址间创建对称加密和认证管道的工具。它允许用户连接到一个地址(如本地 UNIX socket),并透明地与另一个地址(如远程系统的 UNIX socket)建立加密连接。该工具类似 ssh -L 的端口转发功能,但无需依赖 SSH,仅需预共享对称密钥即可实现安全通信。
主要用途:在不同 socket 地址间建立加密管道,确保数据传输的机密性和完整性。
| 标签 | Dockerfile 链接 |
|---|---|
1.6.4, 1.6, 1, latest | GitHub |
1.6.4-alpine, 1.6-alpine, 1-alpine, alpine | GitHub |
使用容器内置脚本生成密钥文件:
console# 生成密钥并保存至本地 /path/to/keyfile 目录 $ docker run -it --rm -v /path/to/keyfile:/spiped/key arm32v7/spiped spiped-generate-key.sh
生成的密钥文件位于 /path/to/keyfile/key,需通过安全方式(如 scp)传输至通信对端。
将加密的外部连接解密后转发至本地服务(如端口 25 的邮件服务):
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ # 挂载密钥文件(只读) -p 8025:8025 \ # 映射外部端口 --init \ # 使用 init 进程管理信号 arm32v7/spiped \ -d \ # 解密模式 -s '[0.0.0.0]:8025' \ # 监听外部连接的地址(0.0.0.0 表示所有网卡) -t '[127.0.0.1]:25' # 转发目标地址(本地端口 25)
将本地服务连接加密后转发至远程解密端:
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ --init \ arm32v7/spiped \ -e \ # 加密模式 -s '[127.0.0.1]:25' \ # 本地服务地址 -t 'remote-server:8025' # 远程解密端地址(对应解密模式的监听端口)
将加密连接转发至其他容器(如 Elasticsearch):
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ -p 9200:9200 \ --link elasticsearch:elasticsearch \ # 链接至目标容器 --init \ arm32v7/spiped \ -d \ -s '[0.0.0.0]:9200' \ # 监听本地 9200 端口 -t 'elasticsearch:9200' # 转发至 elasticsearch 容器的 9200 端口
若无需绑定特权端口(<1024),可使用非特权用户运行以增强安全性:
console$ docker run -d \ -v /path/to/keyfile:/spiped/key:ro \ -p 9200:9200 \ --link elasticsearch:elasticsearch \ --user spiped \ # 使用 spiped 非特权用户 --init \ arm32v7/spiped \ -d -s '[0.0.0.0]:9200' -t 'elasticsearch:9200'
spiped 容器支持 spiped 原生命令行参数,核心参数如下:
| 参数 | 说明 |
|---|---|
-e | 加密模式:从源地址读取数据并加密后发送至目标地址 |
-d | 解密模式:从源地址接收加密数据并解密后转发至目标地址 |
-s <addr> | 源地址(监听地址或本地服务地址),格式为 [ip]:port 或 unix:path |
-t <addr> | 目标地址(转发目标地址),格式同上 |
-k <file> | 密钥文件路径(容器内默认读取 /spiped/key,无需额外指定) |
-n <num> | 最大并发连接数(默认 100) |
-o <sec> | 连接超时时间(秒,默认 30) |
-F | 前台运行(容器默认已启用,无需额外指定) |
arm32v7/spiped:<version>(标准版)基于 Debian 基础镜像构建,包含完整的系统工具链,适用于大多数场景。若对镜像体积无严格要求,建议优先使用此变体。
arm32v7/spiped:<version>-alpine(轻量版)基于 Alpine Linux 构建,镜像体积显著减小(约 5MB 基础镜像),适用于资源受限环境。由于使用 musl libc 替代 glibc,部分依赖 glibc 特性的场景可能存在兼容性问题。如需额外工具(如 git、bash),需在 Dockerfile 中手动安装。
library/spiped 标签跟踪更新镜像元数据、传输大小等详细信息可参见 repo-info 仓库。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务