用免费节点的人迟早会遇到同一堵墙:晚高峰全红、换节点换到麻木。这时候「自建」就是最自然的下一步——一台基础 VPS 月成本不到一杯咖啡,换来独享带宽和不经他人之手的出口。这篇把从买机器到加固的完整流程走一遍。
为什么自建
- 独享性:流量只过你一个人,没有「邻人太多被连坐封 IP」的问题;
- 可控性:用什么协议、开什么端口、日志留不留,全由你决定;
- 安全性:出口链路透明,不像免费节点需要担心被嗅探或中间人;
- 顺手能做的事:自建节点天然就是一台能跑 Docker 的服务器——博客、网盘、图床、定时任务都能搭在上面,一机多用摊薄成本。
VPS 选购:先看线路,再看价格
| 线路类型 | 晚高峰表现 | 月付参考 | 适合 |
|---|---|---|---|
| 国际普通线路(美西/欧洲常规机房) | 波动大,取决于出口路由 | $2–5 | 预算优先、轻度使用 |
| 优化线路(CN2 GT / 直连 BGP) | 较稳,晚高峰可用 | $5–15 | 主力节点 |
| 高端线路(CN2 GIA) | 稳,几乎不堵 | $15–50+ | 要求高的重度用户 |
| 周边地区(日/韩/新/港) | 延迟低(30–80ms) | $4–20 | 游戏/实时应用 |
选购检查清单:
- IP 干净度:下单前问了也白问,开出来第一件事是测 IP 是否已被墙(用 ping.pe 类工具从国内多个节点测);开箱即墙的直接发工单换 IP;
- 流量政策:注意「按流量计费」的机器($0.01/GB 级别),跑几天视频可能比月租还贵;
- 付款方式:支持支付宝/加密货币的商家对国内用户更省事;
- KVM 虚拟化:别买 OpenVZ,BBR、TUN 这类功能会受限;
- 试用退款:优先选支持 3–7 天退款或按小时计费的商家,先测再续费。
开机第一步:系统初始化
# 推荐系统:Debian 12(干净、资料多)
# 1) 更新系统、装常用工具
apt update && apt upgrade -y
apt install -y curl wget nano ufw fail2ban
# 2) 开启 BBR(拥塞控制算法,跨境线路提升明显)
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
# 验证:返回 bbr 即成功
sysctl net.ipv4.tcp_congestion_control
# 3) 开启 TCP Fast Open、时区校正(时间不对会导致很多协议连不上)
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true
方案 A:sing-box + Reality(推荐)
Reality 不需要域名和证书,借用真实大站的 TLS 指纹,是当前最省事的最优解。部署有两种主流方式:
- 一键脚本:社区维护的 sing-box 一键安装脚本(装内核 + 生成配置 + 输出分享链接一条龙),5 分钟能跑通;选择时认准 GitHub 上 star 高、更新频繁的项目;
- 官方二进制 + 手写配置:更透明可控,适合想理解每一步的人。
# 思路示意(具体参数由脚本/配置生成器产出):
# 1) 安装 sing-box(官方脚本)
curl -fsSL https://sing-box.app/install.sh | sh
# 2) 生成 Reality 密钥对(输出私钥/公钥/shortId)
sing-box generate reality-keypair
sing-box generate rand --hex 8
# 3) 配置关键项(/etc/sing-box/config.json 概念结构):
# inbound: vless + reality
# handshake.server: www.microsoft.com ← 借用的大站(要 TLS1.3 + h2)
# private_key: 上一步生成的私钥
# short_id: 随机值
# 4) 启动与开机自启
systemctl enable --now sing-box
systemctl status sing-box
服务端配置完成后,客户端用「公钥 + shortId + SNI(借用站点域名)+ 端口」即可生成 vless:// 分享链接导入(详见本站《客户端选择指南》)。
方案 B:Hysteria2(弱网加成)
# 一句话逻辑:自签证书 + 强拥塞控制,跑在 UDP 上
# 1) 生成自签证书
openssl req -x509 -nodes -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
-keyout key.pem -out cert.pem -subj "/CN=bing.com" -days 36500
# 2) 配置核心项:
# listen: :8443(UDP)
# tls: 用上面的自签证书
# password: 自定义强密码
# masquerade: 伪装成一个静态网站(开个本地 HTTP 站指上去)
# bandwidth: up/down 按 VPS 实际带宽的 80% 填,Brutal 系拥塞控制需要
# 3) 客户端导入 hysteria2:// 链接即可(iOS 小火箭/安卓 NekoBox 都支持)
实战建议:Reality 跑 TCP 443 当主力,Hysteria2 跑 UDP 备用——移动网络差的时候切过去,体验经常判若两机。
安全加固清单(必做)
- SSH 密钥登录:本地生成密钥对(
ssh-keygen -t ed25519),公钥传到服务器后关闭密码登录(/etc/ssh/sshd_config里PasswordAuthentication no)——这一步能挡掉 99% 的暴力破解; - 改 SSH 端口 + fail2ban:把 22 改到非标准端口,fail2ban 自动封禁试探 IP;
- 防火墙最小化放行:只开 SSH 端口、443(Reality)、8443/UDP(Hysteria2),其余全关;
- 定期更新:
apt upgrade每周一次,内核漏洞是服务器被入侵的头号入口; - 不要装来路不明的脚本:一键脚本只从原作者 GitHub 仓库下载,跑之前花 30 秒扫一眼脚本在做什么(下载了什么、写了哪些文件);
- 关闭不用的服务:
ss -tlnp看一眼所有监听端口,不认识的服务查清来源。
# 防火墙示意(先放行 SSH 新端口,再启用,避免把自己关在门外)
ufw allow 22022/tcp
ufw allow 443/tcp
ufw allow 8443/udp
ufw enable
ufw status verbose
# fail2ban 保护 SSH
systemctl enable --now fail2ban
维护与避坑
- 别公开分享:把节点发进公开群,流量几天跑干、IP 被封是常态;一机自用最稳;
- 监控流量:商家面板看月度流量消耗节奏,设置用量告警,避免超额扣费;
- 备份配置:
/etc/sing-box/和证书定期打包带走,换机器 10 分钟恢复; - IP 被墙怎么办:先换端口试试(有时只是端口被 QoS);不行就发工单换 IP 或换机房,所以选支持换 IP 的商家很重要。
连不上时的排查顺序
- 服务器上
systemctl status sing-box—— 服务活着吗; ping.pe从国内多点测试 IP:443 通不通 —— 通 = IP 没被墙;- 客户端日志看握手到哪一步失败 —— Reality 参数(公钥/shortId/SNI)是否抄错;
- 服务器时间是否同步 ——
date与真实时间偏差过大,很多协议直接失败; - 防火墙是否放行了对应协议/端口 —— 特别是 UDP(Hysteria2 常见)。
自建的本质是「把网络出口掌握在自己手里」。请遵守所在地法律法规,仅用于合法合规的网络访问与研究用途。
总结
完整路径回顾:选 VPS(看线路和 IP)→ 初始化(BBR + 时间同步)→ Reality 主力 + Hysteria2 备用 → 安全加固(密钥登录 + 防火墙 + fail2ban)→ 定期维护。全程一小时以内。下一篇文章换个主题——聊聊免费 AI 资源怎么薅得专业。