ppc64le/spipedspiped(发音为 "ess-pipe-dee")是一个用于在套接字地址之间创建对称加密和认证管道的工具。通过该工具,用户可以连接到一个地址(例如本地主机上的 UNIX 套接字),并透明地与另一个地址(例如另一台主机上的 UNIX 套接字)建立连接。其功能类似于 ssh -L,但不依赖 SSH,且需要预共享对称密钥。
本 Docker 镜像提供了 spiped 工具的容器化部署方式,便于快速构建加密通信管道,适用于需要安全传输数据的场景。
使用以下命令生成新的密钥文件(将保存至 /path/to/keyfile/spiped-keyfile):
bashdocker run -it --rm -v /path/to/keyfile:/spiped/key ppc64le/spiped spiped-generate-key.sh
生成后,需通过安全方式(如 scp)将密钥文件传输至通信另一端的主机。
将加密连接从端口 8025 转发至本地 25 端口(如邮件服务):
bashdocker run -d \ -v /path/to/keyfile:/spiped/key:ro \ # 挂载密钥文件(只读) -p 8025:8025 \ # 映射端口(主机:容器) --init \ # 使用 init 进程处理信号 ppc64le/spiped \ -d \ # 解密模式(decrypt) -s '[0.0.0.0]:8025' \ # 监听地址(容器内) -t '[127.0.0.1]:25' # 目标服务地址(容器内视角)
将加密连接从端口 9200 转发至名为 elasticsearch 的关联容器的 9200 端口:
bashdocker run -d \ -v /path/to/keyfile:/spiped/key:ro \ -p 9200:9200 \ --link elasticsearch:elasticsearch \ # 关联容器(目标服务) --init \ ppc64le/spiped \ -d \ -s '[0.0.0.0]:9200' \ -t 'elasticsearch:9200' # 目标服务地址(使用关联容器名)
若无需绑定特权端口,可指定 --user spiped 以非特权用户运行,增强安全性:
bashdocker run -d \ -v /path/to/keyfile:/spiped/key:ro \ --user spiped \ # 指定非特权用户 -p 9200:9200 \ --link elasticsearch:elasticsearch \ --init \ ppc64le/spiped \ -d \ -s '[0.0.0.0]:9200' \ -t 'elasticsearch:9200'
在通信另一端(发送方),使用 -e 参数启用加密模式,将本地服务通过加密管道发送至目标主机:
bashdocker run -d \ -v /path/to/keyfile:/spiped/key:ro \ --init \ ppc64le/spiped \ -e \ # 加密模式(encrypt) -s '[0.0.0.0]:25' \ # 本地服务监听地址 -t 'target-host:8025' # 目标解密端地址(远程主机:端口)
spiped 容器支持直接传递 spiped 原生参数,核心参数如下:
| 参数 | 说明 | 模式 |
|---|---|---|
-e | 加密模式(加密发送数据) | 加密端 |
-d | 解密模式(解密接收数据) | 解密端 |
-s <addr> | 源套接字地址(监听地址) | 两端均需 |
-t <addr> | 目标套接字地址(转发地址) | 两端均需 |
-k <file> | 密钥文件路径(容器内默认为 /spiped/key) | 两端均需 |
-n <num> | 最大并发连接数 | 可选 |
-o <sec> | 连接超时时间(秒) | 可选 |
完整参数列表可通过
docker run --rm ppc64le/spiped命令查看。
ppc64le/spiped 镜像提供以下变体,适用于不同场景:
ppc64le/spiped:<version>1.6.4, 1.6, 1, latestppc64le/spiped:<version>-alpine1.6.4-alpine, 1.6-alpine, 1-alpine, alpine| 标签系列 | Dockerfile 链接 |
|---|---|
1.6.4, 1.6, 1, latest | GitHub |
1.6.4-alpine, 1.6-alpine, 1-alpine, alpine | GitHub |
amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x注:本镜像为
ppc64le架构专用构建,更多架构信息参见 Docker 官方镜像文档。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务