🖥️ 我有特别(抽象)的服务器配置方式

不建议任何人参考该配置。

我的第一台VPS来自Cloudcone洛杉矶机房,配置1核0.5G内存,年付9.99刀。

我的第一本服务器使用指南是Project X的小小白白话文教程。很感谢这个教程,让我第一次在命令行手动安装了Xray,并用Nginx做了Fallback,搭建了我的第一个自建节点——VLESS+XTLS。虽然它很快就被特征识别墙了,还花了我5刀换IP。

折腾简史

说起来我接触电脑挺早的。小学三年级左右,我最常买的商品是Windows XP盗版Ghost系统安装光盘,每次买了不久就刮花了,导致Ghost写硬盘失败。那时候玩电脑纯离线,没事就翻C盘所有可执行文件挨个点开看能不能运行。

软件靠拿着我的Android 2.1摩托罗拉,骑小自行车到商店街门口偷WiFi,去西西软件园下东西。在那个3G标速大概300KB/s的年代,我偷了店家整整2GB的软件包(不包含镜像)。那时候下了不少PE工具,还有GRUB4DOS和EasyBoot这种能自己画启动界面的引导程序,后来还折腾过能隐藏启动分区的FbinstTool。2014年之后就跑去混无忧启动论坛了。

我的第一台笔记本是联想SL400,运行最新的Windows Vista系统。那时候的Vista真的很先进很好看,Aero毛玻璃效果放现在也不过时。后来Windows 8.1刚出预览版,又偷邻居家WiFi下了安装镜像,激活密钥到今天还能背出来。

虽然我从2016年左右就开始用Linux,第一个发行版是Ubuntu Desktop 16.04,之后用过18.04、CDLinux、Beini、Kali Linux(那时候还叫BackTrack)等等,但直到2021年大二上学期才正式接触Linux服务器。因为之前也经常用终端,上手起来不算太难。之后又体验了Debian系、RHEL系、OpenSUSE、Arch Linux、Alpine Linux、OpenWRT、FreeBSD、Hackintosh、Chrome OS系、Solaris,把大学的大部分时间都浪费在这些系统上了。

我很庆幸第一个服务器系统是简约的Debian而不是CentOS 7。RHEL系确实臃肿,后来在体验RHEL时,1GB内存的VPS运行dnf直接OOM。接触Arch Linux后,完善的Wiki文档和KISS思想让我很舒服,从自己折腾Xorg/Wayland加各种桌面环境和窗口管理器,到后面直接Gnome养老,命令行能力也大幅提升了。

选购VPS

玩机到今天,我只会再买日本线路VPS和家宽落地。VPS最好是4809、9929、58807这种线路,最差也要4134、4837、58453,落地一定要私家车。体验过一次极品线路和落地后就再也回不去了,IIJ软银这些都入不了眼。其他香港新加坡的鸡都是抽奖,不稳定。

配置无所谓,1C0.5G也能流畅运行,也不需要跑Docker容器。

系统安装流程

初始化

无论商家给什么系统,到手第一件事先DD重装。用grub-imageboot引导Debian netboot全新安装,商家预装的系统一般带cloud-init这些东西,已经不需要了。

apt install grub-imageboot wget
mkdir -p /boot/images
cd /boot/images
wget https://deb.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/mini.iso
update-grub2
reboot

安装Debian

重启后进入安装界面,选择Expert Install模式,因为该模式不强制创建非root账户。

基础设置:

软件配置:

首次开机

第一次开机后,内核可能会改网卡名称,需要注意修改网络配置。

# 修改SSH配置

# 修改Grub配置 /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 nomodeset"
GRUB_TERMINAL=console

# dpkg-reconfigure console-setup
# /etc/default/console-setup
ACTIVE_CONSOLES="/dev/tty[1-2]"

# 关闭所有日志,需要时直接执行ExecStart命令排错
# /etc/systemd/journald.conf
Storage=none

# 如果需要安装Liquorix内核,在这里装
curl -s 'https://liquorix.net/install-liquorix.sh' | bash

# 不安装内核,需要配置bbr
echo "net.core.default_qdisc=fq" >> /etc/sysctl.d/99-custom.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/99-custom.conf

update-grub2
reboot

服务部署方案

如果装了第三方内核,第一次重启后网卡名称可能又会变,注意检查。之后所有操作都通过SSH进行。

Caddy

现在我要强烈推荐使用Caddy作为Web服务器。只需要在配置文件里写域名,就能自动完成证书申请的所有工作,直接HTTPS上线。而且单个Caddy配置就能实现NaiveProxy加反向代理加静态文件服务器加WebDAV的所有功能。NaiveProxy已经原生支持SOCKS upstream了,如果需要从落地转发,用Tailscale、sing-box或FRP,如果端口只能绑定在0.0.0.0,使用ufw防火墙。

Writefreely

本站用Writefreely作为博客CMS,它是Go写的,可以用SQLite做数据库,界面简约,支持自定义CSS,不需要JavaScript,所有页面渲染都用模板,可以自己改。

落地中转

所有分流都在落地机实现。geosite:google的流量分给Cloudflare WARP Teams,用warp-cli跑,这样能避免被送中,因为落地机可以不在东京。

其他说明


以上就是我这些年摸索出来的一套配置流程。虽然看起来挺折腾,但习惯了之后每次配新服务器基本就是走流程,反而比用各种一键脚本更可控。毕竟自己配的每个环节都清楚是干什么的,出问题也好排查。