咨询热线:400-860-0217
帮助
您的位置: DDNS网站 >

利用蒲公英纯软组网进行远程 AI 开发

2026-09-03 01:46

固定一台开发机保存代码/数据/模型,在外通过虚拟局域网进行桌面控制或 SSH/VS Code 开发,并进行内网应用使用

一个很常见的个人 AI 开发场景:家里或办公室固定放一台高性能电脑,GPU、数据集、模型权重、代码仓库和开发环境都保存在这台电脑上;人在外面时,希望用轻薄本继续 coding、看日志、跑训练、调试 Web UI,而不是把几百 GB 数据同步到随身电脑。

核心思路是:先用贝锐蒲公英“纯软件成员”把开发机和外出设备加入同一个虚拟局域网,再通过开发机的蒲公英虚拟 IP 连接桌面或 SSH。蒲公英官方文档说明,客户端成员可用于电脑/手机登录蒲公英客户端实现设备间互访;同一网络内成员登录后可以相互访问。

方案一:远程桌面/屏幕共享

适合需要 GUI、浏览器、数据标注工具、驱动设置和第一次排障。Mac 使用屏幕共享/VNC;Windows 使用远程桌面 RDP。

方案二:SSH + VS Code Remote

适合日常 coding、训练、日志、Jupyter、Gradio、TensorBoard,带宽占用低,推荐作为主工作流。

最佳实践:日常用 SSH/VS Code;遇到必须操作桌面的场景,再打开远程桌面。

1.蒲公英纯软组网配置

1.1 两种建网方式

方式 适用场景 操作要点
方式 A:登录相同账号自动创建 个人使用、设备少、想最快跑通。 在每台设备安装蒲公英客户端,用同一个贝锐账号登录;官方文档说明登录后会自动生成客户端成员,并加入账号下同一网络。
方式 B:手动创建客户端成员 UID 设备较多、要分配给不同用户、希望权限可追溯。 在蒲公英管理平台的软件成员/成员列表添加客户端成员,生成 UID 和密码;每台设备用对应 UID 登录。

1.2 手动创建网络与成员

  1. 登录蒲公英网络管理平台,点击【异地组网】 → 【网络成员】。
  2. 点击“+ 创建网络”,填写网络名称。
  3. 网络类型优先选择“对等网络”:对等网络内所有成员可互相访问;集散网络会区分中心节点和普通成员;自定义网络用于更精细的访问权限。
  4. 添加软件成员。个人开发场景通常使用“客户端成员”;官方说明客户端成员可在电脑、手机上登录客户端实现设备互访。
  5. 在开发机和外出设备分别安装客户端,并用贝锐账号或成员 UID 登录。
  6. 在客户端成员列表中找到开发机的虚拟 IP,并记录到后续 SSH/RDP/VNC 配置中。

1.3 连通性测试

假设开发机蒲公英虚拟 IP 为 172.30.91.28。在外出设备上先做最小测试。

连通性测试命令

# Windows PowerShell ping 172.30.91.28 Test-NetConnection 172.30.91.28 -Port 22 Test-NetConnection 172.30.91.28 -Port 3389 # macOS / Linux Terminal ping 172.30.91.28 nc -vz 172.30.91.28 22 nc -vz 172.30.91.28 5900

排障提示:有些系统默认禁ping,但 SSH/RDP/VNC 仍可连接。所以 ping 不通时,不要立即判定蒲公英失败;继续测试具体端口。

2. 方案一:远程桌面 / 屏幕共享

远程桌面适合需要完整 GUI 的场景:浏览器登录、图形化 IDE、驱动/显示设置、数据标注工具、授权弹窗或第一次排障。缺点是对延迟和带宽更敏感。

2.1 macOS 开发机:开启屏幕共享

