Skip to main content
独立站需要一台 VPS。这篇覆盖从选机到首次登录再到基础安全加固的完整流程,只写实际用过的服务商和配置。

主流服务商对比

服务商优势适合场景最低月费
GreenGeeks老牌美国主机商,SSD 存储,含免费域名与 SSL个人项目、轻量 Web 服务$2.95
Vultr机房覆盖广,日本/新加坡节点延迟低面向亚洲用户的站点$2.5
DigitalOcean文档完善,控制台友好初学者、需要 Managed DB$4
搬瓦工(BandwagonHost)CN2 GIA 线路,国内访问速度快国内用户为主的站点$49.99/年
选择建议:
  • 目标用户在国内 → 搬瓦工 CN2 GIA 或 Vultr Tokyo/Singapore
  • 目标用户在海外 → GreenGeeks(含免费域名,适合入门)
  • 需要部署 MCP Server 供个人使用 → GreenGeeks ProVultr 1核2G
以上价格随时可能变动,以服务商官网当前标价为准。

核心参数选择

操作系统:选 Ubuntu 22.04 LTS。LTS 版本支持周期长,社区资料最多,本文后续命令均基于此系统。 机房地区:用 ping.pe 测试目标服务商各机房到国内的延迟,选延迟最低的节点。 配置:个人博客/文档站从最低配置起步(1核1G),跑 Node.js 服务选 1核2G 以上。存储选 SSD,不选 HDD。 IP 类型:必须是独立公网 IP,不能是共享 NAT 型。下单前确认规格页写的是”dedicated IP”。

首次 SSH 登录

服务商创建完实例后,控制台会给出 IP 地址和初始 root 密码(或让你上传公钥)。
# 用 root 登录
ssh root@your-server-ip
# 第一次连接会提示 "Are you sure you want to continue connecting?",输入 yes

# 确认系统信息
lsb_release -a
# 确认公网 IP(应与控制台一致)
curl -s https://api.ipify.org
登录成功后立刻做安全加固,不要直接在 root + 密码登录的状态下开始部署服务。

基础安全加固

1. 创建普通用户,禁止直接使用 root

# 创建新用户(替换 yourname)
adduser yourname

# 加入 sudo 组
usermod -aG sudo yourname

# 切换到新用户测试
su - yourname
sudo whoami
# 输出 root 说明 sudo 权限正常

2. 配置 SSH 公钥登录

本机生成密钥对(如果还没有):
# 本机执行
ssh-keygen -t ed25519 -C "your-email@example.com"
# 默认存在 ~/.ssh/id_ed25519 和 ~/.ssh/id_ed25519.pub
把公钥上传到服务器:
# 本机执行,替换用户名和 IP
ssh-copy-id yourname@your-server-ip
# 输入一次密码后,后续 SSH 登录不再需要密码
验证公钥登录可用:
ssh yourname@your-server-ip
# 不需要输入密码即可登录,说明配置成功

3. 禁用 root 远程登录和密码认证

确认公钥登录正常后再做这步,否则可能把自己锁在外面。
# 在服务器上编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
找到以下行,确认或修改为:
PermitRootLogin no
PasswordAuthentication no
# 重启 SSH 服务使配置生效
sudo systemctl restart sshd

# 不要关闭当前会话,新开一个终端窗口测试能否正常登录
# 确认新窗口能登录后再关闭当前会话

4. 修改 SSH 默认端口(可选)

默认 22 端口会被大量自动扫描工具探测。改端口能减少无效的暴力破解请求。
sudo nano /etc/ssh/sshd_config
# 找到 Port 22,改为其他端口,如 Port 2222
sudo systemctl restart sshd
之后登录需要指定端口:
ssh -p 2222 yourname@your-server-ip

5. 配置 ufw 防火墙

# 安装 ufw(Ubuntu 通常预装)
sudo apt install -y ufw

# 设置默认策略:拒绝所有入站,允许所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 放行 SSH 端口(如果改了端口,替换 22)
sudo ufw allow 22/tcp

# 放行 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 启用防火墙
sudo ufw enable
# 输入 y 确认

# 查看当前规则
sudo ufw status verbose

验证清单

# 检查开放端口
sudo ss -tlnp

# 检查 ufw 状态
sudo ufw status

# 检查 SSH 配置
sudo sshd -T | grep -E "permitrootlogin|passwordauthentication|port"

常见问题

先在服务商控制台检查:① 防火墙/安全组规则是否放行了 22(或你修改后的 SSH 端口);② 实例状态是否为”运行中”。部分服务商(如 Vultr)有独立的防火墙规则页面,和 ufw 是两层控制,两处都要放行。
通过服务商控制台的 VNC/Console 功能直接登录服务器(不走 SSH),执行 sudo sshd -T | grep port 查看当前端口。
通过服务商控制台的 VNC/Console 登录,执行 sudo ufw disable 关闭防火墙,重新检查规则后再启用。这是最常见的操作失误,建议 ufw enable 之前用 ufw status 确认规则,确保 SSH 端口已在放行列表里。
境外主机(GreenGeeksVultrDigitalOcean 等)不需要 ICP 备案。但使用境外服务器的网站无法接入国内 CDN,国内访问速度受跨境线路影响。如果需要在国内备案,必须使用境内 VPS,参考 阿里云 ICP 备案全流程
本文最后更新于 2026-04,测试系统:Ubuntu 22.04 LTS。