单机游戏下载单机游戏下载基地
最新游戏|热门游戏|游戏大全|游戏专题

自建VPS教程:完整步骤

2026/11/11 7:43:12 来源:本站整理 编辑:飞翔小编

您的位置:首页 → 资讯教程 → 软件教程 → 自建VPS教程:完整步骤

【飞翔导读】所谓自建VPS,本质是把「买一台现成机器」和「用自己手上的硬件搭一台」这两条路混为一谈。本文先用真实商品库的价格把两条路的成本换算成可比的数字,再给出十二个步骤把整条流程走通,最后按机房位置、线路类型、计费方式、IP 资源这些公开事实说明各自不适用的场景,并给出明确到商家和档位的选择结论,让你读完就能下单。

一、先把「自建 VPS」这件事的两条路分清楚

在动手之前必须先分清一件事:中文语境里的「自建 VPS」至少指两种完全不同的东西,走错路会浪费大量时间。

第一种是买一台 VPS 自己配置。 你从服务商那里买一台虚拟服务器,拿到独立 IP 和 root 权限,然后自己装系统、配环境、部署业务。服务器是别人的物理机器,你分到的是一块虚拟资源。这是绝大多数人搜索「自建VPS教程」时真正想做的事。

第二种是用自己手上的硬件搭一台服务器。 你可能有一台闲置台式机、一台旧笔记本、一台 NAS,甚至一台旧手机,装上 Linux、跑虚拟化、对外提供 web 服务。这条路没有月租,但电费、带宽、公网 IP 都要你自己解决。

两条路的差别是结构性的,下面这张表把关键项逐条摊开:

对比项 买 VPS 自己配置 自有硬件搭服务器
一次性成本 0 硬件购置成本,一次性支出
周期性成本 每月付费 电费、宽带月租
起步速度 付款后十几分钟可用 装系统、装虚拟化、调试,至少一个周末
公网 IP 商家分配独立 IPv4 需单独申请,通常是额外月费
端口速率 500 到 10000 Mbps 受限于家宽上行
断电风险 商家机房供电保障 家里停电即中断
硬件维护 商家负责 自己负责,含换盘、排查故障
适用人群 绝大多数人 有闲置硬件且懂运维的人

查看 iwebfusion 当前月价与库存

从这张表能看出一条关键结论:第二条路的瓶颈几乎永远是「上行带宽」和「公网 IP」,而不是 CPU 和内存。 家宽的上行速度通常是下行的几分之一,很多人家里 500M 宽带上行只有 30M。用家宽做网站服务器意味着对外服务能力被上行卡死,因为所有访客的请求都要从你家里推出去。这是物理限制,不是调优能解决的问题。

如果手上没有闲置硬件,或者不懂 Linux 与网络运维,买 VPS 是唯一合理的选择。 所谓「自建更省钱」,在没有闲置硬件的前提下并不成立——你要付出的学习成本和时间远超省下的钱。

如果确实有闲置硬件,第二条路有一道硬门槛:这台机器必须能被公网访问到。 这需要三样东西同时具备:一个公网 IP、开放入站流量的方式(多数家庭宽带默认屏蔽入站)、以及路由器上的端口映射。这三样在家用宽带上往往要额外付费或额外配置。

最后一条现实约束是 IP 信誉。 家庭宽带的 IP 段往往已被各类爬虫与邮件垃圾源使用多年,用它对外提供服务时容易在别处被判定为滥用源。而 VPS 分配的 IP 通常来自专门的商用网段。这是 IP 段使用历史的客观事实,不是对商家的评价。

二、两条路的成本换算:把配置折算成可比的数字

这一步是本篇的第一个决策依据。讨论「自建」而不算钱,讨论的就只是感觉。 下面所有数字取自渠道商品库快照(数据时间 2026-11-10 09:40),以商家页面当日显示为准。

先看租用一档真实 VPS 的月成本。 商品库里最便宜的一档是 RosCloud-01,19.99 美元/月,含 2 vCPU、1 GB 内存、20 GB 硬盘、500 Mbps 端口、1024 GB 月流量,折合每 GB 内存 19.99 美元、每 GB 硬盘 0.999 美元、每 TB 流量 19.99 美元。这个数字本身就是结论:低月价的机器,单位成本高得离谱,因为你为 1 GB 内存付了 19.99 美元。

把这条产品线往上翻,单位成本是持续下降的:

档位 月价(美元) 内存 硬盘 月流量 每 GB 内存 每 GB 硬盘 每 TB 流量
RosCloud-01 19.99 1 GB 20 GB 1024 GB 19.99 0.999 19.99
RosCloud-02 29.99 2 GB 40 GB 2048 GB 14.99 0.750 14.995
RosCloud-03 39.99 4 GB 80 GB 3072 GB 10.00 0.500 13.33
RosCloud-04 49.99 8 GB 160 GB 4096 GB 6.25 0.312 12.498
RosCloud-05 59.99 16 GB 240 GB 5120 GB 3.75 0.250 11.998
RosCloud-06 69.99 24 GB 320 GB 6144 GB 2.92 0.219 11.665

