专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429

ghostunnel/ghostunnel Docker 镜像 - 轩辕镜像

ghostunnel
ghostunnel/ghostunnel
自动化构建Ghostunnel的Docker镜像,用于快速实现其构建流程。
2 收藏0 次下载activeghostunnel镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

Ghostunnel Docker镜像文档

镜像概述和主要用途

Ghostunnel是一个轻量级TLS代理工具,支持双向认证,用于保护非TLS后端应用。它提供客户端和服务器两种运行模式,可替代stunnel,实现安全的网络通信代理。

  • 服务器模式:运行在后端服务前端,接收TLS加密连接并代理至不安全的后端(TCP端口或UNIX域套接字)
  • 客户端模式:监听不安全连接(TCP或UNIX域套接字)并代理至TLS加密服务

支持平台:Linux(x86-64推荐)、Darwin(macOS)、FreeBSD、OpenBSD、NetBSD及Windows(功能受限)。

核心功能和特性

访问控制
  • 强制双向认证,要求所有连接提供有效客户端证书
  • 支持基于客户端证书主题(或主题备用名称)的访问控制,适用于无原生访问控制的服务
证书热交换
  • 运行时无需中断现有连接即可重载证书
  • 支持信号触发(SIGUSR1)或定时自动重载,适配短期证书场景
  • 支持SO_REUSEPORT的平台可实现最小停机时间的重启
监控与指标
  • 内置状态监控功能,可收集连接数、新建连接速率、连接生命周期、超时等指标
  • 支持导出至Graphite等监控系统,便于运维分析
安全性设计
  • 默认启用TLS 1.2+及安全密码套件
  • 支持PKCS#11接口,可配合硬件安全模块(HSM)保护私钥
  • 提供安全默认配置,防止意外误配置

使用场景和适用范围

保护非TLS后端服务
  • 为无TLS能力的遗留应用提供TLS终结能力
  • 避免直接修改后端服务代码实现加密通信
客户端TLS代理
  • 允许不支持TLS的客户端通过代理访问TLS加密服务
  • 集中管理客户端证书和TLS配置
细粒度访问控制
  • 为无原生权限控制的服务添加基于证书的访问策略
  • 与SPIFFE X.509 SVID兼容,支持云原生环境身份验证
证书自动化场景
  • 配合短期证书管理系统(如Vault)实现证书自动轮换
  • 满足合规要求下的证书快速更新需求

详细使用方法和配置说明

基础命令格式
bash
# 查看帮助
ghostunnel --help
ghostunnel server --help
ghostunnel client --help
证书准备

