如何优雅将数据从实验室远程服务器传输到Aladdin Workshop中

如何优雅将数据从实验室远程服务器传输到Aladdin Workshop

目的

本教程旨在帮助你将 只能通过内网访问的实验室服务器上的数据 通过 终端命令(scprsync)传输到 Aladdin 云端 Workshop 环境


背景说明

在本地机器(称为 A),例如笔记本上使用 VSCode 的 Aladdin 插件,插件在登录账户、创建一个 Workshop 并连接后,会:

  1. 在本地机器上开启一个端口映射(例如 localhost:52680),该端口映射将 Workshop 地址映射到本地端口;
  2. 你可以通过该端口访问 Aladdin Workshop。

为了让局域网中的其他服务器(称为 B)能够访问这个端口并传输数据,我们需要将端口映射暴露到局域网中,便于 B 访问。

注:该教程使用的本地机器 A 是Ubuntu系统,Windows系统可以使用类似的操作。


✅ 步骤 1:在 A 上登录 Aladdin 插件并确认端口映射

1.1 登录 Aladdin 插件

  • A 机器上,确保已经通过 VSCode 的 Aladdin 插件 登录到 Aladdin 云环境。
  • 登录后,创建 Workshop 并连接后,插件会自动为你创建一个本地端口映射(例如是 localhost:52680),该信息可以在 SSH 配置文件中查找到,你可以通过该端口访问云端的 Workshop。

SSH Config Entrance

配置文件示例:

Host workshop_name.bj1
  HostName localhost
  Port 52680
  User root
  IdentityFile  /home/USERNAME/.alaya/vscode-plugin/ssh/6097a13e-e86b-4b47-873a-33e488459eac
  StrictHostKeyChecking no
  UserKnownHostsFile NUL

1.2 验证端口映射

通过以下命令检查是否可以连接:

ssh workshop_name.bj1

如果成功连接,说明端口映射已经正常工作。


步骤 2:在 A 上将 localhost:52680 暴露为局域网端口

2.1 安装 socat

为了让 B 机器能够通过局域网访问 A 上的端口映射,你需要使用 socat 来将 localhost:52680 转发到 A 的局域网 IP 上。

A 上执行以下命令来安装 socat

sudo apt install socat  # 如果还未安装 socat

2.2 使用 socat 映射端口

运行以下命令,把 A 机器的 localhost:52680 映射为局域网地址(假设 A 的局域网 IP 是 192.168.1.10,你可以替换成实际 IP):

sudo socat TCP-LISTEN:9999,fork,reuseaddr TCP:localhost:52680

这会将 localhost:52680 映射为 192.168.1.10:9999,其他局域网机器就可以通过这个 IP 和端口来访问 A 上的 Aladdin 插件。


步骤 3:将私钥复制到 B 机器

3.1 拷贝私钥

为了让 B 机器能够使用 SSH 连接到 A,你需要把用于连接 Aladdin 插件的 私钥 复制到 B 上。假设你的私钥路径为 ~/.alaya/vscode-plugin/ssh/6097a13e-e86b-4b47-873a-33e488459eac,在 B 上执行以下命令:

scp ~/.alaya/vscode-plugin/ssh/6097a13e-e86b-4b47-873a-33e488459eac USERNAME@IP_ADDRESS_B:/home/USERNAME/.ssh/aladin_key

其中 USERNAMEB 机器的用户名,IP_ADDRESS_BB 机器的 IP 地址。

3.2 设置权限

B 上,确保私钥文件的权限设置正确:

chmod 600 ~/.ssh/aladin_key

步骤 4:在 B 上配置 SSH 连接

4.1 编辑 ~/.ssh/config

B 上编辑 ~/.ssh/config 文件,添加如下配置:

Host workshop_name
    HostName 192.168.1.10       # A 的局域网 IP, 根据自己的 IP 地址修改
    Port 9999                   # socat 映射的端口
    User root
    IdentityFile ~/.ssh/aladin_key
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null

这会将 workshop_name 映射为可以通过 A 的局域网 IP 和映射端口访问的 Aladdin Workshop。


步骤 5:使用 scprsync 一键传输数据到 Aladdin Workshop

5.1 使用 scp 传输数据

你可以使用 scp 命令将数据从 B 传输到 A 上的 Aladdin Workshop:

scp -r ./local_data workshop_name:/root/workspace/dataset/

5.2 使用 rsync 传输数据(推荐)

rsync 更适合大文件和增量同步,推荐使用:

rsync -avz ./local_data/ workshop_name:/root/workspace/dataset/

这样你就可以高效地将数据从 B 机器 传输到 Aladdin Workshop 环境了。

rsync 需要在当前机器和目标机器都安装才能正常工作,可以ssh到Aladdin Workshop后使用apt update && apt install rsync 下载。


小贴士

事项建议
插件登录状态必须保持 A 上的 Aladdin 插件登录,端口映射才有效
socat 映射映射端口断开后需手动重启
使用 rsync对大数据集传输更高效,支持增量同步

结构图

[服务器 B]
  scp/rsync -i key → workshop_name → A_IP:9999
                                ↓
[VSCode 插件主机 A]
  localhost:52680 ← 插件登录后映射
                                ↓
[Aladdin 云端 Workshop]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值