查 racknerd 在售套餐与库存

把这条曲线读透:从最低档升到最高档,月价涨了 3.5 倍,但每 GB 内存的花费降到只有原来的七分之一。 这说明在这条产品线里,低档位卖的是「低门槛进入」,不是「高性价比」。如果你确定要跑起来,直接从 RosCloud-03(4 GB 内存、每 GB 内存 10.00 美元)起步,比从 RosCloud-01 起步再升级更省事也更划算,因为重新部署的时间成本通常高于多付的那点差价。

再看另一条产品线,它把「年付」这个变量摊到了桌面上。 sixtynet 全部机型按年付费,折算成月价后单位成本是另一个量级:

机型 年付(美元) 折月(美元) 配置 每 GB 内存 每 TB 流量 端口
LAX-STARTER 200 16.67 2C / 2 GB / 40 GB 8.33 3.413 2000 Mbps
LAX-MICRO 400 33.33 4C / 4 GB / 80 GB 8.33 3.413 4000 Mbps
LAX-Storage-500G 400 33.33 4C / 4 GB / 500 GB 8.33 3.413 10000 Mbps
LAX-MEDIUM 800 66.67 8C / 8 GB / 160 GB 8.33 3.413 10000 Mbps
LAX-Storage-1TB 700 58.33 8C / 8 GB / 1000 GB 7.29 3.982 10000 Mbps
LAX-LARGE 1600 133.33 8C / 16 GB / 320 GB 8.33 3.413 10000 Mbps

三个数字值得单独拎出来:

第一,折月 16.67 美元的 LAX-STARTER,比 RosCloud-01 的 19.99 美元还便宜,而且每 GB 内存只有 8.33 美元、每 TB 流量只有 3.413 美元。 后者是 RosCloud-01 的两倍多。这说明「月付」和「年付」不只是付款方式不同,单位成本差距可能超过一倍。

第二,硬盘单价出现了断崖式差异。 LAX-Storage-500G 的硬盘单价是每 GB 0.067 美元,1 TB 盘(LAX-Storage-1TB)是每 GB 0.058 美元,而同一家同为 8C 8 GB 内存的 LAX-MEDIUM 是每 GB 0.417 美元。换算成 1 TB 硬盘的购置成本:LAX-Storage-1TB 约 59.73 美元,LAX-LARGE 约 426.67 美元。 差价七倍以上。这不是配置强弱问题,是产品线定位问题:Storage 系列就是专门做存储的。

第三,第三条产品线云途的计费方式完全不同。 云途全部机型按月付费,价格在 350 到 1500 美元/月之间,但每一档都写明了超额流量的重置价,这是前两条产品线都没有的条款:

机型 月价(美元) 内存 硬盘 月流量 每 GB 内存 超额重置价
云途 HK.DS.M 350 32 GB 480 GB SSD 10000 GB 10.94 200
云途 DS.ES.F 399 32 GB 800 GB SSD 10000 GB 12.47 200
云途 DS.ES.C 700 64 GB 800 GB SSD 40000 GB 10.94 500
云途 HK.DS.P 750 64 GB 1024 GB SSD 40000 GB 11.72 500
云途 HK.DS.S 800 128 GB 6000 GB SAS HDD 40000 GB 6.25 500
云途 DS.ES.B 1500 256 GB 1920 GB SSD 30000 GB 5.86 450

云途的流量单价换算出来是每 TB 17.92 到 51.2 美元,比 sixtynet 的 3.413 美元高出五到十五倍。 但这不能只看单价:云途的重置价机制意味着超出部分按重置价计费。以云途 HK.DS.S 为例,超额 1 TB 约需 12.80 美元,低于它标称的每 TB 20.48 美元标准价。 这就是「超额重置」条款的实际含义——流量用超了不一定更贵,也可能更便宜,取决于档位。

最后是第二条路线的成本模型。 假设你有一台闲置机器,一次性硬件投入 800 美元,按 3 年摊销,每月折合 22.22 美元。这个数字比 LAX-STARTER 的折月 16.67 美元高,比 LAX-MICRO 的 33.33 美元低。 也就是说,在「已有 800 美元闲置硬件」这个前提成立时,自建一台机器每月的成本,恰好落在一台中档 VPS 的价格区间里,并没有便宜到可以忽略运维。

更关键的是自建路线还有一笔隐性账单:电费和带宽。 一台常开的台式机按 300W 功率算,一天 24 小时满载是 7.2 度电;即便实际功耗只有 150W,一天也是 3.6 度电,一个月按 108 度算。再加上一条家宽月租,这笔支出会进一步把自建的成本推高。结论是:如果你已经付过硬件的钱且机器闲置,自建的边际成本确实低;但如果你需要额外购置硬件,两年内的总成本通常高于直接租一台 VPS。

三、第一步:选系统,选对版本而不是选最新

系统选型这一步定了,后面所有教程的命令都跟着定了,所以值得一次想清楚。

主流选择是三个:Ubuntu Server、Debian、Rocky/AlmaLinux(CentOS 替代)。三者的定位完全不同。