需准备以下证书文件(可通过certstrap或OpenSSL生成):

  • CA证书(cacert.pem)
  • 服务器证书/密钥(PKCS#12 keystore或PEM格式)
  • 客户端证书/密钥(PKCS#12 keystore或PEM格式)
服务器模式
功能说明

监听TLS连接,解密后转发至后端服务。

基本参数
参数说明
--listen监听TLS连接的地址(格式:host:port或UNIX域套接字路径)
--target后端服务地址(格式:host:port或UNIX域套接字路径)
--keystore服务器证书密钥库(PKCS#12或PEM格式,自动检测)
--cert/--key分离的证书链和私钥文件(PEM格式,替代--keystore)
--cacert信任的CA证书文件(PEM格式)
--allow-all允许所有有效证书的客户端连接
--allow-cn允许指定CN的客户端证书(可多次指定)
--allow-ou允许指定OU的客户端证书(可多次指定)
--allow-dns允许指定DNS SAN的客户端证书(可多次指定)
--allow-uri允许指定URI SAN的客户端证书(可多次指定)
--status状态监控端口(格式:host:port或UNIX域套接字路径)
--timed-reload证书定时重载间隔(如300s)
--quiet抑制指定类型日志(conns/conn-errs/handshake-errs/all)
使用示例
  1. 启动后端服务(如netcat):

    bash
    nc -l localhost 8080
    
  2. 启动Ghostunnel服务器模式:

    bash
    ghostunnel server \
      --listen localhost:8443 \
      --target localhost:8080 \
      --keystore server-keystore.p12 \
      --cacert cacert.pem \
      --allow-cn client \
      --status localhost:8081 \
      --timed-reload 300s
    
  3. 客户端连接测试:

    bash
    openssl s_client \
      -connect localhost:8443 \
      -cert client-combined.pem \
      -key client-combined.pem \
      -CAfile cacert.pem
    
客户端模式
功能说明

监听不安全连接,加密后转发至TLS服务。

基本参数
参数说明
--listen监听本地连接的地址(格式:host:port或UNIX域套接字路径)
--target远程TLS服务地址(格式:host:port)
--keystore客户端证书密钥库(PKCS#12或PEM格式,自动检测)
--cert/--key分离的证书链和私钥文件(PEM格式,替代--keystore)
--cacert信任的CA证书文件(PEM格式)
--server-cn验证服务器证书的CN(可选)
--status状态监控端口(格式:host:port或UNIX域套接字路径)
--timed-reload证书定时重载间隔(如300s)
使用示例
  1. 启动TLS后端服务:

    bash
    openssl s_server \
      -accept 8443 \
      -cert server-combined.pem \
      -key server-combined.pem \
      -CAfile cacert.pem
    
  2. 启动Ghostunnel客户端模式:

    bash
    ghostunnel client \
      --listen localhost:8080 \
      --target localhost:8443 \
      --keystore client-keystore.p12 \
      --cacert cacert.pem \
      --status localhost:8081
    
  3. 测试连接:

    bash
    nc -v localhost 8080
    
全隧道模式(客户端+服务器)
功能说明

组合客户端和服务器模式,实现端到端加密隧道。

部署步骤
  1. 启动最终后端服务:

    bash
    nc -l localhost 8001
    
  2. 启动服务器端Ghostunnel:

    bash
    ghostunnel server \
      --listen localhost:8002 \
      --target localhost:8001 \
      --keystore server-combined.pem \
      --cacert cacert.pem \
      --allow-cn client
    
  3. 启动客户端Ghostunnel:

    bash
    ghostunnel client \
      --listen localhost:8003 \
      --target localhost:8002 \
      --keystore client-keystore.p12 \
      --cacert cacert.pem
    
  4. 测试端到端连接:

    bash
    nc -v localhost 8003
    

Docker部署方案

镜像信息
  • 镜像名称:ghostunnel/ghostunnel
  • 官方仓库:Docker Hub
服务器模式部署示例
bash
docker run -d \
  --name ghostunnel-server \
  -p 8443:8443 \
  -p 8081:8081 \
  -v $(pwd)/test-keys:/etc/ghostunnel/keys \
  ghostunnel/ghostunnel \
  server \
    --listen 0.0.0.0:8443 \
    --target backend-service:8080 \
    --keystore /etc/ghostunnel/keys/server-keystore.p12 \
    --cacert /etc/ghostunnel/keys/cacert.pem \
    --allow-cn client \
    --status 0.0.0.0:8081 \
    --timed-reload 300s
客户端模式部署示例
bash
docker run -d \
  --name ghostunnel-client \
  -p 8080:8080 \
  -v $(pwd)/test-keys:/etc/ghostunnel/keys \
  ghostunnel/ghostunnel \
  client \
    --listen 0.0.0.0:8080 \
    --target tls-service.example.com:443 \
    --keystore /etc/ghostunnel/keys/client-keystore.p12 \
    --cacert /etc/ghostunnel/keys/cacert.pem \
    --server-cn tls-service.example.com
Docker Compose示例
yaml
version: '3'
services:
  ghostunnel-server:
    image: ghostunnel/ghostunnel
    ports:
      - "8443:8443"
      - "8081:8081"
    volumes:
      - ./test-keys:/etc/ghostunnel/keys
    command: >
      server
      --listen 0.0.0.0:8443
      --target backend:8080
      --keystore /etc/ghostunnel/keys/server-keystore.p12
      --cacert /etc/ghostunnel/keys/cacert.pem
      --allow-cn client
      --status 0.0.0.0:8081
      --timed-reload 300s
    depends_on:
      - backend

  backend:
    image: alpine
    command: nc -l -p 8080

  ghostunnel-client:
    image: ghostunnel/ghostunnel
    ports:
      - "8080:8080"
    volumes:
      - ./test-keys:/etc/ghostunnel/keys
    command: >
      client
      --listen 0.0.0.0:8080
      --target ghostunnel-server:8443
      --keystore /etc/ghostunnel/keys/client-keystore.p12
      --cacert /etc/ghostunnel/keys/cacert.pem

高级特性说明

证书热交换
  • 信号触发:发送SIGUSR1信号至进程触发证书重载
    bash
    kill -USR1 <ghostunnel-pid>
    
  • 定时重载:通过--timed-reload <interval>设置自动重载间隔(如--timed-reload 5m)
  • 无缝重启:支持SO_REUSEPORT的平台可实现新实例先启动再关闭旧实例,避免连接中断
监控与指标
  • 状态端口:通过--status <host:port>启用指标端点,支持以下路径:
    • /metrics:Prometheus格式指标
    • /health:健康检查端点
    • /debug/pprof:性能分析接口(需--enable-pprof)
  • 指标类型:连接数、连接速率、握手耗时、连接生命周期、错误统计等
访问控制策略

支持多种证书验证规则(逻辑OR关系,满足其一即可):

  • --allow-all:允许所有有效证书
  • --allow-cn <cn>:验证客户端证书CN
  • --allow-ou <ou>:验证客户端证书OU
  • --allow-dns <dns>:验证客户端证书DNS SAN
  • --allow-uri <uri>:验证客户端证书URI SAN(支持SPIFFE SVID)
日志选项

通过--quiet参数抑制特定类型日志:

  • --quiet=conns:抑制连接建立/关闭日志
  • --quiet=conn-errs:抑制连接错误日志(握手后)
  • --quiet=handshake-errs:抑制握手错误日志(适用于K8s健康检查场景)
  • --quiet=all:抑制所有日志
PKCS#11/HSM支持

通过PKCS#11接口使用硬件安全模块保护私钥,需指定PKCS#11模块路径和槽信息:

bash
ghostunnel server \
  --listen :8443 \
  --target :8080 \
  --pkcs11-module /usr/lib/pkcs11.so \
  --pkcs11-token-label "MyToken" \
  --pkcs11-pin "1234" \
  --cacert cacert.pem \
  --allow-cn client
SPIFFE Workload API集成

支持从SPIFFE Workload API获取动态证书和CA:

bash
ghostunnel server \
  --listen :8443 \
  --target :8080 \
  --spiffe-svid-path /run/spire/sockets/agent.sock \
  --spiffe-allow-uri spiffe://example.org/service \
  --cacert /run/spire/bundle/bundle.pem
查看更多 ghostunnel 相关镜像 →
rancher/squareup-ghostunnel logo
rancher/squareup-ghostunnel
by Rancher by SUSE
认证
暂无描述
500K+ pulls
上次更新:1 年前
rancher/mirrored-squareup-ghostunnel logo
rancher/mirrored-squareup-ghostunnel
by Rancher by SUSE
认证
暂无描述
500K+ pulls
上次更新:1 年前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ghostunnel/ghostunnel
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:13763429
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.