BEGINNER GUIDE · DEPLOYMENT

VPS 网络服务节点部署详细教程。

从购买 VPS、连接服务器和配置 DNS 开始,一步一步完成防火墙、服务、TLS、通用入站和客户端测试。 本教程只用于合法合规的自用网络服务、远程访问、学习和服务器管理场景。

适合新手13 个步骤手机友好全程使用占位符

01 · PREPARATION

准备工作

先准备好账号、工具和权限。缺少任何一项都不要急着安装服务。

  • 一台可以重装系统、拥有公网 IPv4 的 VPS。
  • 一个域名(可选但推荐),以及域名 DNS 服务商账号。
  • SSH 工具,例如 Windows Terminal、PowerShell 或 Termius。
  • 服务器 root 权限,或一个能够使用 sudo 的普通账号。
  • 用于测试的手机或电脑客户端。
  • 能够复制命令、查看命令返回值,并在报错时停止继续操作。
建议建立一份私密记录

只记录服务名称、用途和配置路径。密码、Token、私钥、连接链接应放进可信密码管理器,不要写在公开文档里。

02 · CHOOSE A VPS

购买 VPS

选择 VPS 时不要只看价格。先确认用途和每月预算,再逐项比较:

地区与网络质量

优先选择离主要使用地点较近、延迟稳定且路由质量合适的地区。不要只看测速峰值。

带宽与流量

确认端口带宽、每月流量、超额计费和是否限制长期高占用。

CPU 与内存

轻量自用通常从 1 核、1–2 GB 内存起步;同时运行面板、网站或数据库时应预留更多资源。

系统与重装

确认支持 Ubuntu 22.04/24.04 LTS 或 Debian 12,并允许随时重装。

网络与安全组

确认提供公网 IPv4、可管理安全组,并允许开放业务所需端口。

长期运行

检查续费价格、备份能力、服务条款、工单响应和供应商稳定性。

推荐系统

  • Ubuntu 22.04 LTS:资料多、兼容性成熟。
  • Ubuntu 24.04 LTS:适合新部署,但安装前要确认目标服务已兼容。
  • Debian 12:系统精简、稳定,适合熟悉 Debian 系的软件。
购买后先做两件事

保存供应商的控制台入口与救援方式,并立即更换初始密码。不要把登录邮件或服务器信息转发到公共群。

03 · SSH

连接服务器

  1. 在云服务商控制台找到服务器公网 IP、登录用户名和 SSH 端口。
  2. 确认安全组已经允许你从当前网络访问 SSH 端口。
  3. 在 Windows PowerShell 或 Windows Terminal 中执行命令。

使用 root 登录

ssh root@你的服务器IP

如果云主机默认不是 root 用户

ssh ubuntu@你的服务器IP

第一次连接会显示主机指纹。先和云控制台信息核对,确认无误后再接受。登录成功后执行:

确认当前身份和系统

whoami
hostnamectl
ip a

常见 SSH 问题

Permission denied

用户名、密码或密钥不正确;确认云面板给出的登录用户,并检查密钥文件权限。

Connection timed out

安全组、系统防火墙或云厂商网络未放行 SSH 端口;先在控制台检查端口规则。

Connection refused

SSH 服务未启动或端口已修改;通过云厂商控制台登录后检查 ssh 服务。

Host key changed

服务器重装后主机指纹会变化;先确认确实是自己的服务器,再清理本机旧记录。

密码始终错误

检查键盘布局、大小写和粘贴空格;部分云主机默认只允许密钥登录。

04 · DOMAIN & DNS

绑定域名和 DNS 解析

域名不是所有服务的硬性要求,但使用 TLS、迁移服务器和长期维护时通常更方便。

  1. 进入域名 DNS 管理页。
  2. 新增一条记录:主机记录填 node,类型选 A
  3. 记录值填 你的服务器IP,保存后得到示例地址 node.example.com
  4. 如果 DNS 平台支持代理,先根据目标服务官方文档确认能否代理;不确定时使用仅 DNS 解析。

检查 DNS

nslookup node.example.com
ping node.example.com
DNS 需要等待

解析通常几分钟生效,也可能因缓存持续数小时。Ping 不通不一定代表 DNS 错误,有些服务器会禁用 ICMP;以 nslookup 返回地址为主要判断依据。