Ubuntu Server 是新手最常遇到的,因为绝大多数 VPS 商家默认装它。它的优点是文档多、社区大、软件源新;缺点是 LTS 版本两年才发一次大版本,安全更新节奏慢于滚动发布的版本。 如果你跟着的教程是 Ubuntu 的,命令和 Debian 基本通用,但要注意包名差异,比如用 apt 而非 dnf。

Debian 更保守也更稳。 它以「不崩」为第一目标,版本更新慢但每一版都很可靠。如果你要跑的是长期在线的服务,Debian 的稳定性收益是实在的。

Rocky Linux 和 AlmaLinux 是 RHEL 系的社区重建版,和以前的 CentOS 命令几乎完全一致。如果你的业务环境是企业软件,尤其是需要特定 RHEL 生态的工具,这是对的选择,但对纯建站来说社区文档量不如 Debian 系。

版本选择上有个高频误区:新手往往选「最新版」。实际上更稳妥的做法是选那个教程针对的版本,而不是选最新版本。 教程里写 Ubuntu 22.04 的命令,你装了 24.04,差异会消耗你大量时间。

确认当前系统的版本和基本信息:

cat /etc/os-release
uname -a
hostnamectl

装好系统后第一件事是更新。这一步很多教程会跳过,导致后面装软件时各种版本对不上。

# Debian / Ubuntu 系
apt update && apt upgrade -y

# RHEL 系(Rocky / AlmaLinux / CentOS)
dnf update -y

查 cloudcone 在售套餐与库存

关于内核版本要不要自己升:多数情况下不需要。 发行版的安全更新已经包含内核补丁,自己编译内核是运维里最容易出事的操作之一。只有在你明确知道某个 CVE 需要更新版本内核、并且愿意承担升级失败无法启动的风险时,才考虑 kernel-ml 之类的方案。

四、第二步:拿到机器后必须先做的五件事加固

这一步不能拖。商家交付的机器默认配置是「通用能开机」的状态,不是「适合公网使用」的状态。从拿到 IP 到对外开站点之间,至少要做这五件事。

第一件事:新建普通用户并给 sudo 权限。 日常操作用普通账号,root 只用于权限变更。

adduser deploy
usermod -aG sudo deploy

第二件事:改 SSH 配置前必须先保持当前会话不断开。 这是新手最常见的翻车点。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo sed -i 's/#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sshd -t && sudo systemctl reload ssh

sudo sshd -t 这一步不能省。 配置写错了直接 systemctl restart ssh,服务起不来,你就彻底失去这台机器了,因为密码登录已关、密钥可能还没配好。先验证再重载,语法有问题它会报错但不影响现有连接。

第三件事:配置防火墙。 默认只放行 SSH、HTTP、HTTPS 三个端口。

# Debian / Ubuntu 系
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

# RHEL 系
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

第四件事:装 fail2ban 或同类防爆破工具。 SSH 密钥登录不是万无一失的——很多扫描器会直接开始尝试公钥,fail2ban 能把这类尝试在累积到一定次数后自动封禁。

sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

第五件事:检查是否有异常登录记录和定时任务。 交付的机器应该是干净的,但确认一下成本很低。

sudo last -a | head -20
sudo crontab -l
ls -la /etc/cron.d/
sudo ss -tulnp

digitalocean 官网机型与实时报价

这五件事做完,你的机器才算「可以对外服务」。 顺序不要变:先建用户、再改 SSH、最后才是关密码登录。反过来做,你会在改完 SSH 的瞬间断开连接。

五、第三步:把配置换算成能承载多少访问量

买机器最容易犯的错,是按「感觉」选配置。正确的做法是把自己的访问量算出来,再倒推需要多少内存、硬盘和流量。 这一节用商品库里的真实参数做换算。

先说流量。 商品库里每一档都标注了月流量额度,这直接决定你的带宽成本。假设你的站点平均每次访问传输 500 KB,那么 1 GB 流量大约对应 2048 次访问。

机型 月流量额度 按 500 KB/次折算的月访问量
RosCloud-01 1024 GB 约 210 万次
LAX-STARTER 5000 GB 约 1024 万次
LAX-MICRO 10000 GB 约 2048 万次
LAX-MEDIUM 20000 GB 约 4096 万次
LAX-LARGE 40000 GB 约 8192 万次
云途 HK.DS.S 40000 GB 约 8192 万次

查 hostwinds 在售套餐与库存

这张表说明一个常被忽略的事实:对绝大多数中小站点,流量额度根本不是瓶颈。 一个日均 1 万 PV、页面 200 KB 的站点,一个月大约消耗 600 GB 流量,RosCloud-01 的 1024 GB 都用不满。真正会先耗尽流量的是下载站、图床、视频和 API 转发类业务。

再说内存。 经验换算:一台跑 Nginx + PHP-FPM + MySQL 的站点,每个活跃 PHP 进程大约占 50 到 80 MB 内存,MySQL 基础占用约 300 到 500 MB,操作系统本身约 200 MB。按这个模型算:

