Fadey's Blog

arrow_back 返回首页
自建节点封面

自建节点入门:VPS 选购、Reality 部署与安全加固

用免费节点的人迟早会遇到同一堵墙:晚高峰全红、换节点换到麻木。这时候「自建」就是最自然的下一步——一台基础 VPS 月成本不到一杯咖啡,换来独享带宽和不经他人之手的出口。这篇把从买机器到加固的完整流程走一遍。

为什么自建

  • 独享性:流量只过你一个人,没有「邻人太多被连坐封 IP」的问题;
  • 可控性:用什么协议、开什么端口、日志留不留,全由你决定;
  • 安全性:出口链路透明,不像免费节点需要担心被嗅探或中间人;
  • 顺手能做的事:自建节点天然就是一台能跑 Docker 的服务器——博客、网盘、图床、定时任务都能搭在上面,一机多用摊薄成本。

VPS 选购:先看线路,再看价格

线路类型晚高峰表现月付参考适合
国际普通线路(美西/欧洲常规机房)波动大,取决于出口路由$2–5预算优先、轻度使用
优化线路(CN2 GT / 直连 BGP)较稳,晚高峰可用$5–15主力节点
高端线路(CN2 GIA)稳,几乎不堵$15–50+要求高的重度用户
周边地区(日/韩/新/港)延迟低(30–80ms)$4–20游戏/实时应用

选购检查清单:

  1. IP 干净度:下单前问了也白问,开出来第一件事是测 IP 是否已被墙(用 ping.pe 类工具从国内多个节点测);开箱即墙的直接发工单换 IP;
  2. 流量政策:注意「按流量计费」的机器($0.01/GB 级别),跑几天视频可能比月租还贵;
  3. 付款方式:支持支付宝/加密货币的商家对国内用户更省事;
  4. KVM 虚拟化:别买 OpenVZ,BBR、TUN 这类功能会受限;
  5. 试用退款:优先选支持 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 备用——移动网络差的时候切过去,体验经常判若两机。

安全加固清单(必做)

  1. SSH 密钥登录:本地生成密钥对(ssh-keygen -t ed25519),公钥传到服务器后关闭密码登录(/etc/ssh/sshd_config 里 PasswordAuthentication no)——这一步能挡掉 99% 的暴力破解;
  2. 改 SSH 端口 + fail2ban:把 22 改到非标准端口,fail2ban 自动封禁试探 IP;
  3. 防火墙最小化放行:只开 SSH 端口、443(Reality)、8443/UDP(Hysteria2),其余全关;
  4. 定期更新:apt upgrade 每周一次,内核漏洞是服务器被入侵的头号入口;
  5. 不要装来路不明的脚本:一键脚本只从原作者 GitHub 仓库下载,跑之前花 30 秒扫一眼脚本在做什么(下载了什么、写了哪些文件);
  6. 关闭不用的服务: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 的商家很重要。

连不上时的排查顺序

  1. 服务器上 systemctl status sing-box —— 服务活着吗;
  2. ping.pe 从国内多点测试 IP:443 通不通 —— 通 = IP 没被墙;
  3. 客户端日志看握手到哪一步失败 —— Reality 参数(公钥/shortId/SNI)是否抄错;
  4. 服务器时间是否同步 —— date 与真实时间偏差过大,很多协议直接失败;
  5. 防火墙是否放行了对应协议/端口 —— 特别是 UDP(Hysteria2 常见)。
自建的本质是「把网络出口掌握在自己手里」。请遵守所在地法律法规,仅用于合法合规的网络访问与研究用途。

总结

完整路径回顾:选 VPS(看线路和 IP)→ 初始化(BBR + 时间同步)→ Reality 主力 + Hysteria2 备用 → 安全加固(密钥登录 + 防火墙 + fail2ban)→ 定期维护。全程一小时以内。下一篇文章换个主题——聊聊免费 AI 资源怎么薅得专业。