NVIDIA DSX Air免费VPS最高60G60C配置及保活教程

 通过 https://dsx-air.nvidia.com/ 注册并成功申请到试用资格

打开 https://dsx-air.nvidia.com/simulations 找到自己的simulationsID

如果是ubuntu系统的话,账户默认ubuntu,密码默认nvidia



1. 注册与配置福利

  • 注册条件:必须使用域名邮箱(不支持 Gmail、QQ、Outlook 等公共邮箱),且需要纯净的 IP 节点。

  • 免费配置:成功申请后可获得为期 1 年的试用,账号配额最高达 60核 vCPU 和 60GB 内存(共 10,000 小时)。

2. 创建虚拟机 (早上一大早或者12点以后可以很快开机,不用着急)

  • 创建建议:在 Simulations 页面拖拽 oob-mgmt-server 模板创建,因为默认绑定好了出站网卡(outbound),方便后续映射网络。

  • 配置限制:由于近期申请人数多、资源紧张,建议调低配置(如 1C1G,最大 100G 硬盘)。若配置过高(>4C4G)可能会提示资源不足导致无法开机。

  • 系统重装:默认支持 Ubuntu 等系统,可以通过 SSH 执行第三方 DD 脚本(如 reinstall)将系统重装为自己习惯的 Debian 或 Windows。

3. 网络与端口映射

  • 该机器为 NAT 架构,没有独立的公网 IP。

  • 需要手动到虚拟机的 Services 设置中,对 eth0 (outbound) 进行 TCP 端口映射(例如映射 SSH 的 22 端口),映射完成后即可通过公网进行访问。



4. 核心:保活机制

  • 72小时倒计时:虽然账号有 1 年试用期,但单台虚拟机强制最长只能设置 72 小时的运行/休眠倒计时。

  • 如何保活:必须每 3 天手动登录一次网页后台,在 Topology 菜单中找到倒计时,选择 “Edit Sleep Date” 来延长关机时间。只要持续更新日期,机器就不会被关闭。

5. 机器评价

  • 该机器的网络节点位于 AWS west-1(美西俄勒冈州)。

6. 可以借助 https://github.com/bin456789/reinstall 的脚本将系统DD更换为我们习惯的系统

    自动保活要用到API,来这里创建你的API:
https://org.ngc.nvidia.com/account/api-keys

 保活签到脚本:



#!/usr/bin/env bash
set -euo pipefail

NVIDIA_AIR_API_BASE="https://api.air-ngc.nvidia.com/api/v3"
NVIDIA_AIR_API_KEY="你的_NGC_API_KEY"
SIMULATION_ID="你的_simulation_id"

target_sleep_at="$(
python3 - <<'PY'
from datetime import datetime, timedelta, timezone

target = datetime.now(timezone.utc) + timedelta(hours=71)
print(target.replace(microsecond=0).isoformat().replace("+00:00", "Z"))
PY
)"

payload="$(mktemp)"
before_body="$(mktemp)"
after_body="$(mktemp)"
trap 'rm -f "$payload" "$before_body" "$after_body"' EXIT

printf '{"sleep_at":"%s"}' "$target_sleep_at" > "$payload"

simulation_url="${NVIDIA_AIR_API_BASE%/}/simulations/${SIMULATION_ID}/"

echo "target_sleep_at=$target_sleep_at"

curl --ipv4 -sS \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: air-sdk/1.3.1' \
  -H 'X-Air-Sdk-Version: 1.3.1' \
  -H "Authorization: Bearer $NVIDIA_AIR_API_KEY" \
  "$simulation_url" > "$before_body"

echo "before_sleep_at=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1])).get("sleep_at"))' "$before_body")"

curl --ipv4 -sS -X PATCH \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: air-sdk/1.3.1' \
  -H 'X-Air-Sdk-Version: 1.3.1' \
  -H "Authorization: Bearer $NVIDIA_AIR_API_KEY" \
  --data @"$payload" \
  "$simulation_url" > "$after_body"

after_sleep_at="$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1])).get("sleep_at"))' "$after_body")"
echo "after_sleep_at=$after_sleep_at"

if [ "$after_sleep_at" != "$target_sleep_at" ]; then
  echo "verify failed: expected=$target_sleep_at actual=$after_sleep_at" >&2
  exit 1
fi

echo "ok"




评论

此博客中的热门博文