站点规模 建议内存 对应机型
个人博客,日均 500 PV 2 GB LAX-STARTER(2 GB)/ RosCloud-02(2 GB)
小型企业站,日均 5000 PV 4 GB LAX-MICRO(4 GB)/ RosCloud-03(4 GB)
论坛或带后台的站,日均 2 万 PV 8 GB LAX-MEDIUM(8 GB)/ RosCloud-05(16 GB)
电商或多个站点,日均 10 万 PV 16 GB LAX-LARGE(16 GB)/ 云途 DS.ES.B(256 GB)

换算成钱:日均 5000 PV 的小型企业站,最低需要 4 GB 内存,最便宜的选项是 LAX-MICRO,折月 33.33 美元,每 GB 内存 8.33 美元。 如果你打算用三年,年付是 400 美元。

最后说硬盘。 系统加数据库加日志加备份副本,一个 4 GB 内存的小站建议至少 80 GB。但如果你有大量静态文件或用户上传,硬盘需求会远超内存需求——这时应该看 Storage 系列:LAX-Storage-500G 是同样的 4C 4 GB 内存,多了 420 GB 硬盘,硬盘单价每 GB 0.067 美元。

这里有一个真实的取舍:同样的 33.33 美元月价,LAX-MICRO 给 80 GB 盘,LAX-Storage-500G 给 500 GB 盘。如果你的瓶颈是存储而不是内存,Storage 系列的单位性价比高得多;但如果你需要跑数据库和处理大量并发请求,80 GB 配 4 GB 内存的组合更均衡。

六、第四步:验收标准写成数字,不要写成「感觉还行」

这是本篇最实用的一节。买完机器后不要凭感觉判断「好像挺快的」,而要跑一遍具体的测试,用明确的数字判断这台机器是否达标。下面这组阈值可以直接照抄执行。

阈值一:网络往返延迟。 连续测试 10 次取中位数。

ping -c 10 your-domain.com

判定标准:国内主要线路到香港节点,丢包率应为 0%,延迟中位数低于 80 ms;到美国西海岸节点,延迟中位数低于 200 ms。超过这个数说明线路绕远或负载偏高。

阈值二:首字节响应时间。 这是访客真正感受到的速度。

curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" https://your-domain.com/

判定标准:TTFB 小于 0.3 秒(300 ms)为合格,小于 0.15 秒为优秀,超过 1 秒说明后端有瓶颈需要查。 这个数字要连测三次取最差值,而不是取最好的一次——最好值反映的是缓存命中时的表现,最差值才反映真实访客的体验。

阈值三:1 MB 文件下载耗时。 用一个真实的静态文件测试,排除本地回环的干扰。

curl -o /dev/null -s -w "size: %{size_download} bytes, time: %{time_total}s\n" https://your-domain.com/test-1mb.bin

判定标准:1 MB 下载耗时小于 2 秒为合格。 这等于要求实际吞吐量高于 500 KB/s。注意:端口标称 500 Mbps 不等于实际能达到 500 Mbps,端口速率是上限不是保底。

阈值四:内存谷值。 这是判断配置是否够用的硬指标。

free -m

判定标准:上线后观察一个完整业务周期(建议 24 小时),内存占用谷值低于 15%。 谷值而不是峰值才是关键——峰值短暂冲高没关系,如果谷值就占了 40%,说明这个配置对你的业务是勉强的,应该在下一周期升档而不是硬扛。

阈值五:磁盘 I/O 响应。 云途 HK.DS.S 用的是 SAS HDD,而其他多数机型是 SSD 或 NVMe,这个差异会体现在这个指标上。

dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct
dd if=/tmp/testfile of=/dev/null bs=1M iflag=direct

判定标准:写入和读取的平均速度低于 100 MB/s 应视为不达标。 对数据库站点,SSD 与机械盘的差距不是「快一点」,而是数量级。

阈值六:CPU 负载。

uptime

判定标准:1 分钟负载值持续高于 vCPU 核数,说明算力不足。 需要说明的是,商品库里云途系列只标注了 CPU 型号(如 6248 × 1、8259CL × 2),没有给出 vCPU 核数,所以这一项只能按实际核数自行设定阈值。

把这六项跑完填进一张表,你的验收就完成了:

验收项 合格阈值 实测值 是否达标
网络延迟 低于 80 ms(港)/ 200 ms(美西) 待填 待填
TTFB 低于 300 ms 待填 待填
1 MB 下载 低于 2 秒 待填 待填
内存谷值 低于 15% 待填 待填
磁盘 I/O 高于 100 MB/s 待填 待填
CPU 负载 低于 vCPU 核数 待填 待填

查看 interserver 当前月价与库存

任何一个指标不达标,就要在续费周期前解决,而不是「先凑合用着」。 因为按月付的机器随时可以换,按年付的机器一旦不满意,中途退出的成本通常远高于一开始选对。

七、第五步:装 Web 服务与运行环境

环境安装有两条主流路线:PHP-FPM 加 Nginx,或者 Node.js 直接跑。选哪条取决于你要做什么,但无论哪条,装完都要做同样的三件事。

先用 Nginx 反代,这是最常见的组合:

sudo apt install -y nginx
sudo systemctl enable --now nginx
sudo nano /etc/nginx/sites-available/your-domain

