1.
准备与选型——如何挑选日本VPS
- 目标定位:网站类型(静态页面/动态PHP/Node.js/游戏)与并发量估算。
- 带宽需求:轻量博客 100Mbps 起步,流量密集应用建议 500Mbps–1Gbps。
- 延迟考虑:选东京或大阪节点,国内访问延迟通常 100–200ms(视运营商而定)。
- 运营商对比:常见供应商有 Vultr(Tokyo)、Linode(Tokyo)、ConoHa、Sakura(日本),价格和 SLA 不同。
- 实际建议:新手首选 1 vCPU/2GB/50GB SSD/1TB 流量的入门方案,价格通常 5–10 美元/月。
- 备选方案:若需抗DDoS基础,选择带基础防护或支持 BGP/流量清洗的机房。
2.
购买与初始信息记录
- 注册与实名认证:准备身份证明、支付方式(信用卡/PayPal)。
- 选择镜像:推荐 Ubuntu 22.04 LTS 或 Debian 12。
- SSH 密钥:在本地生成 ssh-keygen 并上传到控制面板,提高安全性。
- 记录信息:保留 IP、IPv6(若有)、控制面板登录地址、初始密码等。
- 快照与计费:启用自动快照或手动创建首次快照以便回滚。
- 示例计划对比(示例数据):
| 方案 |
vCPU |
内存 |
SSD |
带宽 |
价格/月 |
| 入门 |
1 |
2GB |
50GB |
100Mbps |
$6 |
| 中级 |
2 |
4GB |
80GB |
1Gbps |
$20 |
3.
系统与网络基础设置(命令与示例)
- 首次登录:使用 ssh -i ~/.ssh/id_rsa root@your.ip.address,替换为实际 IP。
- 更新系统:sudo apt update && sudo apt upgrade -y(示例:升级完成后内核版本 5.x)。
- 时区与本地化:sudo timedatectl set-timezone Asia/Tokyo。
- 建议创建普通用户:adduser deploy && usermod -aG sudo deploy。
- SSH 安全:编辑 /etc/ssh/sshd_config,禁用 PermitRootLogin、启用 PubkeyAuthentication、更改 Port=22022。
- 防火墙示例(UFW):ufw allow 22022/tcp; ufw allow 80,443/tcp; ufw enable。
4.
Web 环境搭建:Nginx + PHP-FPM + MariaDB
- 安装示例:sudo apt install nginx php-fpm mariadb-server -y(Ubuntu 22.04)。
- PHP 版本:常见使用 PHP 8.1,php -v 显示 PHP 8.1.x。
- Nginx 配置要点:server_name yourdomain.com; root /var/www/html; 配置 SSL 证书自动化(certbot)。
- 数据库初始化:sudo mysql_secure_installation,创建数据库与用户:CREATE DATABASE blog; CREATE USER 'bloguser'@'localhost' IDENTIFIED BY 'StrongP@ss'; GRANT ALL ON blog.* TO 'bloguser'@'localhost';。
- 性能参数示例:对于 2 vCPU/4GB,建议 php-fpm pm = dynamic, pm.max_children = 30,nginx worker_processes = auto。
- 监控建议:部署 netdata 或 Prometheus+Grafana,采集 CPU、内存、磁盘、响应时间。
5.
域名、DNS 与 CDN 配置(提升速度与抗攻击)
- 域名解析:在域名商后台添加 A 记录指向 VPS 公网 IP(示例:@ -> 203.0.113.12)。
- 使用 Cloudflare:启用代理(橙云)可隐藏真实 IP 并利用 CDN 缓存静态资源。
- CNAME 策略:www 使用 CNAME 指向主域名,减少解析错误。
- TTL 设置:开发阶段设置低 TTL(300s),稳定后可改为 3600s 或更高。
- CDN 缓存策略:静态资源 Cache-Control: public, max-age=31536000,配合版本号打包。
- HTTPS:使用 Let's Encrypt 自动续签,certbot renew --dry-run 测试。
6.
DDoS 防御与安全加固实操
- 边界防护:优先使用 Cloudflare 或专业清洗服务,免费层能缓解常见攻击。
- Nginx 限速:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; 在 location 中使用 limit_req zone=one burst=20 nodelay。
- Fail2ban 示例:监控 ssh 登录失败,默认 ban 时间 600s,可调整为 3600s。
- iptables 基础:限制 SYN 洪水,示例:iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT。
- 监测阈值:若流量 > 200Mbps 突增,应触发联络 CDN/机房清洗;若带宽用满(1Gbps),需要立即切换到流量清洗服务。
- 日志与告警:集中日志到 ELK 或 Loki,设定 5 分钟内 500 错误 >100 次触发告警。
7.
真实案例:博客迁移到日本节点的效果与配置数据
- 背景:某中文技术博客从国内 VPS 迁移到 Vultr Tokyo,目标是稳定海外访问与降低被攻击风险。
- 迁移前配置:1 vCPU/1GB/25GB, 100Mbps,经常在高峰时段出现 502/504。
- 迁移后配置:2 vCPU/4GB/80GB SSD/1Gbps,使用 Cloudflare 免费层 + 缓存规则。
- 结果数据:迁移后 TTFB 从 450ms 降到 120ms,最大并发 200 时 CPU 平均 40%,内存使用 60%,峰值带宽 180Mbps。
- 运维策略:每日全备份、每周快照、遇到流量异常立即启用 Cloudflare Under Attack 模式。
- 建议总结:小型站点优先 1–2 vCPU,启动 CDN 与基本防护;流量或攻击增长时按需横向扩展或购买清洗服务。