spiped(发音为 "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)将密钥文件传输至通信另一端的主机。
1. 解密端部署(接收加密连接并转发至目标服务)
将加密连接从端口 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' # 目标服务地址(容器内视角)
2. 连接至关联容器
将加密连接从端口 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' # 目标服务地址(使用关联容器名)
3. 以非特权用户运行
若无需绑定特权端口,可指定 --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'
4. 加密端部署(发送加密连接)
在通信另一端(发送方),使用 -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 | https://github.com/TimWolla/docker-spiped/blob/f7100845a437d5e72c79d384113cd657ca6f93de/1.6/Dockerfile |
1.6.4-alpine, 1.6-alpine, 1-alpine, alpine | https://github.com/TimWolla/docker-spiped/blob/2a6429d25e5ebccc2a8075cb8ec85d5dd951579e/1.6/alpine/Dockerfile |
amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x注:本镜像为
ppc64le架构专用构建,更多架构信息参见 https://github.com/docker-library/official-images#architectures-other-than-amd64%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务