站点配置的骨架是这样的:

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    root /var/www/your-domain/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~ /\. {
        deny all;
    }
}

这段配置里有两个要点值得展开。

第一个要点是 location ~ /\. 这条规则。 它禁止访问以点开头的路径,这是防目录遍历的基本手段。缺了这条规则,别人可以通过访问 /.git/config 拿到你的源码和配置,这是真实发生过无数次的安全事故。**如果有 .env 文件,同样应该被这条规则挡住。

第二个要点是 fastcgi_pass 那行。 版本号必须和实际安装的 PHP 版本一致。常见报错是 502 Bad Gateway,原因几乎都是 socket 路径不对。 确认路径:

ls -l /run/php/

第二个常见报错是 413 Request Entity Too Large。 这是上传大小超限,改 PHP 配置:

sudo nano /etc/php/8.2/fpm/php.ini
# 找到并修改这两项
upload_max_filesize = 64M
post_max_size = 64M
sudo systemctl restart php8.2-fpm

第三个常见报错是 Permission denied(日志里 403)。 目录权限问题,标准解法是让 Web 服务用户能读取代码目录:

sudo chown -R www-data:www-data /var/www/your-domain
sudo find /var/www/your-domain -type d -exec chmod 755 {} \;
sudo find /var/www/your-domain -type f -exec chmod 644 {} \;

另一个反复出现的错误是 nginx: [emerg] mkdir() "/var/log/nginx/xxx" failed (2: No such file or directory)。 这是日志目录不存在,手动建出来即可。

如果你走 Node.js 路线,注意两个差异。 第一,Node 进程需要常驻管理,用 pm2 或 systemd 托管;第二,Node 应用默认自己监听端口,要用 Nginx 反代时记得让应用监听 127.0.0.1 而不是 0.0.0.0,否则会绕过 Nginx 直接对外暴露。

查看 itldc 当前月价与库存

# pm2 托管示例
npm install -g pm2
pm2 start app.js --name myapp
pm2 save
pm2 startup

八、第六步:数据库怎么装才安全

数据库是自建 VPS 里最常出事的一环。三个默认设置必须改:不监听公网、用 socket 连接、给应用单独建账号。

安装并初始化:

sudo apt install -y mysql-server
sudo systemctl enable --now mysql
sudo mysql_secure_installation

mysql_secure_installation 会问几个问题,关键的两项是:是否禁止 root 用密码从远程登录(选 Yes),以及是否删除匿名用户(选 Yes)。

改绑定地址。默认 MySQL 监听 127.0.0.1,Ubuntu 上这个配置在单独文件里:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 确认 [mysqld] 段下这一行
bind-address = 127.0.0.1
sudo systemctl restart mysql

验证有没有真的改成功:

sudo ss -tulnp | grep mysql

如果输出里出现 0.0.0.0:3306,说明还在对公网监听,必须回去改。 这是最直接的验证方式,不要靠猜。

建一个专供应用使用的账号,不要用 root 跑应用:

CREATE DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'yourapp'@'localhost' IDENTIFIED BY 'strong-password';
GRANT SELECT, INSERT, UPDATE, DELETE ON yourdb.* TO 'yourapp'@'localhost';
FLUSH PRIVILEGES;

注意授权语句里只给了 SELECT、INSERT、UPDATE、DELETE,没有给 DROP 和 ALTER。 应用账号通常不需要改表结构权限,权限收窄后即使应用被拿下,破坏面也小得多。

两个高频报错要认识:

报错一:ERROR 1045 (28000): Access denied for user。原因基本是密码错或 host 不匹配。注意 localhost 和 127.0.0.1 在 MySQL 的授权表里是两套独立的记录,一个能用另一个不能用是常见现象。统一用 localhost 并通过 socket 连接最省事。

报错二:应用报 SQLSTATE[HY000] [2002] Connection refused。 这是 PHP 侧没走到 socket。要在数据库配置里把 host 设成 localhost 而不是 127.0.0.1,前提是 PHP-FPM 和 MySQL 在同一台机器上。

关于数据库备份,一定要用逻辑备份而不是直接复制数据目录:

mysqldump -u yourapp -p yourdb | gzip > /backup/yourdb-$(date +%F).sql.gz

查 spinservers 在售套餐与库存

物理复制数据目录在数据库运行时是不安全的,可能拿到不一致的快照。

九、第七步:域名解析和 HTTPS 证书

这一节有两个高频报错,几乎所有人都会撞一次,所以单独写清楚。

第一步是加解析记录。 在 DNS 服务商处添加 A 记录,把域名指向服务器 IP。注意加完记录后需要等 TTL 过期才能生效,这条 TTL 通常是 600 秒或更长。

验证解析是否生效:

dig your-domain.com +short
# 或
nslookup your-domain.com

如果返回的 IP 不是你的服务器,说明要么解析没加对,要么本地 DNS 缓存了旧记录。 这时可以换一个公共 DNS 验证:

dig @8.8.8.8 your-domain.com +short

第二步是签发证书。用 Let's Encrypt 的 certbot 是最省事的做法:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com -d www.your-domain.com

