VPSKnow

海外 VPS 开发机初始化清单:Node、Git、Docker、密钥隔离与备份

初级-中级
30分钟

海外 VPS 开发机不是“买台服务器然后直接装项目”这么简单。对小白来说,真正重要的是:能安全登录、能稳定拉代码、能跑 Node / Docker、密钥不会误提交、坏了能恢复。这篇给你一份可以逐项照做的初始化清单。

本文适合个人开发机、AI 编程工具远程环境、小型项目测试机。正式生产环境还需要更严格的监控、审计、权限分离和备份演练。

🎯 这台开发机要做到什么程度

一台合格的海外 VPS 开发机,至少要满足这几个条件:

  • 不用 root 长期写代码,有普通开发用户。
  • SSH 密钥能登录,密码登录逐步收紧。
  • Node、Git、Docker、Python 等基础工具可用。
  • 项目密钥放在 `.env`,不会被提交到 Git。
  • 有快照、代码仓库、关键数据备份,出事能恢复。
  • GitHub、npm、Docker Registry、OpenAI API 网络可检查。

🧳 登录前先准备什么

不要等服务器买完才想“我要装什么”。先准备这几样:

  • 服务器 IP、root 初始密码或云厂商 SSH Key。
  • 本地 SSH 客户端:Windows Terminal、PowerShell、Termius、PuTTY 都可以。
  • 一个 GitHub / GitLab 仓库,用来保存代码。
  • 一个密码管理器,用来保存服务器、Git、API Key 和恢复码。

🧱 第一步:系统更新与基础工具

第一次登录后先更新系统,不要急着装项目。

  # Debian / Ubuntu 常用初始化
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip ca-certificates gnupg ufw htop tmux build-essential

# 设置时区,可按习惯选择 UTC 或 Asia/Shanghai
timedatectl status
sudo timedatectl set-timezone Asia/Shanghai

如果命令报错,先停下来查系统版本和源,不要复制一堆脚本继续往下跑。

🔐 第二步:普通用户与 SSH 密钥

小白最容易犯的错是长期用 root 开发。建议创建普通用户,项目都放在普通用户目录下。

  # 创建普通开发用户,不要长期用 root 写项目
sudo adduser dev
sudo usermod -aG sudo dev

# 切换到 dev 用户测试
su - dev
whoami

然后配置 SSH 密钥登录。密钥登录成功前,不要急着禁用密码登录,避免把自己锁在门外。

  # 本地电脑生成密钥,已经有密钥可跳过
ssh-keygen -t ed25519 -C "dev-machine"

# 复制公钥到服务器,替换 IP 和用户名
ssh-copy-id dev@你的服务器IP

# 测试密钥登录成功后,再考虑禁用密码登录

🧯 第三步:防火墙和端口边界

开发机不是靶场,端口越少越好。SSH 能连通之后,再启用防火墙。

  # 先确认 SSH 能连,再开防火墙
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

# 不要随手开放 3000、5173、8000 到公网
# 开发预览优先用 SSH 隧道或 Tailscale

Astro、Vite、Next.js、FastAPI 这类开发端口,优先通过 SSH 隧道或私有网络访问,不要直接暴露给公网。

⚙️ 第四步:Node、Git、Python 和 Docker

先装基础运行时,再按项目需要补充。不要为了“全能”一次装十几套环境。

  # Git 身份
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main

# Node 建议按项目要求安装 LTS 版本,这里先检查是否已有
node -v
npm -v

# Python 基础
python3 --version
python3 -m venv --help

项目需要容器时再安装 Docker。普通用户加入 docker 组后,权限接近 root,要理解风险。

  # Docker 按官方文档安装后,先检查版本
docker --version
docker compose version

# 如需普通用户使用 Docker,理解权限影响后再加入 docker 组
sudo usermod -aG docker dev

📁 第五步:项目目录和 .env 隔离

目录结构不用复杂,但要清楚地区分代码、密钥和备份。

  ~/projects/
  my-site/
    .env              # 真实密钥,只留服务器本地
    .env.example      # 示例变量,可提交
    docker-compose.yml
    README.md

~/backups/
  my-site/
    db/
    uploads/
    snapshots/

每个项目都应该有 `.env.example`,但真实 `.env` 不能进 Git。

  .env
.env.*
!.env.example
node_modules/
dist/
.DS_Store

如果你已经把 API Key 提交过,正确做法是先去平台轮换密钥,再清理 Git 历史,而不是只删文件。

💾 第六步:快照、Git、Rclone 三层备份

开发机备份至少分三层:代码用 Git,整机用云厂商快照,关键数据用异地备份。

  # 1. Git:保存代码历史,不保存密钥和数据库
git status
git remote -v

# 2. 打包项目数据示例
mkdir -p ~/backups/my-site
tar -czf ~/backups/my-site/files-$(date +%F).tar.gz ~/projects/my-site

# 3. 数据库、上传文件、配置文件要单独列清楚
# 备份不是“想起来才做”,而是恢复时真的能用
  • Git 适合代码,不适合保存数据库、上传文件和密钥。
  • 快照适合整机回滚,但依赖同一家云厂商。
  • 异地备份适合保命,尤其是数据库、上传文件和配置。

🩺 第七步:上线前健康检查

初始化完成后,跑一轮健康检查。能看到明确结果,比“感觉能用”可靠。

  # 基础健康检查
uptime
df -h
free -h
ss -tulpn

# 网络检查
curl ipinfo.io
curl -I https://github.com
curl -I https://registry.npmjs.org
curl -I https://api.openai.com/v1/models
  1. 能用普通用户 SSH 密钥登录。
  2. 防火墙只开放必要端口。
  3. Git、Node、Python、Docker 版本可查询。
  4. 项目目录和备份目录分开。
  5. .env 不进 Git,仓库有 .env.example。
  6. 至少有 Git 远程仓库、云快照、关键数据异地备份三层保护。
  7. curl GitHub、npm、OpenAI API 能返回明确状态。

⚠️ 小白最容易踩的坑

长期 root 开发

root 权限太大,误删、误改、密钥泄露后影响更严重。

所有端口直接公网开放

开发预览端口不要裸奔,优先 SSH 隧道、Tailscale 或反向代理加认证。

.env 提交到 Git

API Key、数据库密码、Token 一旦提交,要先轮换密钥,再清理历史。

只做云厂商快照

快照能救整机,但不能替代 Git、数据库导出和异地备份。

没有恢复演练

备份是否有效,要看能不能在新机器上恢复,而不是看文件是否存在。

📚 资料来源

➡️ 下一步行动

🚀 下一步行动

开发机初始化完成后,建议继续补齐远程开发和网络排查:

读完后建议 先验证,再选择
把判断落到具体选择

准备购买 VPS 时,先对照推荐榜单和真实测评确认线路、价格、用途与风险;只是继续学习,可以回到教程索引按主题往下看。