跳到主要内容

使用 SSH Tunnel 访问容器的服务

SSH Tunnel 是一种通过加密 SSH 连接来转发本地或远程计算机上的网络连接的方法。您可以使用 SSH Tunnel 来访问远程服务器上被防火墙保护的服务,而无需直接将端口暴露在公共互联网上。

配置 ssh key

为了使用 SSH Tunnel,您需要先配置 SSH 密钥。如果您已经有 SSH 密钥,则可以跳过此步骤。相关的信息请下 准备公钥 查看。

如何使用命令访问端口

1. 启动一个 openbayes 的工作空间

复制「SSH 访问」面板中的命令到自己电脑的终端,确认是否可以成功的访问到容器。如果看到如下的内容说明已经成功访问到容器了。

$ ssh root@ssh.openbayes.com -p31552

Last login: Fri May 5 03:47:16 2023 from 10.110.14.192
OpenBayes

目录说明

- /output 工作空间内的数据保存地址,容器停止后,该目录中的内容不会被删除
- /openbayes/home 为 /output 的软链路径,在程序中与上方的路径效果相同
- /input0 - /input4 为数据集绑定地址,此地址为只读权限,不会占用工作空间的存储容量,最多支持同时绑定 5

⚠️ 其他目录下的内容在容器关闭后会被自动删除!更多信息请访问 https://openbayes.com/docs/concepts

使用命令行工具

通过命令 bayes gear init 可以初始化容器中的命令行工具,更多信息见 https://openbayes.com/docs/cli/

(base) root@xushanchuan-fb075g25qn2k-main:/openbayes/home#

2. 在容器中启动一个 gradio 的服务

首先在「工作空间」中打开一个终端,安装 gradio 的依赖:

$ pip install gradio --user

然后创建一个 app.py 文件,内容如下:

import gradio as gr


def greet(name):
return "Hello " + name + "!!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()

最后运行 python app.py 启动服务,可以看到如下的输出:

$ python app.py

Running on local URL: http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

可以看到服务已经成功启动,访问地址为 http://127.0.0.1:7860

3. 通过 ssh tunnel 访问远程端口

使用以下命令启动 ssh tunnel:

$ ssh -N -L localhost:7860:localhost:7860 root@ssh.openbayes.com -p31552

其中 root@ssh.openbayes.com -p31552 要保持和「SSH 访问」面板中看到的一致。

然后就可以在本地访问 http://localhost:7860 获取到服务了:

视频演示

视频演示没有声音,请结合上述内容观看该视频演示。