上线优惠价:每个套餐的价格都比我们追踪的最便宜的离岸竞争对手低 30%。 查看价格对比所有套餐价格均比最便宜的离岸主机服务商低 30%

知识库 · GPU 服务器

GPU 服务器镜像:CUDA、PyTorch、Ollama、vLLM 与 ComfyUI

OffshoreServ GPU 镜像包含哪些内容,以及如何在 Ubuntu 24.04 上运行 PyTorch、Ollama、vLLM、ComfyUI 和 Docker,保持端点私有并监控 GPU。

更新于 阅读约 8 分钟

本指南要点

  • Linux 镜像为预装了 NVIDIA 驱动和 CUDA 的 Ubuntu 24.04 LTS;可分别用 nvidia-smi 和 nvcc 检查两者。
  • 请在虚拟环境中安装 Python 工具,因为 Ubuntu 24.04 禁止在系统范围内使用 pip 安装。
  • Ollama、vLLM 和 ComfyUI 只需几分钟即可部署完成。请让它们只监听 127.0.0.1,并通过 SSH 隧道访问。
  • Docker 需要 NVIDIA Container Toolkit;除非将发布的端口绑定到 127.0.0.1,否则这些端口会绕过 ufw。
GPU 服务器11 个章节
全部指南
本页内容
  1. 镜像包含的内容
  2. 验证 GPU
  3. 准备 Python 环境
  4. 安装 PyTorch
  5. 使用 Ollama 运行模型
  6. 使用 vLLM 提供兼容 OpenAI 的端点
  7. 使用 ComfyUI 生成图像
  8. Docker 与 NVIDIA Container Toolkit
  9. 保持端点私有
  10. 监控 GPU
  11. 故障排查

我们的 GPU 服务器配备独享的 NVIDIA GPU,以及可直接用于 CUDA 工作的 Linux 镜像。本指南先检查镜像,然后在其上部署常用的 AI 工具。以下命令假定使用 Ubuntu 24.04,并以拥有 sudo 权限的用户执行;如果您以 root 身份操作,请省略 sudo。请将 SERVER_IP 替换为您服务器的地址。

镜像包含的内容

  • Ubuntu 24.04 LTS,标准支持至 2029年5月。
  • NVIDIA 驱动,包括 nvidia-smi 工具。
  • CUDA,包括 nvcc 编译器。

镜像更新后版本会有变化,因此请检查您的版本:

nvidia-smi
nvcc --version

nvidia-smi 输出的顶部会显示驱动版本和 CUDA Version。后者是该驱动所支持的最新 CUDA 版本,在下文选择 PyTorch 构建时很重要。如果找不到 nvcc,通常是因为工具包已安装在 /usr/local/cuda 下,但不在您的 PATH 中:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

验证 GPU

nvidia-smi -L
nvidia-smi topo -m

第一条命令会列出每块 GPU 及其型号;请检查数量和型号是否与您的套餐一致,以及 nvidia-smi 显示的显存是否与显卡相符,例如 RTX 4090 为 24 GB。在多 GPU 服务器上,第二条命令会显示 GPU 之间的互连方式(NVLink 或 PCIe),这会影响它们之间分担工作的速度。要在某一块特定的 GPU 上运行任务,请设置 CUDA_VISIBLE_DEVICES;这样进程只能看到那块显卡,编号从 0 开始:

CUDA_VISIBLE_DEVICES=1 python train.py

准备 Python 环境

Ubuntu 24.04 将系统 Python 标记为外部管理,因此在虚拟环境之外运行 pip install 会失败,并报 externally-managed-environment 错误。请为每个工具单独创建一个环境:例如,vLLM 会锁定自己的 PyTorch 版本。先安装基础组件;在运行时编译 GPU 内核的工具需要用到编译器和头文件:

sudo apt update
sudo apt install -y python3-venv python3-dev build-essential git

安装 PyTorch

PyTorch 针对特定的 CUDA 版本发布构建。当前版本提供 CUDA 12.6 和 CUDA 13.0 构建,另有一个实验性的 CUDA 13.2 构建。请选择不高于 nvidia-smi 所报告 CUDA 版本的构建:

python3 -m venv ~/venvs/torch
source ~/venvs/torch/bin/activate
pip install --upgrade pip
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))"

最后一行应输出 True 和您的 GPU 名称。cu130 构建要求驱动报告的 CUDA 版本不低于 13.0。如果您的驱动报告的是 12.x,请在索引 URL 中改用 cu126。该构建支持我们产品线中的所有 GPU,唯独 RTX 5090 除外,它需要 CUDA 12.8 或更高版本。

