这篇文章只是记录,不是教程向,虽然有贴出小白可用的命令。
之前我的网站和服务都是部署在日本的VPS上的,但是由于服务商IIJ到软银的线路变动,现在三网都很卡。 忍受不了一个200多KB的静态背景图要加载超过一分钟的我,选择了更换VPS。🚚
原VPS:ACCK JPIIJ-One 周年庆 (现在实为软银线) 参数:广播ip、500Mbps+500M+10G、Cloudinnovation、大陆SoftBank直连、国内带宽实测最高100Mbps、99.99年付
新VPS:云悠 HK-Kawloon TCVM-Mini NodeQuality 参数:原生ip、100Mbps+512M+30G、Cloudie、去程CN2+4837+CMI,回程4837+CMI、15.99月付(有手续费)
因为之前那个vps不是被拿去挖矿了嘛,我担心有后门残留,面板废资源的同时不能满足我某个必须使用caddy的需求,所以这次我根据已有经验,借助AI从0开始手配环境。🔧
我部署的服务为 Caddy+PHP-FPM+Komari,以及一些例如frp、git的小东西,是一套很轻量的方案; 推荐使用的SSH软件为FinalShell,与个人使用Windows的习惯非常贴合。💻
👤 用户配置
- web -> web服务 (caddy & php-fpm)
- komari -> komari面板
- frp -> frp
- …
📁 目录配置
本人有强迫症,所以这么配:
/├── ...├── server(root)│ ├── bin(root 755)│ │ ├── caddy(web:web 755)│ │ ├── komari(komari:komari 755)│ │ ├── frp(frp:frp 755)│ │ └── ...│ ├── logs(root 700) #systemctl日志全记录│ ├── web-conf(web:web 500) #这里也可以root:web 750│ └── ...├── www(web 755)│ └── ...└── swapfile(root 600)只展示大概配置,不展示SSL证书位置等敏感信息,免得又有黑客通过php搞我。。。🔒
⚙️ 系统配置
本人偏好Ubuntu,以下命令均支持直接在ssh命令行中输入。
更改默认主机名
sudo hostnamectl set-hostname NEW-HOST-NAME
💾 配置虚拟内存(/swapfile可替换)
free -m #查看 Linux 当前分区情况swapoff -a #如果是增加 swap 分区,则先把当前所有分区都关闭了,没有swap分区不用这一步dd if=/dev/zero of=/swapfile bs=1M count=2560 #创建要作为 Swap 分区的文件mkswap /swapfile #建立 Swap 的文件系统chmod 600 /swapfile #设置权限swapon /swapfile #启用 Swap 分区free -m #查看 Linux 当前分区echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab #永久化,重启不掉🚀 开启 BBR
sudo sh -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'sudo sh -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'sudo sysctl -p📦 软件配置
🟢 Caddy
为了避免被诸如crt.sh的网站通过证书的方式扫二级域名,我决定使用泛域名证书,所以我需要安装cloudflare-dns插件,使用的方式为编译安装。此处不做详解。
快捷安装指令:
sudo apt update && sudo apt install caddy
Caddyfile参考配置:
{ admin off email abc@example.com http_port 80 #其实建议把这行删了禁用http https_port 443}*.example.com { header / Strict-Transport-Security "max-age=63072000" encode gzip tls { dns cloudflare {env.CF_API_TOKEN} #这个api建议配在环境变量 protocols tls1.2 tls1.3 ciphers TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 }}example.com { header / Strict-Transport-Security "max-age=63072000" encode gzip tls { dns cloudflare {env.CF_API_TOKEN} #这个api建议配在环境变量 protocols tls1.2 tls1.3 ciphers TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 } redir https://www.example.com #重定向}www.example.com { #上面的证书配置会自动应用 root * /path encode gzip zstd file_server}#导入配置;后缀随意;支持通配符;注意权限#import /path/*.conf🐘 PHP-FPM
为了目录配置的一致性,借助AI完成了编译安装,此处不做讲解。
快捷安装指令(以8.1版本为例):
sudo apt update && sudo apt install php8.1-fpm
📊 Komari & Agent
使用wget下载二进制文件安装,需要配置权限。
🔀 frp
使用wget下载二进制文件安装,需要配置权限。
测试了网站访问,流畅度不错;流式传输也非常不错。✨ 由于cloudie的原因无法进行tcp测速,提供全国延迟图片。

到这里主力的机器就变成了这台HK线路机了,不过原来那台vps我打算留着继续用。 一来是这个vps上还有挂着cf的服务,如果使用我珍藏的反代ip来访问的话速度优异;⚡ 二来这台机器的性能、到HK的互联都不错,以后有需要mysql的话可以挂在这台机器上;🗄️ 再说挂在komari上拿来展示也挺不错。📊
文章为本人撰写;让gpt帮我加了emoji;封面为gpt生成。