Apple 官方说明:开启屏幕共享后,网络中其他电脑可以远程查看并控制 Mac;设置路径是“系统设置 → 通用 → 共享 → 屏幕共享”。如果“远程管理”已开启,需要先关闭,因为 Screen Sharing 和 Remote Management 不能同时开启。

  1. 在开发机 Mac 上打开“系统设置 → 通用 → 共享”。
  2. 如果“远程管理”已开启,先关闭它。
  3. 点击“屏幕共享”旁边的信息按钮,打开“屏幕共享”。
  4. “允许访问”建议选择“仅这些用户”,只添加自己的开发账号。
  5. 如果外出设备是 Windows,需要使用 VNC 客户端连接 Mac,可勾选“VNC viewers may control screen with password”并设置独立 VNC 密码。

从另一台 Mac 连接

Apple 官方说明可通过“屏幕共享”App 连接另一台已开启屏幕共享的 Mac;可以在 App 中新建连接并输入主机名或地址。

Mac 连接 Mac 屏幕共享

# 在 macOS 上打开“屏幕共享”App,输入: vnc://172.30.91.28 # 或在 Finder → 前往 → 连接服务器 中输入: vnc://172.30.91.28

从 Windows 连接 Mac

Windows 没有内置 macOS Screen Sharing 客户端。你可以使用任意可信 VNC Viewer,连接开发机的蒲公英虚拟 IP,端口通常为 5900。若只在蒲公英虚拟局域网内连接,外网路由器不需要映射 5900。

Windows VNC 客户端连接参数

VNC Server / Host: 172.30.91.28 Port: 5900 Password: 使用你在 macOS 屏幕共享中设置的 VNC 密码

2.2 Windows 开发机:开启远程桌面 RDP

Windows 自带的局域网图形远程方式是 Remote Desktop/RDP。Microsoft Learn 说明,启用远程桌面后,远程设备可以像坐在电脑前一样访问应用、文件和网络资源;但也会打开本机端口,因此只应在可信网络上启用,并确保远程账号使用强密码。

  1. 在开发机 Windows 上确认版本:设置 → 系统 → 关于 → Windows 规格。Windows Home 不能作为 RDP 被控端;Pro/Enterprise/Education/Server 可以。
  2. 进入“设置 → 系统 → 远程桌面”,打开“启用远程桌面”,确认弹窗。
  3. 点击“远程桌面用户”或“选择可远程访问此电脑的用户”,加入允许远程登录的账号。管理员组默认通常可访问,但仍建议显式检查。
  4. 保持 Network Level Authentication(网络级别身份验证)开启;Microsoft Learn 建议在多数环境中开启 NLA。
  5. 在外出设备上用开发机的蒲公英虚拟 IP 连接,而不是公网 IP。

从 Windows 连接 Windows 开发机

Windows RDP 连接

开始菜单搜索:远程桌面连接 或 Win + R 输入:mstsc 计算机:172.30.91.28 用户名:开发机上的 Windows 用户名 密码:该用户的 Windows 登录密码

从 Mac 连接 Windows 开发机

Microsoft 支持文档说明,从 macOS 或 iOS 连接远程 Windows PC 时,可打开 Windows App,添加远程 PC 名称并启动连接;这里的“PC 名称”可以填写蒲公英虚拟 IP。

  1. 在 Mac App Store 安装并打开 Windows App。
  2. 添加 PC,PC name 填写 172.30.91.28。
  3. User account 可先选择 Ask when required,也可以保存开发机用户凭据。
  4. 显示设置中可按需要选择全屏、分辨率、多显示器。

Windows Home 说明:Windows Home 如果是外出设备,仍然可以作为 RDP 客户端连接到 Windows Pro 开发机;限制只在“Windows Home 不能作为被控端”。

3. 方案二:SSH + VS Code Remote 终端开发

对于 AI 开发,SSH 通常比远程桌面更稳定:只传输命令、文本、少量文件和端口转发,弱网下也能写代码、启动训练、看日志。VS Code 官方 Remote - SSH 文档说明,可以从命令面板选择“Remote-SSH: Connect to Host...”连接远程主机,也可以先添加 SSH host。

3.1 macOS 开发机:开启 Remote Login