certbot 会自动改 Nginx 配置并配置续期定时器。验证续期是否正常:

sudo certbot renew --dry-run

这一步值得做,因为证书过期是自建站最常见的事故之一。

接下来是三个必须认识的报错。

报错一:Timeout during connect (acme_v2) 或 Some challenges have failed。 这几乎总是 DNS 解析还没生效,或者 80 端口没放行。用这个命令确认 80 端口从公网可达:

curl -I http://your-domain.com

如果 curl 返回 404 或连接超时,问题在防火墙或解析,不在 certbot。

报错二:Too many certificates already issued for this exact set of identifiers。 Let's Encrypt 对同一组域名每周有签发次数上限,测试阶段反复签发容易触发。解决办法是加 --dry-run 先做演练,正式签发一次就好。

报错三:证书装好了但浏览器仍提示不安全。 检查 Nginx 是否真的加载了新证书并重启过:

sudo nginx -t && sudo systemctl reload nginx
echo | openssl s_client -connect your-domain.com:443 2>/dev/null | openssl x509 -noout -dates

最后一条命令会打印证书的有效期,把它和当前日期对比,就知道证书是不是新的。

另一个常见误区是只配了 443 没配 80 的跳转。 建议在 Nginx 里把 80 端口全部重定向到 443,这样证书续期的 HTTP-01 验证也能正常进行:

查 justg 在售套餐与库存

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    return 301 https://$host$request_uri;
}

按你的情况,下一步该看哪家

上面讲的是判断标准,但多数人最后还是想问一句「那我该买谁」。按你的实际情况对照下面几条,直接去看对应的机型页比继续比价更快:

价格与库存以商家页面当日显示为准,下单前建议先确认退款窗口与是否支持按月付费。

十、第八步:部署上线后的必查项

代码上传完不等于上线成功。下面这些项目逐条检查,全部通过才算真的上线。

第一,检查服务是否正常响应:

curl -I https://your-domain.com/
# 期望 HTTP/2 200

第二,检查静态资源是否 404。 页面能打开但 CSS、JS 全 404,通常是 root 路径配错或文件没上传对位置。

第三,检查 Nginx 错误日志:

sudo tail -50 /var/log/nginx/error.log

第四,检查应用日志。 PHP 的错误日志通常在 /var/log/php8.2-fpm.log,Node 应用的日志在 pm2 里看:

pm2 logs --lines 50

第五,确认目录权限与安全头。 上传目录要禁止执行脚本,这是防 webshell 的关键一环:

location ~* ^/uploads/.*\.(php|phtml|php3|php5|php7)$ {
    deny all;
}

第六,配置基础安全响应头:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

第七,做一次外部视角的检查。 用命令行工具从外部请求自己的站点,模拟真实访客:

curl -s -o /dev/null -w "TTFB: %{time_starttransfer}s\n" https://your-domain.com/

这一步和在本机测的结果可能完全不同,因为本机测试绕过了公网链路。

第八,确认备份任务真的在跑。 不要只配置了就认为安全,实际跑一次并确认文件落地:

sudo ls -lh /backup/
sudo crontab -l

zenlayer 官网机型与实时报价

最后一条经验:改完任何配置,先 nginx -t 再 reload。 这一条能避免绝大多数「改完配置网站就白了」的夜晚。

十一、上线之后的运维节奏:哪些事必须每天做

机器交付不是结束,是开始。很多自建站死在第三个月而不是第一天,原因都是没人管。 下面这份清单可以直接照着排进 crontab。

第一件:磁盘空间监控。 磁盘写满是网站挂掉最常见的原因之一,而且通常毫无征兆。