使用 Ollama 运行模型

关于私有模型服务器的意义及其安全方面,请阅读如何在 GPU 服务器上自托管大语言模型。Ollama 是运行开放权重语言模型最快捷的方式。其安装脚本会设置系统服务并检测 NVIDIA GPU。您可以先下载脚本、读过之后再运行,也可以直接通过管道交给 shell 执行:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
ollama run llama3.1:8b
ollama ps

ollama run 会打开一个聊天提示符;输入 /bye 即可退出。在 ollama ps 的输出中,Processor 列应显示 100% GPU。如果出现 CPU 占比,说明模型无法完全装入显存:请选择更小的模型或压缩程度更高的量化版本。运行大语言模型需要多少显存可以帮助您估算所需配置。

Ollama 默认监听 127.0.0.1:11434。请保持这一设置,并通过下文介绍的 SSH 隧道连接。它还在 /v1 下接受 OpenAI 风格的请求,因此同一套客户端代码可同时用于 Ollama 和 vLLM。模型存放在 /usr/share/ollama/.ollama/models 中。要更改监听地址等设置,请使用以下命令为该服务添加 Environment= 行:

sudo systemctl edit ollama.service

使用 vLLM 提供兼容 OpenAI 的端点

vLLM 是一款为吞吐量而设计的推理服务器:它会将大量请求合批同时处理,并使用与 OpenAI 相同的 HTTP 协议,因此现有的客户端库都能直接使用。它的构建是针对特定的 PyTorch 和 CUDA 版本编译的,因此请使用 vLLM 文档给出的索引 URL,将其安装在独立的环境中:

python3 -m venv ~/venvs/vllm
source ~/venvs/vllm/bin/activate
pip install --upgrade pip
pip install vllm --extra-index-url https://download.pytorch.org/whl/cu129

如果您的驱动报告的 CUDA 版本较旧,vLLM 文档还介绍了通过 uv 配合 --torch-backend=auto 进行安装的方法,该方法会选择与驱动匹配的 PyTorch 构建。

创建一个令牌,确保只有您能使用该服务器,记下令牌,然后在 localhost 上启动服务器:

export VLLM_API_KEY=$(openssl rand -hex 32)
echo "$VLLM_API_KEY"
vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192

首次启动时,会从 Hugging Face 将模型下载到 ~/.cache/huggingface;仅该模型的权重就需要约 15 GB 显存,因此请使用显存为 24 GB 或以上的 GPU。在 16 GB 显存的 RTX A4000 上,请选择更小的模型,例如 Qwen/Qwen2.5-3B-Instruct。在配备多块 GPU 的服务器上,添加 --tensor-parallel-size 2(或 4)即可将模型拆分到多块 GPU 上。除非传入 --host,否则 vLLM 会监听所有网络接口,因此请务必设置该参数。受限模型(例如 Meta 的 Llama 系列)还需要 Hugging Face 访问令牌:请先在该模型的 Hugging Face 页面上接受其许可协议,然后在启动服务器之前导出 HF_TOKEN。

在第二个 SSH 会话中导出同一个令牌,然后从该会话进行测试:

curl http://127.0.0.1:8000/v1/models -H "Authorization: Bearer $VLLM_API_KEY"
curl http://127.0.0.1:8000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer $VLLM_API_KEY" -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "Say hello in five words."}]}'

将 vLLM 作为服务运行

从 shell 启动的服务器会在您退出登录时停止。要让它持续运行并在重启后自动恢复,请将令牌保存在仅 root 可读的文件中,然后创建一个 systemd 单元:

sudo install -m 600 /dev/null /etc/vllm.env
echo "VLLM_API_KEY=$(openssl rand -hex 32)" | sudo tee /etc/vllm.env > /dev/null
sudo cat /etc/vllm.env
sudo systemctl edit --force --full vllm.service

将以下单元内容粘贴到编辑器中,并将 YOUR_USER 替换为您的用户名:

[Unit]
Description=vLLM server
After=network-online.target
Wants=network-online.target

[Service]
User=YOUR_USER
EnvironmentFile=/etc/vllm.env
ExecStart=/home/YOUR_USER/venvs/vllm/bin/vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后启动服务,设置开机自启,并实时查看其日志:

sudo systemctl enable --now vllm.service
sudo journalctl -u vllm.service -f

使用 ComfyUI 生成图像

git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt
python main.py --listen 127.0.0.1 --port 8188

