文章目录
- 创建开发机
- 使用 SSH 远程连接开发机
- 使用密码进行 SSH 远程连接
- 使用 VScode 进行 SSH 远程连接
- 端口映射
- 核心目标
- 开发机端口映射的工作方式
- 使用 VScode 进行端口映射
- 运行 hello_world.py 代码进行测试
- 测试成功页面
- 参考文献
创建开发机
InternStudio控制台
这里先做测试,因此选 10% A100 * 1 即可
运行时长用默认的 8 小时,后面不用了记得及时停止就好:
使用 SSH 远程连接开发机
使用密码进行 SSH 远程连接
复制登录命令到 powershell 中。回车后需要输入密码,再将密码复制后粘贴到终端中即可。
这里的 37367 是开发机所使用的 SSH 端口,一般使用的都是 22 端口,没有这个端口号的话是连不上 SSH 的,并且每个人的端口都不一样。
如果在连接开发机时出现连不上的情况,那就需要检查一下是不是端口错了。
输入以下命令进行测试:
hostname
uname -a
nvidia-smi
使用 VScode 进行 SSH 远程连接
首先需要安装 Remote - SSH 插件
安装完成插件以后,点击侧边栏的远程连接图标,在SSH中点击“+”按钮,添加开发机SSH连接的登录命令。
将登录命令复制下来,然后将命令粘贴到弹出的窗口中,最后回车:
配置文件这一块默认就好:
然后在右下角弹出来的提示窗口中点击“连接”就可以远程到开发机中了
端口映射
核心目标
将外网中的任意端口映射到内网中的相应端口,实现内网与外网之间的通信
通过端口映射,实现在外网访问内网中的服务或应用
开发机端口映射的工作方式
ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
上述指令的工作流程:
- 个人 PC 会远程连接到开发机唯一暴露在外的 37367 端口
- 当在个人 PC 上执行这个 SSH 命令后,SSH 客户端会在本地机器的 7860 端口上监听
- 任何发送到本地 7860 端口的流量,都会被 SSH 隧道转发到远程服务器的 127.0.0.1 地址上的 7860 端口
这意味着,即使开发机的这个端口没有直接暴露给外部网络,我们也可以通过这个隧道安全地访问远程服务器上的服务。
使用 VScode 进行端口映射
运行 hello_world.py 代码进行测试
先安装必要的包:
pip install gradio==4.29.0
创建 hello_world.py
文件:
import socket
import re
import gradio as gr
# 获取主机名
def get_hostname():
hostname = socket.gethostname()
match = re.search(r'-(\d+)$', hostname)
name = match.group(1)
return name
# 创建 Gradio 界面
with gr.Blocks(gr.themes.Soft()) as demo:
html_code = f"""
<p align="center">
<a href="https://intern-ai.org.cn/home">
<img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;">
</a>
</p>
<h1 style="text-align: center;">☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1>
<h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2>
<p align="center">
<a href="https://github.com/InternLM/Tutorial/blob/camp3">
<img src="https://oss.lingkongstudy.com.cn/blog/202410081252022.png" alt="Logo" width="50%" style="border-radius: 5px;">
</a>
</p>
"""
gr.Markdown(html_code)
demo.launch()
执行文件:
python hello_world.py
测试成功页面
参考文献
- https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/linux