Apple 官方文档说明,打开 Remote Login 后,可以用 SSH 或 SFTP 从另一台电脑访问 Mac;设置路径是“系统设置 → 通用 → 共享 → Remote Login”。

  1. 在开发机 Mac 上打开“系统设置 → 通用 → 共享”。
  2. 点击“远程登录 / Remote Login”旁边的信息按钮,开启 Remote Login。
  3. “允许访问”建议选择“仅这些用户”,添加自己的开发账号。
  4. 记录系统显示的 SSH 命令,或直接使用蒲公英虚拟 IP。

连接 macOS 开发机

# 从外出设备连接 Mac 开发机 ssh devuser@172.30.91.28 # 首次连接会提示确认主机指纹,确认 IP/主机无误后输入 yes。

3.2 Windows 开发机:安装并启动 OpenSSH Server

Microsoft Learn 说明,Windows 可通过“可选功能”安装 OpenSSH Server;安装后需要启动 OpenSSH SSH Server 服务,并建议设置为自动启动。安装 OpenSSH Server 会创建并启用名为 OpenSSH-Server-In-TCP 的防火墙规则,用于允许 22 端口入站流量;若该规则未启用,连接会被拒绝或重置。

图形界面安装

  1. 开始菜单搜索“可选功能 / Optional Features”。
  2. 选择“查看功能 / 添加功能”,搜索 OpenSSH Server,安装。
  3. 打开 services.msc,找到“OpenSSH SSH Server”。
  4. 启动类型设为 Automatic,点击 Start 启动服务。

PowerShell 安装与启用

Windows OpenSSH Server 配置

# 以管理员身份打开 PowerShell Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' # 安装 OpenSSH Server Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # 启动并设置开机自启 Start-Service sshd Set-Service -Name sshd -StartupType Automatic # 检查/创建 22 端口防火墙规则 if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) { New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' ` -DisplayName 'OpenSSH Server (sshd)' ` -Enabled True -Direction Inbound -Protocol TCP ` -Action Allow -LocalPort 22 }

连接 Windows 开发机

连接 Windows 开发机

# 从 Windows / macOS / Linux 外出设备连接 ssh devuser@172.30.91.28 # 如果是域账号,可使用: ssh domain\username@172.30.91.28

3.3 配置 SSH config

在外出设备上创建或编辑 SSH 配置文件:macOS/Linux 为 ~/.ssh/config,Windows 为 C:\Users\你的用户名.ssh\config。

~/.ssh/config 示例

Host home-ai HostName 172.30.91.28 User devuser Port 22 ServerAliveInterval 30 ServerAliveCountMax 3

使用 Host 别名

# 之后直接这样连接 ssh home-ai # VS Code 也会读取这个 Host 名称 # 命令面板:Remote-SSH: Connect to Host... → home-ai

3.4 配置 SSH 密钥(推荐)

首次跑通可以用密码;长期使用建议改为 SSH 密钥,并给私钥设置 passphrase。

macOS/Linux 目标机密钥配置

# 在外出设备上生成 Ed25519 密钥 ssh-keygen -t ed25519 -C "home-ai-dev" # macOS/Linux 开发机可用 ssh-copy-id ssh-copy-id devuser@172.30.91.28 # 测试 ssh home-ai

Windows 目标机也支持 authorized_keys。最简单方式是先用密码 SSH 登录一次,然后把公钥追加到目标用户的 %USERPROFILE%.ssh\authorized_keys。管理员账号的密钥规则在 Windows OpenSSH 中可能涉及 C:\ProgramData\ssh\administrators_authorized_keys,若遇到问题优先使用普通开发账号测试。

3.5 VS Code Remote - SSH

  1. 在外出设备安装 VS Code。
  2. 安装扩展:Remote - SSH。
  3. 按 F1 / Ctrl+Shift+P / ⇧⌘P,执行“Remote-SSH: Add New SSH Host...”或“Remote-SSH: Connect to Host...”。
  4. 选择 home-ai,首次连接时按系统类型选择 Linux / macOS / Windows。
  5. 连接成功后,打开开发机上的项目目录,例如 /home/devuser/projects/llm-lab 或 C:\Users\devuser\projects\llm-lab。