将模型检查点放在 ComfyUI/models/checkpoints 中,VAE、LoRA 等其他文件则放在 models 下对应的文件夹中。如果使用 --listen 而不指定地址,ComfyUI 会在所有 IPv4 和 IPv6 接口上监听,而且没有任何密码保护;只有在防火墙规则仅放行您自己 IP 的情况下才可以这样做。自定义节点会以您用户的权限运行任意 Python 代码,因此请只安装来自可信来源的节点。

Docker 与 NVIDIA Container Toolkit

容器需要借助 NVIDIA 的 Container Toolkit 才能访问 GPU。请从 Ubuntu 官方软件仓库安装 Docker,添加 NVIDIA 的软件仓库,并将 Docker 配置为使用 NVIDIA 运行时:

sudo apt install -y docker.io
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo docker run --rm --gpus all ubuntu nvidia-smi

最后一条命令应输出与宿主机上相同的表格。如果您更喜欢 Docker 官方软件仓库中的 Docker CE,其用法完全相同。例如,以下命令会在容器中运行 vLLM,并且只在 localhost 上发布端口:

sudo docker run --rm --gpus all --ipc=host -p 127.0.0.1:8000:8000 -v ~/.cache/huggingface:/root/.cache/huggingface vllm/vllm-openai:latest --model Qwen/Qwen2.5-7B-Instruct

保持端点私有

这些工具在原样状态下直接对外暴露都不安全:Ollama 和 ComfyUI 完全没有登录验证,vLLM 的令牌也是可选的。请让它们保持绑定在 127.0.0.1 上,并从您自己的电脑通过 SSH 隧道访问(在 Windows 上,同样的命令也可在 PowerShell 中使用):

ssh -N -L 8188:127.0.0.1:8188 -L 8000:127.0.0.1:8000 -L 11434:127.0.0.1:11434 YOUR_USER@SERVER_IP

隧道运行期间,在浏览器中打开 http://127.0.0.1:8188 即可使用 ComfyUI,并将兼容 OpenAI 的客户端指向 http://127.0.0.1:8000/v1。请按照加固指南的做法,用只放行 SSH 的防火墙关闭服务器的其余部分。如果某项服务必须公开,请在其前面部署带有 TLS、身份验证和速率限制的反向代理,并牢记可接受使用政策。

监控 GPU

nvidia-smi dmon -s pucm
watch -n 1 nvidia-smi
nvidia-smi --query-gpu=index,temperature.gpu,utilization.gpu,memory.used,memory.total,power.draw --format=csv -l 5
sudo apt install -y nvtop
nvtop

nvidia-smi dmon 每秒为每块 GPU 输出一行,包括功耗和温度(p)、利用率(u)、时钟频率(c)以及显存(m)。查询形式的命令每五秒写入一次 CSV,便于为长时间运行的任务记录日志。nvtop 是一个交互式视图,可显示所有 GPU 及其进程,类似于 htop。如果负载下时钟频率下降,请检查原因:

nvidia-smi -q -d PERFORMANCE

故障排查

  • CUDA 显存不足(OutOfMemoryError):模型、其上下文或批次超出了显存容量。请选择更小或压缩程度更高的模型,在 vLLM 中调低 --max-model-len,或减小批大小。nvidia-smi 可以显示是否仍有其他进程占用着显存。
  • torch.cuda.is_available() 返回 False:虚拟环境未激活,或者 PyTorch 构建所需的 CUDA 版本高于驱动所支持的版本。请将 torch.version.cuda 与 nvidia-smi 中显示的 CUDA 版本进行比较。
  • “Driver/library version mismatch”:驱动软件包已更新,但旧的内核模块仍处于加载状态。请重启。
  • 容器中看不到 GPU:在 docker run 中添加 --gpus all,并检查是否已执行 nvidia-ctk runtime configure,以及 Docker 是否已重启。
  • 首次启动较慢:首次运行时会下载模型并编译 GPU 内核。之后的启动会更快。

准备好选择硬件了吗?请比较 RTX 服务器、数据中心级 GPU 和多 GPU 服务器。

某个步骤遇到困难?

独立服务器和 GPU 服务器客户可在客户中心提交工单,注明服务器的 IP 地址以及已尝试过的操作。首次回复目标:12 小时内。其他服务器请使用其页面上的服务器操作、指南和网络状态页面。

欢迎回来

登录以管理您的服务器和余额。

无需 KYC由 Cloudflare Turnstile 提供人机验证无跟踪