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"
评论
发表评论