05 · FIREWALL

开放安全组与防火墙端口

云服务商安全组和服务器系统防火墙是两层不同的控制。两边都必须允许,外部连接才可能到达服务。

Ubuntu / Debian UFW 示例

ufw allow 22/tcp
ufw allow 443/tcp
ufw allow 8443/tcp
ufw status
  • 22 是常见 SSH 端口;如已修改,请填实际端口。
  • 443 常用于 HTTPS/TLS 服务。
  • 8443 只是示例高位端口,不代表必须使用。
  • 管理面板建议使用随机高位端口,并限制允许访问的来源 IP。

06 · BASE SYSTEM

安装基础环境

先更新软件索引并安装常用工具。正式服务器升级前应先做快照或备份。

更新系统与基础工具

apt update && apt upgrade -y
apt install curl wget unzip socat cron -y

需要容器时安装 Docker

只从 Docker 官方渠道获取安装脚本,执行前可先下载并检查内容。

Docker 示例

curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
docker --version
  • 系统时间和时区正确。
  • 磁盘仍有足够空间。
  • Docker 或目标运行环境版本符合服务要求。
  • 重启服务器后 SSH 仍能正常连接。

07 · SERVICE

安装服务面板或节点服务

可以使用带管理界面的面板,也可以直接运行独立服务。3X-UI、X-UI、Docker Compose 或其他服务的安装命令会随版本变化, 应以项目官方仓库和发行说明为准,不要复制来源不明的一键脚本。

  1. 确认项目官方地址、最新稳定版本、支持的系统和备份方法。
  2. 安装前记录脚本会创建的用户、目录、端口和 systemd 服务名。
  3. 安装后立即修改默认账号、密码、管理端口和访问路径。
  4. 检查服务是否监听预期端口,并确认日志没有持续报错。
  5. 如果使用面板,开启 HTTPS 后再进行远程管理。

systemd 服务

systemctl status 服务名
systemctl restart 服务名
systemctl enable 服务名
journalctl -u 服务名 --no-pager -n 100

Docker 服务

docker ps
docker compose ps
docker compose logs --tail=100 服务名
docker compose restart 服务名

查看监听端口

ss -lntp
先留一条恢复路径

修改面板端口或 HTTPS 前,保持 SSH 会话开启。确认新入口可访问后再关闭旧会话,避免因配置错误失去管理权限。

08 · HTTPS / TLS

配置 HTTPS / TLS 证书

方式 A:面板自动申请

适合域名已经正确解析、80/443 没有被其他程序占用,并且面板支持自动签发证书的情况。

方式 B:DNS TXT 验证

适合 80 端口被占用、服务器不能直接接受验证,或希望申请通配符证书的情况。

  1. 确认域名已经指向当前服务器。
  2. 检查 80/443 是否被占用,并停止不需要的冲突服务。
  3. 按面板或证书工具要求完成 HTTP 或 DNS 验证。
  4. 将完整证书链和私钥路径填入目标服务,并限制私钥文件权限。
  5. 重启服务后,从外部浏览器检查证书域名和有效期。

80 端口被占用

ss -lntp 找出占用程序;不要同时让两个服务监听同一地址和端口。

DNS TXT 未生效

核对记录名称和值,等待缓存更新;旧验证记录不要和本次记录混淆。

签发频率受限

停止重复点击申请,先修复验证条件,再等待证书机构限制窗口结束。

证书路径错误

确认填写的是实际文件路径,运行服务的账号有读取权限,并区分证书链与私钥。

面板 HTTPS 无法访问

检查面板端口、安全组、防火墙、证书格式和服务日志;必要时通过 SSH 恢复旧配置。

09 · INBOUND

创建通用节点配置

不同服务的字段名称不同,但一个入站通常需要下面这些信息。本教程不强制使用任何单一协议。

名称与监听

使用能说明用途的入站名称;监听地址与端口按官方文档填写,避免和现有服务冲突。

协议与认证

根据合法用途和客户端兼容性选择协议,并使用工具生成独立的认证信息,不要复用公开示例。

传输与安全

