NVidia DGX Spark 买来之后,一番操作之后上手,可是如果期望可以远程使用,就需要进行远程连接与安全配置。本文将快速过一遍这些内容。至于 DGX Spark 怎么开机初始化就跳过,说明书上都有。
需要注意 DGX Spark 是 Ubuntu ARM64 系统,所以如果想安装其他软件,务必选择正确的架构 (aarch64 或 arm64)
如何开启远程连接
DGX Spark 使用 ssh 方式进行远程连接,确保 ssh 服务已经安装并启动:
systemctl status ssh
看到 Active: active (running) 的显示就说明已经启用了远程连接,这是基础,后续的远程连接必须依赖这个服务正常运行。
客户端如何远程连接使用
当 ssh 开启之后,本机如果有 ssh 客户端就可以直接通过 ssh 使用了。不过 Nvidia 官方提供了一个更方便的图形工具 nvidia-sync:
https://build.nvidia.com/spark/connect-to-your-spark/sync
它提供了远程连接并管理 DGX Spark 的界面以及 SSH 终端,还提供 vscode 和 Cursor 远程开发环境的功能,非常方便,推荐使用。
它同时提供 Windows、Linux、MacOS 版本。
nvidia-sync 第一次添加设备的时候依赖用户名密码认证,然后会生成一个专用的 ssh 密钥对,添加密钥到远程服务器的 ~/.ssh/authorized_keys 文件中,后续连接时使用这个密钥进行认证,不再通过用户名密码。所以如果想使用 nvidia-sync,不能关闭 SSH 的密码认证。
局域网连接
对于局域网用户来说,nvidia-sync 在 Devices 页面直接可以扫描到当前局域网正在运行的 DGX Spark 设备,无需手动输入 IP 地址,点击连接后输入用户名密码即可。
跨网络连接
如果需要跨网络远程连接,则需要启用 tailscale 服务: https://tailscale.com/
这里首先要解释一个容易被忽略的 IPv6 安全问题。家庭网络中的 IPv4 设备通常位于路由器 NAT 后面,外网无法直接发起连接;但 DGX Spark 如果获得了全球单播 IPv6 地址,通信不再经过 IPv4 NAT,理论上可以被互联网直接访问。一旦路由器或主机防火墙允许 IPv6 入站,SSH 端口也会直接暴露给整个 IPv6 互联网。
直接使用公网 IPv6 远程连接虽然可行,但意味着需要自行维护防火墙、动态 IPv6 地址或域名、访问来源和 SSH 防护。更稳妥的方式是阻止公网入站连接,通过 Tailscale 建立一个只有授权用户和设备才能访问的加密 overlay 网络。这样既不需要公网 IPv4、端口转发或固定 IPv6 地址,也不需要将 DGX Spark 的 SSH 服务暴露到公网。
Tailscale 是一个基于 WireGuard 的 mesh VPN 服务,它负责设备发现、身份认证、NAT 穿透和端到端加密。更重要的是,NVIDIA Sync 的跨网络远程连接能力就是基于其内置的 Tailscale 集成实现的:局域网内优先直接连接,离开局域网后自动切换到 Tailscale,无需手动选择连接方式。
服务端配置
在 DGX Spark 上通过 SSH 连接到终端,先检查是否已预装 Tailscale:
tailscale version
如果提示命令不存在,可以参考官方文档安装 https://build.nvidia.com/spark/tailscale/instructions :
# 安装依赖工具
sudo apt install -y curl gnupg
# 添加 Tailscale 签名密钥
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | \
sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg > /dev/null
# 添加 Tailscale 软件源
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list | \
sudo tee /etc/apt/sources.list.d/tailscale.list
# 安装 Tailscale
sudo apt update && sudo apt install -y tailscale
安装完成后,启动并认证 Tailscale:
sudo tailscale up
按照终端提示打开浏览器,注册并登录 Tailscale 账号之后,应该就可以在管理员控制台看到你的 DGX Spark 设备在运行了,至此服务端配置结束。
客户端配置
nvidia-sync 已经集成了 Tailscale 客户端功能,无需单独安装 tailscale 命令。在 Settings 页面可以看到 Tailscale 选项,点击 Enable Tailscale 按钮,同样在弹出的浏览器窗口登录 Tailscale 账号,就可以在管理员控制台看到你的 nvidia-sync 的 Tailscale 连接状态了。
启用之后,当你的客户机和 DGX Spark 不在同一局域网时,nvidia-sync 会自动通过 Tailscale 隧道进行连接,无需手动切换。
需要注意的是,nvidia-sync 内置的 Tailscale 功能只在 nvidia-sync 应用内生效,不会在系统层面配置 DNS 解析。如果想在终端或其他工具(如 VS Code)中使用 Tailscale 分配的域名 (*.ts.net) 连接 DGX Spark,仍需在客户端单独安装 Tailscale 客户端: https://tailscale.com/download。
使用 Tailscale 地址连接
客户端使用 Tailscale 管理控制台 Machines 页面中的 ADDRESSES 提供的任意地址(100.x.x.x 的私有 ipv4 地址,fd7a:115c: 开头的 ipv6 地址,或 x.x.ts.net 域名)就可以远程连接了。特别注意一点,如果想要使用域名连接 (*.ts.net),需要保持 tailscale 客户端运行的情况下才可以,否则无法解析域名。
tailscale 客户端必须全程保持运行 (保持 nvidia-sync 全程打开,并且不要关闭 tailscale 即可),因为它通过 VPN 方式连接,一旦断掉会导致远程连接中断。
远程协作
Tailscale 支持远程协作,可以分享 DGX Spark 设备给其他用户,这样目标用户也可以通过 Tailscale 连接到你的 DGX Spark 设备,实现远程协作。
只要在 Tailscale 管理控制台的 Machines 页面中,选中 DGX Spark 设备并点击 Share 按钮,就可以分享你的 DGX Spark 设备给目标用户了。目标用户就可以在自己的 Tailscale 管理控制台看到被分享的 DGX Spark 设备,然后按照上述 客户端配置 的操作进行一遍就可以远程连接了。
深入理解 Tailscale
Tailscale 并不只是一个“免配置 WireGuard 客户端”。WireGuard 负责建立轻量、端到端加密的隧道,但原生 WireGuard 并不负责用户身份认证、设备发现、密钥分发、NAT 穿透和访问策略。Tailscale 的核心价值,就是自动完成这些原本需要管理员手动维护的工作。官方的 How Tailscale works(https://tailscale.com/blog/how-tailscale-works) 对完整架构有更详细的说明。
Tailscale 的工作原理
Tailscale 将网络拆分为控制平面和数据平面:
- 控制平面由 Tailscale 的协调服务器负责,用于认证用户与设备、交换设备公钥和连接信息、分发访问策略。它只负责协调连接,不承载实际业务流量。
- 数据平面由设备之间的 WireGuard 隧道组成。每台设备都在本地生成私钥,私钥不会离开设备;两台设备之间的流量端到端加密,Tailscale 无法读取。
整个过程可以类比 TCP 三次握手:Coordination Server 先帮助双方完成身份确认和连接协商,协商完成后,客户端与 DGX Spark 再建立独立的数据通道。不过它并不是 TCP 握手协议,Coordination Server 也不会进入后续业务流量路径。
sequenceDiagram
participant Client as 客户端 / NVIDIA Sync
participant Control as Coordination Server
participant Spark as DGX Spark
Note over Client,Spark: 控制平面:建立连接前必须由 Coordination Server 协调
Client->>Control: 登录并注册设备公钥、地址
Spark->>Control: 登录并注册设备公钥、地址
Control-->>Client: 返回 Spark 地址、公钥和访问策略
Control-->>Spark: 返回客户端地址、公钥和访问策略
Note over Client,Spark: 数据平面:协调完成后,业务流量不经过 Coordination Server
Client->>Spark: 建立点对点 WireGuard 加密连接
Client->>Spark: SSH、文件传输、远程开发流量
两台设备开始通信时,会先借助 Tailscale 的协调服务和 DERP 中继服务器发现彼此,再尝试通过 NAT 穿透建立直接 UDP 连接。大多数情况下,建立连接后的流量会直接在客户端和 DGX Spark 之间传输,不需要经过中心 VPN 网关。
如果双方所在网络禁止 UDP 或使用难以穿透的 NAT,数据平面会依次尝试使用同一 tailnet 内配置的 Peer Relay,或退回到全球分布的 DERP 服务器转发流量,Coordination Server 仍然不承载业务流量。无论采用直接连接、Peer Relay 还是 DERP,传输的都是 WireGuard 加密数据,中继服务器无法解密;不同 连接方式(https://tailscale.com/docs/reference/connection-types) 的主要差别是延迟和吞吐量,而不是加密强度。
可以使用以下命令检查实际连接路径:
tailscale ping <设备名称或 Tailscale IP>
tailscale status
tailscale netcheck
输出中的 direct 表示点对点直连,relay 表示通过 DERP 中继,peer-relay 表示通过自建的 Peer Relay 中继。如果远程开发时速度明显偏慢,应先检查连接是否一直停留在 relay。
Tailscale 与传统 VPN 的主要区别如下:
| 对比项 | 传统 VPN | Tailscale |
|---|---|---|
| 网络结构 | 通常通过中心 VPN 网关转发流量 | 优先在设备之间建立点对点 mesh 连接 |
| 身份与配置 | 常依赖账号密码、证书和手工网络配置 | 集成身份提供商,并自动分发设备公钥和策略 |
| 穿透与开放端口 | 通常需要公网入口、端口转发或固定网关 | 自动执行 NAT 穿透,失败时使用加密中继 |
| 访问控制 | 常按网段和 IP 地址授权 | 可按用户、用户组、设备标签、端口和设备状态授权 |
| 流量出口 | 常默认让客户端互联网流量经过 VPN 网关 | 默认只处理 tailnet 内部流量;需要时可单独配置 Exit Node |
因此 Tailscale 更准确的定位是一个基于身份的加密 overlay 网络,而不是用于隐藏公网 IP 的传统“代理型 VPN”。
为什么 NVIDIA Sync 使用 Tailscale
DGX Spark 通常放在家庭或办公室网络中,没有固定公网 IP,还可能位于多层 NAT 或运营商 CGNAT 后面。直接把 SSH 端口映射到公网不仅配置麻烦,还会持续暴露登录入口。Tailscale 正好解决了设备发现、动态地址、NAT 穿透和加密连接问题,无需为 DGX Spark 开放公网入站端口。
NVIDIA Sync 官方文档(https://docs.nvidia.com/sync/latest/tailscale.html) 明确说明,NVIDIA Sync 本身会作为一个节点加入 tailnet,因此只使用 NVIDIA Sync 时,客户端无需另外安装系统级 Tailscale 客户端。NVIDIA Sync 还会自动判断连接方式:在同一局域网时使用直接连接,离开局域网后切换到 Tailscale;由它管理的隧道以及使用 SSH alias 的 VS Code、Cursor 连接也会随之切换。
在客户端本地,NVIDIA Sync 的工作方式大致如下:
VS Code / Cursor / NVIDIA Sync 终端
|
| 使用 NVIDIA Sync 管理的 SSH alias / 隧道
v
+---------------------------+
| NVIDIA Sync |
| |
| 设备发现 + SSH 密钥管理 |
| 连接状态检测 |
| 内置 Tailscale 节点 |
+---------------------------+
|
判断 DGX Spark 是否可达
|
+-------+-------+
| |
v v
同一局域网可达 不同网络或局域网不可达
| |
v v
局域网直连 Tailscale 加密连接
| |
+-------+-------+
|
v
DGX Spark SSH
单独安装系统级 Tailscale 后,其他终端和应用也可以直接使用
100.x.x.x 地址或 *.ts.net 域名,不再局限于 NVIDIA Sync。
这意味着 NVIDIA Sync 选择 Tailscale 的原因并不是简单地“集成了一个 VPN”,而是获得了一套适合移动客户端连接固定工作站的网络协调能力,同时避免让 NVIDIA 自己维护账号认证、NAT 穿透和全球中继基础设施。
Tailscale 如何实现企业级安全
Tailscale 的安全模型不是“加入 VPN 后互相信任”,而是将身份、设备和最小权限策略结合起来:
用户身份 设备身份与状态
SSO / MFA 设备审批 / 标签 / Posture
| |
+--------------+---------------+
|
v
+-------------------------+
| Tailscale 控制平面 |
| 解释 Grants / ACL 策略 |
+-------------------------+
|
| 分发允许连接的对端、公钥和包过滤规则
v
+-------------------------+
| DGX Spark 本地执行策略 |
| tailscaled 入站包过滤器 |
+-------------------------+
|
允许 user -> tcp:22
拒绝其他未授权连接
|
v
OpenSSH 服务
Tailscale 网络策略只负责决定流量能否到达服务。
SSH 密钥、Ubuntu 权限、UFW 和系统更新仍是独立的安全层。
- 端到端加密:数据平面使用 WireGuard。设备私钥保留在本机,即使流量通过 DERP 中继,DERP 也只能转发密文。
- 身份认证:用户通过 Google、Microsoft、GitHub、Okta 等身份提供商登录,可以复用企业已有的 SSO、MFA 和账号停用流程。
- 设备准入:管理员可以启用 Device Approval(https://tailscale.com/docs/features/access-control/device-management/device-approval) ,让新设备经过审批后才能收发 tailnet 流量。
- 最小权限策略:Tailscale 推荐使用 Grants(https://tailscale.com/docs/features/access-control/grants) 定义“谁可以访问哪台设备的哪些端口”。策略由控制平面集中分发,但由每台目标设备在本地执行。
- 设备身份与状态:可以使用标签区分 DGX Spark、服务器和普通用户设备,并通过 Device Posture 按操作系统版本、Tailscale 版本以及 MDM、EDR、XDR 状态限制访问。
- 审计与日志:所有套餐都提供配置审计日志和 Webhook;Premium 和 Enterprise 进一步提供网络流日志和日志流式输出,便于接入 SIEM。
- 降低对控制平面的信任:高安全场景可启用 Tailnet Lock(https://tailscale.com/docs/features/tailnet-lock) ,要求新节点的密钥必须由受信任节点签名。即使 Tailscale 控制平面被攻破,攻击者也不能擅自向 tailnet 加入可通信节点。Tailnet Lock 当前只包含在 Personal 和 Enterprise 套餐中,并且与 Device Approval 不能同时启用,需要根据威胁模型二选一。
有一个很容易被忽略的细节:ACL 和 Grants 的规则采用“默认拒绝”,但新建 tailnet 的初始策略是允许所有设备互相访问。如果要实现真正的零信任和最小权限,必须删除初始的 allow-all 规则,再添加明确的放行规则。
例如,将 DGX Spark 标记为 tag:dgx-spark 后,可以只允许指定用户访问它的 SSH 端口:
{
"tagOwners": {
"tag:dgx-spark": ["autogroup:admin"]
},
"grants": [
{
"src": ["your-account@example.com"],
"dst": ["tag:dgx-spark"],
"ip": ["tcp:22"]
}
]
}
如果通过 NVIDIA Sync 的 Add a Device 功能使用 auth key 添加 DGX Spark,建议生成一次性、短有效期的 auth key;服务器还应使用标签绑定设备身份。不要将可重复使用的 auth key 粘贴到脚本、聊天记录或仓库中,因为拿到该密钥的人可以用它向 tailnet 注册新设备。
通过 Share 分享 DGX Spark 也比邀请外部协作者直接加入整个 tailnet 更稳妥。设备分享(https://tailscale.com/docs/features/sharing) 目前仍是 beta 功能;它只让接收者看到被分享的机器,并且共享机器默认处于隔离状态,不能主动连接接收者 tailnet 中的其他机器。分享链接应像密码一样保管,并优先使用单次链接;还可以继续通过 Grants 将协作者限制为只能访问 DGX Spark 的 SSH 端口。
需要强调的是,Tailscale 只保护通过 overlay 网络传输的流量,也不会自动修复 DGX Spark 上的弱密码、漏洞或错误权限。如果 SSH 同时监听局域网或公网接口,本机防火墙、系统更新和 SSH 加固仍然不可省略。
使用 Aperture 保护 DGX Spark 上的 AI 使用
Tailscale 首页重点宣传的 Securing AI,对应的是仍处于 beta 阶段的 Aperture by Tailscale(https://tailscale.com/use-cases/securing-ai) 。它本质上是位于 Claude Code、Codex、Gemini CLI 等客户端与模型服务之间的 AI 网关,类似于 OpenRouter 服务。
Aperture 将原本散落在开发者电脑、DGX Spark、CI/CD 和 Agent 中的模型 API Key 集中保存在网关中。用户访问 Aperture 时不需要携带上游模型 API Key,网关根据连接携带的 Tailscale 身份识别用户或设备,检查权限后再注入正确的模型提供商凭据。
开发者 / Agent
Claude Code / Codex / Gemini CLI / 自定义应用
|
| Tailscale 网络身份
| 不携带上游模型 API Key
v
+---------------------------+
| Aperture AI Gateway |
| |
| 身份认证与模型授权 |
| 集中保存 Provider API Key |
| 模型路由 / 配额 / 日志 |
| Guardrails / MCP Gateway |
+---------------------------+
| | |
| | |
v v v
OpenAI Anthropic DGX Spark 上的
Gemini Bedrock vLLM / Ollama /
llama.cpp 等模型
客户端只连接一个 Aperture 地址,网关根据请求中的模型名称
决定转发给哪个外部提供商或 DGX Spark 私有模型。
这里所谓的“一套认证”,准确来说是一套 Tailscale 网络身份认证和 Aperture 授权策略:
- 用户只需登录 Tailscale,Claude Code、Codex、Gemini CLI 等工具通过 Aperture 地址访问模型,无需分别保存 OpenAI、Anthropic、Google 等提供商的 API Key。
- 管理员在 Aperture 中集中保存每个提供商的一份 API Key,并按 Tailscale 用户、用户组、设备标签控制谁能调用哪些模型。
- Aperture 默认拒绝模型访问;用户即使能连接网关,没有对应 Grant 也不能调用模型。
- 删除用户、撤销设备或修改策略后,访问权限立即变化,不需要逐台设备轮换或删除模型 API Key。
但这并不代表 Claude Max、ChatGPT Plus、Gemini Advanced 等订阅账号可以合并使用。Aperture 需要模型提供商开发者平台签发的 API Key,不能使用这些消费级或团队订阅的登录权益。
Aperture 如何保护 AI 使用
Aperture 作为所有 AI 请求的统一入口,主要提供以下安全和治理能力:
- 减少 API Key 扩散:上游密钥只保存在 Aperture,不进入开发者电脑、DGX Spark 上的 Agent 配置、脚本或代码仓库。
- 身份化审计:每个请求关联 Tailscale 用户或设备身份,并记录模型、提供商、时间、Token 数量和费用。Claude Code 与 Codex 的多次请求还可以聚合成一次完整会话。
- 模型访问控制:可以限制某个用户或团队只能使用指定模型,并使用配额限制用户、Agent、模型或团队的请求数量和预算。
- 请求 Guardrails:请求离开网络前,可以通过同步的 pre-request hook 检查、修改或拒绝请求,例如清除 PII、移除危险工具声明,或阻止违反合规策略的 Prompt。
- 统一 MCP 入口:Aperture 可以将多个远程 MCP Server 聚合到一个
/v1/mcp地址,并根据 Tailscale 身份控制用户可以发现哪些 MCP 工具和资源。 - 私有模型不暴露公网:DGX Spark 上的 vLLM、Ollama、llama.cpp 等 OpenAI-compatible 服务只需对 tailnet 开放,Aperture 可以将它们作为 self-hosted provider 提供给团队。
需要注意几个当前版本的边界:
- Aperture 会保存完整请求和响应以支持审计,这些内容可能包含源码和敏感信息。需要按合规要求配置保留期限,必要时将完整捕获的保留时间设为零,并将所需日志导出到 S3 或 SIEM。
- Guardrails 当前只能在请求发送给模型前执行,不支持对模型返回内容进行 post-response 过滤。
- Aperture 的 MCP Server Proxy 仍处于 alpha。当前 Grants 会限制用户能够发现的工具,但官方文档明确说明,工具调用阶段尚未再次执行逐工具授权检查。
- 本地工具最终由 Coding Agent 所在机器执行。Aperture 可以观察会话中的工具使用并限制发送给模型的工具声明,但不能替代 Claude Code、Codex 等客户端自身的沙箱、审批和文件系统权限。
结合 DGX Spark 的推荐架构
对于 DGX Spark,可以同时把它当作远程开发机和私有模型服务节点:
开发者电脑
Claude Code / Codex / Gemini CLI
|
| 统一连接 Aperture
v
+-------------------+
| Aperture |
| 身份 / 策略 / 日志 |
+-------------------+
| |
| +=========> 外部托管模型
| OpenAI / Anthropic / Gemini
|
+== Tailscale 私网 ==> DGX Spark
|
+-- OpenAI-compatible 模型服务
| vLLM / Ollama / llama.cpp
|
+-- 私有 MCP Server
+-- SSH 远程开发环境
DGX Spark 的模型和 MCP 服务无需开放公网端口。
管理员可以让不同用户看到不同模型和工具。
DGX Spark 上的私有模型服务需要提供 OpenAI-compatible Chat Completions 接口,并让 Aperture 实例可以通过 tailnet 地址访问。例如,Aperture 中的 provider 配置可以指向 DGX Spark:
{
"providers": {
"dgx-spark": {
"baseurl": "http://dgx-spark.example.ts.net:8000",
"models": ["private-coding-model"]
}
}
}
Claude Code、Codex、Gemini CLI 和其他支持自定义 Base URL 的客户端,只需将 API 地址改为 Aperture:
Claude Code: ANTHROPIC_BASE_URL=http://<aperture-hostname>
Codex: base_url = "http://<aperture-hostname>/v1"
Gemini CLI: API Base URL = http://<aperture-hostname>/v1
这些客户端到 Aperture 的连接即使使用 http://,仍通过 WireGuard 加密。客户端不需要真实模型 API Key;某些工具强制要求填写时,可以使用占位值,Aperture 会忽略它并注入集中管理的上游凭据。
还有一个容易忽略的身份归属问题:Aperture 根据发起网络请求的 Tailscale 节点识别身份。如果开发者在自己的笔记本运行 Coding Agent,Aperture 可以记录到具体用户;如果多人 SSH 到同一台 DGX Spark,再从 Spark 上运行 Agent,所有请求通常都会被识别为 DGX Spark 的设备所有者或标签身份,而不是不同的 SSH 登录用户。
因此,团队需要逐用户审计时,推荐在每位开发者的本机运行 Coding Agent,通过 NVIDIA Sync/SSH 操作 DGX Spark;或者为每位用户、CI Runner、Agent 容器分配独立的 Tailscale/ts-unplug 身份。不要让所有自动化任务共用一个未区分身份的 DGX Spark 节点。
截至目前,Aperture 仍处于 beta,测试期间任何 Tailscale 账户均可免费使用;Personal 套餐可供最多 6 位用户使用。更大团队的正式价格尚未公开,应以 Aperture 官方文档(https://tailscale.com/docs/aperture) 和后续定价公告为准。
Tailscale 如何收费
以下价格依据 Tailscale 官方定价页面(https://tailscale.com/pricing)。Tailscale 在 2026 年 4 月启用了新的席位制计费,后续价格和套餐限制仍可能调整。
| 套餐 | 当前价格 | 主要适用场景与区别 |
|---|---|---|
| Personal | 免费 | 仅限非商业个人用途,最多 6 位用户,用户设备不限量,包含 50 个 tagged resources、3 个 ACL groups 和绝大多数基础功能 |
| Standard | 每席位每月 8 美元 | 面向团队,用户不限量,增加 SCIM、更多角色、MDM 配置、第三方设备状态集成等能力 |
| Premium | 每席位每月 18 美元 | 增加网络流日志、日志流式输出、即时访问、高级 Tailscale SSH、区域路由和优先支持 |
| Enterprise | 定制报价 | 增加自定义容量、合同与 SLA、专业服务、专属支持和发票付款等能力 |
这里的“席位”指加入 tailnet 的用户,不是每台设备。所有套餐的普通用户设备都不限量;服务器、Exit Node 等通常应标记为 tagged resource,Personal 套餐包含 50 个,超出后当前价格为每个每月 1 美元。短生命周期的 CI/CD Runner 和 Kubernetes Pod 则按 ephemeral resource 分钟池计算。
对于个人放在家中使用的 DGX Spark,通常一个免费 Personal tailnet 就够用,NVIDIA Sync、笔记本和 DGX Spark 不会因为设备数量单独收费。收费点主要出现在商业使用、超过 6 位用户、需要大量 tagged/ephemeral resources,或需要 SCIM、设备状态集成、网络流日志、日志输出、SLA 等企业管理与合规能力时。
网络安全
DGX Spark 设备安装的是 Ubuntu 操作系统,所以对于 Ubuntu 的安全套路都适用,下面列举一些典型的。
Tailscale 已经为跨网络访问建立了加密边界,其他 tailnet 默认无法发现或连接你的机器(除非你主动分享)。不过同一 tailnet 的新建默认策略允许设备互相访问,并且 Tailscale 只保护 overlay 网络,不会自动阻止局域网或公网 IPv6 对 DGX Spark 的直接访问,所以下面的访问策略和系统级安全加固仍然必要。
修改 SSH 默认端口
编辑 /etc/ssh/sshd_config 文件,将 Port 字段前面的 # 去掉,将值修改为你想要的端口号,然后重启 SSH 服务即可。
sudo systemctl restart ssh
如果修改了 SSH 端口,后续防火墙规则中的端口号也要同步修改。
启用防火墙
防火墙建议启用。全球单播 IPv6 地址不受局域网 NAT 保护;如果上游路由器和主机防火墙允许入站,外部设备可以直接访问 DGX Spark。以下规则可以参考,按需添加或放行:
# 允许局域网不做限制访问,这里假定你的局域网是 192.168.1.0/24 网段
sudo ufw allow from 192.168.1.0/24
# 允许 tailscale0 网卡访问 ssh,假定你没有修改 ssh 端口号
sudo ufw allow in on tailscale0 to any port 22
# 启用 ufw 防火墙。注意 ufw 默认规则为拦截所有流入流量,放行所有流出流量
sudo ufw enable
查看 ufw 防火墙状态:
sudo ufw status verbose
这是一个最基本的防火墙规则参考,局域网方向不做限制,允许通过 Tailscale 访问 SSH(Tailscale 会启用 tailscale0 网卡作为 VPN 通信网络),这样局域网和外网都可以通过 nvidia-sync 访问到 DGX Spark 设备了,并且阻挡其他任何外网访问,包括 ipv6 的访问。
小结
本文介绍了 DGX Spark 的远程连接与安全配置:
- 远程连接依赖 SSH 服务,确保
ssh服务正常运行是前提。 - 局域网连接推荐使用
nvidia-sync,它通过 mDNS 自动发现局域网内的 DGX Spark 设备,一键连接。 - 跨网络连接不建议直接暴露公网 IPv6 SSH,而应使用 Tailscale 建立只对授权身份可见的加密 overlay 网络。NVIDIA Sync 的跨网络连接能力正是基于内置的 Tailscale 集成实现的。
- Tailscale 安全不能停留在新建 tailnet 的默认全通策略。应根据使用场景启用 Device Approval 或 Tailnet Lock,并使用 Grants 将用户和协作者限制为只能访问 DGX Spark 所需的端口。
- Aperture AI 网关可以使用 Tailscale 身份统一认证 Claude Code、Codex、Gemini CLI 等客户端,集中保存模型 API Key,并将外部模型和 DGX Spark 私有模型置于同一套访问控制、审计和预算策略下。
- Tailscale 收费主要围绕商业用户席位、企业管理与合规能力,以及超出套餐额度的资源;个人非商业使用一台 DGX Spark 通常可以使用免费 Personal 套餐。
- 网络安全方面,DGX Spark 本质上是一台 Ubuntu 机器,修改 SSH 默认端口和配置 ufw 防火墙是最基本的安全加固手段。