理解工作方式:VS Code Remote - SSH 的本质是:VS Code UI 在外出设备上,代码、终端、扩展服务和文件系统在开发机上。这样不需要把数据和环境搬到随身电脑。

3.6 端口转发:Jupyter / Gradio / TensorBoard

很多 AI 工具会在开发机本地开 Web 服务。为了安全,建议服务只监听 127.0.0.1,再通过 SSH -L 转发到外出设备。

常用端口转发模板

# 例 1:Jupyter Lab ssh -L 8888:127.0.0.1:8888 home-ai jupyter lab --ip 127.0.0.1 --port 8888 --no-browser # 外出设备浏览器打开 http://127.0.0.1:8888 # 例 2:Gradio / Stable Diffusion / Web UI ssh -L 7860:127.0.0.1:7860 home-ai # 外出设备浏览器打开 http://127.0.0.1:7860 # 例 3:TensorBoard ssh -L 6006:127.0.0.1:6006 home-ai # 外出设备浏览器打开 http://127.0.0.1:6006

安全建议:不要为了省事把 Jupyter/Gradio 直接监听 0.0.0.0 并开放到公网。使用蒲公英 + SSH 端口转发,可以减少暴露面。

3.7 让训练任务不怕断线

网络断开不应导致训练任务终止。macOS/Linux/WSL 可优先使用 tmux;Windows PowerShell 长任务可考虑 Windows Terminal + nohup/日志重定向、WSL、或任务管理器/计划任务方式。

tmux 训练模板

# Linux/macOS/WSL:新建会话 tmux new -s train # 在 tmux 中启动训练 python train.py --config configs/qwen_lora.yaml 2>&1 | tee logs/train.log # 断开会话:Ctrl-b 后按 d # 重新进入: tmux attach -t train # 看日志 tail -f logs/train.log

4. 远程AI开发落地建议

4.1 推荐目录结构

开发机上的目录建议

~/projects/ llm-lab/ # Git 仓库,只放代码、配置、小脚本 configs/ scripts/ notebooks/ logs/ # 可写入日志,但大文件不建议入 Git data/ # 大数据集,不入 Git checkpoints/ # 模型权重与 checkpoint,不入 Git envs/ # conda / venv / docker compose 文件

Git 只管理代码、配置和小型文档;数据集、模型权重、输出图片、checkpoint 放到 .gitignore。
外出设备不保存核心数据;只通过 VS Code Remote、SSH、端口转发访问开发机。
训练日志统一写到 logs/,方便 tail -f 或 TensorBoard 查看。
需要下载少量结果时,用 scp/rsync/VS Code 文件面板;大文件优先留在开发机。

4.2 常用日常命令

远程 AI 开发命令速查

# 进入项目 ssh home-ai cd ~/projects/llm-lab # 查看 GPU nvidia-smi # Conda 环境 conda activate ai # 拉取代码 git pull --rebase # 启动训练并保存日志 python train.py 2>&1 | tee logs/$(date +%F_%H%M)-train.log # 下载一个小文件到本地 scp home-ai:~/projects/llm-lab/logs/latest.log ./latest.log # 同步一个结果目录(macOS/Linux) rsync -avP home-ai:~/projects/llm-lab/outputs/ ./outputs/

4.3 安全与可靠性建议

风险点 建议做法
公网端口暴露 不要在路由器上直接映射 22/3389/5900 到公网;通过蒲公英虚拟 IP 访问。Microsoft 也提醒启用远程桌面会打开端口,应只在可信网络上启用。
弱密码/共享账号 使用独立开发账号、强密码、SSH 密钥;不要把贝锐账号、UID 密码、RDP 密码发给他人。
权限过大 macOS 屏幕共享/远程登录选择“仅这些用户”;Windows RDP 只添加必要账号;SSH 不用 root/Administrator 做日常开发。
开发机睡眠 关闭系统睡眠,只允许显示器关闭。长时间训练前确认电源、散热、网络稳定。
成员过多 个人小规模用对等网络;多人场景考虑集散网络或自定义网络,减少成员之间横向访问。
工具更新 定期更新蒲公英客户端、系统、OpenSSH、VS Code 和扩展。