云计算百科
云计算领域专业知识百科平台

通过公网服务器中转访问内网 Docker 容器的 反向SSH 服务

通过公网服务器中转访问内网 Docker 容器的 反向SSH 服务

1. 背景

你有一台运行在校内网的 GPU 服务器(机器 A),并且你只能访问该服务器上一个 Docker 容器的内部 shell。你需要在家里(机器 C),通过 SSH 连接到这个 Docker 容器。由于校内网的限制,你无法直接从外部访问内网的机器。你有一台拥有公网 IP 的云服务器(机器 B),可以作为中转。

2. 解决方案

核心思路:在 Docker 容器内部运行 autossh,建立反向 SSH 隧道到公网服务器,然后通过公网服务器中转访问 Docker 容器的 SSH 服务。

2.1. 环境准备

  • 机器 A (校内网 GPU 服务器):
    • 只能访问 Docker 容器内部 shell。
    • 容器内需要能访问外网。
  • 机器 B (公网云服务器):
    • 公网 IP:113.44.147.146 (请替换成你自己的 IP)
    • SSH 端口:22
    • 用户名: root (请替换成你自己的用户名)
  • 机器 C (家里的电脑):
    • 能访问外网。

2.2. 具体步骤

  • 进入 Docker 容器:

    • 使用 docker exec -it <container_id/name> /bin/bash 或 docker exec -it <container_id/name> /bin/sh 命令进入 Docker 容器的 shell 环境。
  • 安装 autossh 和 openssh-client (如果容器内没有):

    • 根据你的容器镜像,尝试安装 autossh 和 openssh-client:apt-get update && apt-get install -y openssh-client autossh # 基于Debian/Ubuntu
      apk update && apk add openssh-client autossh # 基于Alpine
      yum update && yum install -y openssh-client autossh # 基于CentOS/RedHat

      • 如果上述命令安装失败,你需要找到对应镜像的包管理器安装,或者尝试使用静态编译的autoss
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » 通过公网服务器中转访问内网 Docker 容器的 反向SSH 服务
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!