df -h
du -sh /var/log/* 2>/dev/null | sort -h | tail -5

把这条做成每日任务,超过 85% 就报警:

0 3 * * * /usr/bin/df -h / | awk 'NR==2 {gsub("%","",$5); if ($5+0 > 85) mail -s "disk alert" [email protected]}' | /usr/bin/tee -a /var/log/disk_check.log

第二件:日志轮转。 不配 logrotate,访问日志会慢慢吃掉整个硬盘。Debian 系默认装好了,检查一下即可:

ls /etc/logrotate.d/
sudo logrotate -d /etc/logrotate.conf

第三件:内存与负载趋势。 单看某一时刻的数字没有意义,要看的是谷值的长期趋势。用 sysstat 记录历史:

sudo apt install -y sysstat
sudo sed -i 's/ENABLED="false"/ENABLED="true"/' /etc/default/sysstat
sudo systemctl enable --now sysstat

装好后可以用 sar 回看任意时间点的历史数据,这比临时加监控脚本有用得多:

sar -r          # 内存使用历史
sar -u          # CPU 使用历史
sar -n DEV      # 网络流量历史

第四件:自动更新包。 把人工任务变成系统任务,才能真正避免补丁积压。

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

第五件:备份校验。 备份最可怕的状态不是「没备份」,而是「以为备份了但其实是空的」。所以要定期验证:

sudo gzip -t /backup/yourdb-$(date +%F).sql.gz && echo "备份文件完整"

第六件:重启与内核升级窗口。 内核升级后需要重启才生效,但重启意味着中断。把重启安排在流量最低的时段,并且在重启前确认服务能自启动:

sudo systemctl list-unit-files --state=enabled | grep -E 'nginx|php|mysql'

查 dogyun 在售套餐与库存

这六件事排进定时任务,你的机器就能稳定跑很久。 需要提醒的是,这些都属于「维护成本」的一部分——这也是为什么第二节说自建路线要算上隐性账单:省下的租金,会以你花在运维上的时间形式还回来。

十二、什么情况下不该走「自建」这条路

这一节按公开事实说明每条路线的不适用场景,并给出替代方案。这里讨论的是机房位置、线路类型、计费方式、IP 资源这些客观条件,不是对任何商家的评价。

场景一:你的主要访客在国内,且对首屏速度敏感。这时不该选只有 500 Mbps 端口、且位于俄罗斯的 RosCloud 系列。 理由是公开可见的参数:商品库标注 RosCloud 系列 tags 为「俄罗斯」,端口速率为 500 Mbps。俄罗斯机房到国内访客的路径需要经过更长的地理距离,光纤距离本身就会把往返延迟推高,这是物理路径问题,不是配置问题。

替代方案:选机房位于香港的机型。 商品库中云途 HK.DS.P 是 64 GB 内存、1024 GB SSD、2000 Mbps 端口、40000 GB 月流量,折月 750 美元,每 GB 内存 11.72 美元。端口从 500 Mbps 提升到 2000 Mbps、机房从俄罗斯换成香港,这两项都是公开参数,选前者更稳妥。

场景二:你的业务需要大流量但不需要大内存。这时不该按内存单价挑机器。 RosCloud-06 的每 TB 流量是 11.665 美元,而 LAX-STARTER 是 3.413 美元。如果你的业务每月消耗 10 TB 以上流量,这个差距会被放大成每月超过 82 美元的差额。

替代方案:按流量单价选。 LAX-MEDIUM 是 8C 8 GB 内存、20000 GB 月流量、10000 Mbps 端口,折月 66.67 美元,每 TB 流量 3.413 美元。注意它的流量单价低到和 LAX-STARTER 完全一样,但月流量额度是四倍。

场景三:你的主要诉求是存储。这时不该选普通机型再加硬盘。 RosCloud-06 硬盘单价每 GB 0.219 美元,LAX-Storage-1TB 是每 GB 0.058 美元,差近四倍;换算成 1 TB 硬盘,前者约 223.97 美元,后者约 59.73 美元。

替代方案:直接选 Storage 系列。 LAX-Storage-1TB 是 8C 8 GB 内存、1000 GB 硬盘、15000 GB 月流量、10000 Mbps 端口,年付 700 美元,折月 58.33 美元。

场景四:你需要的是固定 IP 且访客来自境外特定地区。 商品库中有一款 sixtynet 的 Los Angeles China Unicom-Premium,年付 2500 美元、折月 208.33 美元、端口 100 Mbps,但该条目在商品库中没有填写内存、硬盘和流量参数。没有流量额度就意味着无法算清成本,端口只有 100 Mbps 也远低于其他机型的 2000 到 10000 Mbps。 如果你的业务依赖稳定的大带宽出口,这类机型不匹配。

替代方案:选标注了完整流量额度、端口速率达 10000 Mbps 的 LAX 系列机型,例如 LAX-MEDIUM 或 LAX-LARGE,参数齐全,成本可算。

场景五:你需要的是住宅 IP。 sixtynet 的 Residential 系列在价格上明显高于同配置 LAX 系列:STARTER 档 Residential 是折月 21.67 美元、每 GB 内存 10.83 美元,LAX 是折月 16.67 美元、每 GB 内存 8.33 美元;MICRO 档 Residential 是 38.33 美元、9.58 美元,LAX 是 33.33 美元、8.33 美元。差价是确定的:同等配置下 Residential 每月多付 5 到 6 美元。

替代方案:如果业务并不强制要求住宅 IP,就选 LAX 系列,把这 5 美元省下来。 只有当目标站点确实按 IP 类型做限制时,这笔差价才值得付。

场景六:你需要一个有明确超额流量计费规则的机房。 云途系列是唯一在商品库里写明了超额重置价的:HK.DS.M 是 200 美元、DS.ES.F 是 200 美元、DS.ES.C 是 500 美元、HK.DS.P 是 500 美元、HK.DS.S 是 500 美元、DS.ES.D 是 500 美元、HK.DS.B 是 500 美元、DS.ES.A 是 500 美元、DS.ES.B 是 450 美元。这种条款对流量可预测的业务是优势——你能提前算出超额成本;对流量完全不可预测的业务则需要留足缓冲。

替代方案:如果你的流量波动很大,选流量额度与业务峰值匹配的固定档位,把超额条款当作保险而不是日常。 比如按峰值 40 TB 选云途 DS.ES.C(40000 GB 额度),或者选 LAX-MEDIUM(20000 GB)配合 LAX-LARGE(40000 GB)的额度梯度。

场景七:你用的是 SAS 机械盘且要求高 I/O。 云途 HK.DS.S 的 disk_type 字段明确标注为 SAS HDD,其他多数机型标注 SSD 或 NVMe。机械盘的随机写性能与 SSD 差一个数量级,磁盘 I/O 那项验收(低于 100 MB/s 为不达标)大概率过不了。

替代方案:需要大内存又需要 SSD 时,看云途 DS.ES.D(128 GB 内存、800 GB SSD、折月 900 美元、库存 1 台)或云途 HK.DS.P(64 GB 内存、1024 GB SSD、折月 750 美元、库存 5 台)。

场景八:你只有一台闲置机器,且没有额外公网 IP。 前面说过,第二条路的硬门槛是必须能被公网访问到。

查看 ethernetservers 当前月价与库存

替代方案:先按第一条路买一台最低档的 VPS 跑起来,同时把闲置机器作为内网节点或备份机接入,两周后再决定要不要彻底转成自建。

十三、按你的情况,该买哪一档

上面把判断标准、算账、阈值、缺陷都摆完了,现在给结论。下面按四类人分,每类给到具体商家和具体档位。

第一类:个人博客、小站、纯练手,月预算 20 美元以内。 直接选 LAX-STARTER(年付 200 美元,折月 16.67 美元)。它是商品库里折月价最低的机型,2 vCPU、2 GB 内存、40 GB NVMe SSD、2000 Mbps 端口、5000 GB 月流量,每 GB 内存 8.33 美元、每 TB 流量 3.413 美元。这比 RosCloud-01 的 19.99 美元更便宜,单位成本还只有它的五分之一左右。 验收按第六节的六项跑,内存谷值低于 15%。

第二类:企业官网、小型电商,日均 5000 到 2 万 PV,需要长期稳定运行。 选 LAX-MEDIUM(年付 800 美元,折月 66.67 美元)。8 vCPU、8 GB 内存、160 GB NVMe SSD、10000 Mbps 端口、20000 GB 月流量,每 TB 流量仍是 3.413 美元。这一步的价值在于:流量额度从 5000 GB 提到 20000 GB,端口从 2000 Mbps 提到 10000 Mbps,价格只涨了 50 美元,流量额度涨了四倍。 年付前先按月付跑一个周期验证,达标再转年付。

第三类:需要大内存跑数据库或缓存,或需要大硬盘做存储。 分两种情况:需要大内存,选云途 DS.ES.B(折月 1500 美元,256 GB 内存、1920 GB SSD、2000 Mbps 端口、30000 GB 月流量),它是商品库里每 GB 内存最便宜的机型,5.86 美元;需要大硬盘,选 LAX-Storage-1TB(年付 700 美元,折月 58.33 美元,8C 8 GB 内存、1000 GB 硬盘、15000 GB 月流量、10000 Mbps 端口),每 GB 硬盘 0.058 美元,是商品库中硬盘单价最低的档位。注意云途的库存字段显示 DS.ES.B 当前为 0 台、HK.DS.P 为 5 台、DS.ES.C 为 1 台,下单前需要确认库存。

第四类:访客主要在国内,且要求首屏快。 选机房在香港、端口 2000 Mbps 的 云途 HK.DS.P(折月 750 美元,64 GB 内存、1024 GB SSD、40000 GB 月流量,库存 5 台)。为什么不是更便宜的香港档 HK.DS.M(350 美元)?因为 HK.DS.M 只有 1000 Mbps 端口、10000 GB 月流量,且库存字段为 0。 同时把 RosCloud 系列排除在外,理由见第十二节场景一。

如果你的需求超出了以上四类,还有两条通用建议。 第一,首年一律先按月付一个周期,把第六节六项验收跑完,确认达标再转年付——年付的折扣是用一年期的承诺换来的,承诺之前应该先验证。第二,付款前确认三件事:是否支持按月付、是否有退款窗口、流量超额是按重置价计费还是直接限速。这三条在商品库字段里都查不到,必须在商家页面确认。

gomami 官网机型与实时报价

最后一句话总结:自建VPS 教程的正确执行顺序是「先算账、再选系统、再做加固、再跑验收」。 顺序反了,就是先花钱再发现问题。

飞翔声明:飞翔网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

评论:0 次

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 喜欢
  • 0 高兴
  • 0 鬼脸
  • 0 呵呵
  • 0 无聊
  • 0 伤心

相关新闻

网友评论

评分
★
★
★
★
★
力荐
选择头像:
10
999+人评分
★★★★★
★★★★
★★★
★★
★
查看更多 >

魔兽世界Dota式击杀音效插件PVPSound

点击进入 立即下载

关于飞翔 | 联系我们 | 大事记 | 下载帮助(?) | 广告联系 | 版权声明 | 网站地图 | 友情链接

Copyright 2010-2025 单机游戏下载 (R) 版权所有 飞翔下载所有游戏及软件下载资源来源互联网,并由网友上传分享。如有侵权,请来电来函告之。
飞翔忠告:抵制不良色情、反动、暴力游戏 合理安排游戏时间 享受健康生活 鄂公网安备:42011102003115号 【鄂ICP备17000818号-1】