TLS、Reality、WebSocket 等选项仅在目标服务支持且你理解其含义时启用,服务端和客户端必须完全一致。

客户端信息

保存地址、端口、认证信息和所需参数;分享链接、二维码和订阅链接都应视为密码。

  1. 创建入站前,用 ss -lntp 确认目标端口未被占用。
  2. 只开放该入站真正需要的云安全组和防火墙端口。
  3. 保存配置并重启或重新加载服务。
  4. 再次检查监听端口和日志,确认配置被成功加载。
  5. 生成客户端连接信息,并先在自己的测试设备上验证。

10 · CONNECTIVITY TEST

客户端连接测试

  1. 把连接信息导入支持该配置的客户端,先不要手工修改字段。
  2. 确认手机或电脑时间自动同步,域名已解析到当前服务器。
  3. 在服务器上确认服务运行、端口监听和日志没有认证或证书错误。
  4. 分别使用 Wi-Fi 与移动网络测试,排除单一网络环境影响。
  5. 测试成功后重启一次服务器,确认服务会自动恢复。

端口与服务

ss -lntp
systemctl status 服务名

域名与 HTTPS

nslookup node.example.com
curl -I https://node.example.com

Docker

docker ps
docker compose logs --tail=100 服务名

11 · TROUBLESHOOTING

常见错误排查

按“DNS → 云安全组 → 系统防火墙 → 端口监听 → 服务日志 → 客户端配置”的顺序检查,避免同时修改多个变量。

客户端连接超时

检查域名解析、云安全组、UFW、服务监听地址与端口;从外部网络重新测试。

域名解析到错误地址

核对 A 记录和值,等待 DNS 缓存更新,并分别查询本地 DNS 与公共 DNS。

端口没有监听

服务可能未启动、配置未加载或端口冲突;检查服务状态和日志。

证书错误

核对域名、有效期、证书链和私钥路径;确认域名已经指向当前服务器。

面板无法打开

确认面板端口、访问路径、HTTPS 设置、安全组和防火墙;不要直接开放所有端口。

服务启动后立即退出

查看 systemd 或容器日志,重点检查配置格式、权限、路径和端口冲突。

只有部分网络能连接

检查 IPv4/IPv6、DNS 缓存、运营商网络差异和客户端时间是否准确。

客户端导入后无效

重新核对地址、端口、认证信息、传输参数和 TLS 选项,避免手工漏填字段。

一轮基础检查

hostnamectl
ip a
ss -lntp
ufw status
systemctl status 服务名
journalctl -u 服务名 --no-pager -n 100
docker ps

12 · SECURITY

安全建议

  • 修改面板默认账号、密码、端口和访问路径。
  • 管理面板开启 HTTPS,并仅向可信来源开放管理端口。
  • SSH 优先使用密钥登录;确认密钥登录正常后,再评估是否关闭密码登录。
  • 只开放实际需要的端口,定期复查云安全组和系统防火墙。
  • 定期更新系统、面板和服务,但升级前先备份并阅读兼容性说明。
  • 不要运行来源不明的一键脚本,也不要把陌生命令直接粘贴到 root 终端。
  • 不要公开分享连接链接、二维码、UUID、私钥或订阅地址。
  • API Key、Token、密码和证书私钥不得写入网页或提交到 GitHub。
  • 重要配置下载到本地后离线保存,并限制备份文件的读取权限。

13 · BACKUP

备份建议

  • 记录系统版本、服务版本、监听端口、面板路径和域名。
  • 备份面板数据库、服务配置、证书、容器编排文件和环境变量文件。
  • 为备份写明日期,并在本地验证压缩包可以正常打开。
  • 至少保留一份不在当前 VPS 上的离线备份。
  • 每次大版本升级、修改证书或调整入站前先做一次新备份。
  • 恢复演练时使用测试环境,不要等到故障发生才第一次尝试恢复。

通用备份目录示例

mkdir -p /root/backup-network-service
tar -czvf backup-network-service.tar.gz /root/backup-network-service

下载到本地电脑

scp root@你的服务器IP:/root/backup-network-service.tar.gz .
完成检查

服务可连接、证书有效、重启后自动恢复、离线备份可读取,并且没有在公开位置留下任何凭证,才算完成部署。