一台 VPS 多协议入站:sing-box + VLESS Reality / Hysteria2 实战
2026-08-15 · DevCraft Studio
在干净的 Ubuntu/Debian VPS 上一键装 sing-box,配置 VLESS+Reality(免域名伪装)和 Hysteria2,顺手开 BBR、配防火墙、出客户端订阅。
延伸阅读
更多相关攻略推荐:【VPS 硬件选型指南 (CPU 篇) 04】AMD EPYC 还是、【发行版选型 07】Arch Linux 深度科普:滚动发布、pac、【VPS 进阶玩法精选 014】ARM 架构 VPS 值不值得上?A、【对象存储 01】对象存储怎么选:Backblaze B2 vs C、【TCP优化 01】美国 VPS 跑不快?多半是没开 BBR,一个命。
一、为什么选 sing-box:一台 VPS 同时跑多个协议
如果你只想在一台便宜的国外 VPS 上自建一个能稳定跨国网络访问的节点,现在最省心的方式,就是直接用 sing-box。它不是一个单一协议工具,而是一个「通用代理平台」:同一个二进制文件,同一个配置文件,就能同时把 VLESS、Reality、Hysteria2、Trojan、Shadowsocks 等多种入站协议开起来。换句话说,你花一份机器钱,能在 443、8443、2102 等不同端口上同时挂着好几套协议,手机用一套、电脑用一套、家里路由器再吃一套,互不打架。
为什么到了 2026 年还要自己搭?代理服务订阅固然方便,但一旦遇到跑路、被封锁、限流就抓瞎;自己买一台月付三四十块、年付一两百的入门 VPS,用 sing-box 搭一个私有节点,连接信息只有你自己知道,被主动探测的概率比公共代理服务低得多。而且 sing-box 的 VLESS + Reality 方案天生「免域名、免证书」,不像传统 Trojan 那样还得去申请一张 HTTPS 证书,对新手极其友好。
本文的目标很明确:给你一台干净的 Ubuntu 22.04 / Debian 12 系统,从零到一跑通 VLESS + Reality 和 Hysteria2 两套入站,顺手把内核 BBR、防火墙、客户端订阅全部配齐。全程用脚本加一份手写配置文件搞定,你照着抄命令就行。
二、动手前先备好三样东西
别急着敲命令,先把地基打牢,后面能少踩一半坑。
- 一台干净的 VPS:推荐 Debian 12 或 Ubuntu 22.04/24.04。1 核 512M 内存就能跑 sing-box(实测常驻内存不到 30M),但如果你还要顺手挂个博客或者中转,建议至少 1 核 1G。内核版本要在 4.9 以上才能开 BBR,现在主流商家的新系统默认都满足。
- 一个会放行端口的商家后台:有些 VPS 在面板里还有一层「防火墙」或「安全组」,光在系统里放行不够,得去后台把对应端口也打开,否则外面死活连不进来。
- SSH 登录权限和 root:本文命令基本都要 root 执行。如果你是用普通用户登录的,记得每条命令前加 sudo,或者先 sudo -i 切到 root。
关于选哪家商家:本篇不绑定具体厂商,只要是支持 IPv4、能正常 SSH、网络不被封锁死的入门机都行。年付一两百人民币的价位,足以跑通本文全部内容。记住一条铁律——节点机只装代理,别和你的生产业务混在同一台,一旦 IP 被封锁,业务也跟着遭殃。
三、一键安装 sing-box + 自动开启 BBR
sing-box 官方提供了一键安装脚本,会自动判断架构(x86 还是 ARM)、下载最新稳定版、写好 systemd 服务并设成开机自启。执行下面这行即可(2026 年 8 月官方稳定版已到 v1.13.x,脚本会自己拉取最新):
curl -fsSL https://sing-box.app/install.sh | sh
systemctl enable sing-box装完顺手确认版本,能打印出版本号就说明二进制到位了:
sing-box version接着开 BBR。BBR 是 Google 的 TCP 拥塞控制算法,能把丢包网络下的带宽利用率拉高一大截,是跨国网络访问机的标配。现代内核大多已编译进去,只需要两行 sysctl 打开它:
cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
sysctl -p验证是否生效,下面这条命令有 bbr 字样就对了:
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr嫌逐条敲麻烦,也可以直接用社区的一键脚本(比如第三方 sing-box-install 项目),它会在安装 sing-box 的同时自动开启 BBR、配置防火墙、生成 VLESS Reality(TCP 8443)和 Hysteria2(UDP 2102)两套入站并打印客户端参数。但对于想真正搞懂配置的人,手写一份 config.json 更踏实,下文就带你手搓。
四、配置 VLESS + Reality 入站(免域名、免证书)
VLESS + Reality 是近几年最火的跨国网络访问方案,核心卖点就三个字:免证书。它不需要你买域名、不需要申请 Let's Encrypt,而是「借用」一个真实大站的 TLS 握手来伪装自己。客户端连你的时候,表面上看像是在访问微软或者苹果的官网,实际流量被偷偷塞进了 Reality 隧道。防火墙看到的是一次正常的浏览器访问,自然不会拦。
动手前,先用 sing-box 自带的工具生成 Reality 的密钥对和一个 short_id:
sing-box generate reality-keypair
sing-box generate rand 8 --hex
sing-box generate uuid第一条会给你一对私钥(Private key)和公钥(Public key),第二条给一个 16 位十六进制 short_id,第三条给一个 UUID 当账号。记下这三个值,下面配置文件里要用。
然后编辑配置文件。注意 handshake 里填的伪装目标站(如 www.microsoft.com)必须支持 TLS 1.3、H2、X25519,大厂官网基本都满足。把下面示例中标注「替换」的地方换成你刚生成的值:
{
"log": { "level": "info", "timestamp": true },
"dns": {
"servers": [ { "type": "udp", "server": "8.8.8.8" } ]
},
"inbounds": [
{
"type": "vless",
"listen": "::",
"listen_port": 443,
"users": [
{ "uuid": "替换为你的UUID", "flow": "xtls-rprx-vision" }
],
"tls": {
"enabled": true,
"server_name": "www.microsoft.com",
"reality": {
"enabled": true,
"handshake": { "server": "www.microsoft.com", "server_port": 443 },
"private_key": "替换为你的Reality私钥",
"short_id": [ "替换为你的short_id" ]
}
}
}
],
"outbounds": [ { "type": "direct", "tag": "direct" } ],
"route": {}
}这里 listen_port 用的 443 是 HTTPS 标准端口,最不容易被运营商针对。flow 必须填 xtls-rprx-vision,这是 Reality 能生效的关键。server_name 一般填你伪装的那个站域名即可,不要求你真有这个域名。
五、配置 Hysteria2 入站(UDP 高速、抗丢包)
Hysteria2 走的是 UDP + QUIC,主打一个「在烂网里也能跑满速」。它特别适合这三种场景:你本地到 VPS 之间丢包严重、你在用手机 4G/5G 等不稳定网络、或者你需要大带宽下载。和 VLESS Reality 的 TCP 不同,Hysteria2 更偏向「用带宽换速度」,通过超发(overshoot)机制把链路吃满。
在刚才那份配置的 inbounds 数组里,再追加一段 hysteria2。它同样可以「免域名」——只要不填证书路径,sing-box 会自动生成一张自签名证书;代价是客户端需要把 tls.insecure 设为 true 来跳过校验。如果你想更正规,也可以挂一张真实证书,但入门阶段先用自签最省事:
{
"type": "hysteria2",
"listen": "::",
"listen_port": 8443,
"users": [ { "password": "替换为一个强密码" } ],
"masquerade": "https://bing.com",
"tls": { "enabled": true }
}listen_port 用 8443 是为了和上面的 443 错开;你完全可以改成 443 以外的任意高位端口。password 自己设一个长字符串。masquerade 是当有人直接用浏览器访问这个端口时,返回一个正常网页(这里是 bing),避免被一眼看穿是个代理端口。把这段粘进 inbounds 数组,和 vless 那段用逗号隔开即可。
到这里,一份「VLESS Reality(443)+ Hysteria2(8443)」双协议配置就成型了。同一个 sing-box 进程,两个入站同时监听,互不影响。
六、防火墙放行与端口规划
配置写完,端口没放行等于白搭。先看看系统里用的是哪种防火墙。Debian/Ubuntu 新装一般默认是 nftables 或 iptables,没装 UFW 的话先装一个更省心:
apt install ufw -y
ufw allow 22/tcp
ufw allow 443/tcp
ufw allow 8443/udp
ufw allow 8443/tcp
ufw enable注意 Hysteria2 是 UDP,但很多商家面板还得单独在「安全组」里放 UDP;还有 443 的 TCP 要放,22 的 SSH 一定要放,否则一开 UFW 把自己挡在门外就尴尬了。放行后确认监听状态:
ss -lntup | grep -E '443|8443'如果看到 sing-box 进程已经绑在这两个端口上,说明配置被正确加载、端口也通了。别忘了前面说的「商家后台安全组」——如果 ss 显示监听了但客户端连不上,八成是面板那层没开,回去补一刀放行。
七、启动服务与日常运维命令
全部就绪,加载配置并启动:
systemctl restart sing-box
systemctl status sing-box看到 active (running) 就成功了。常用运维命令记一下,省得以后现查:
- 看实时日志:journalctl -u sing-box -f
- 改完配置重载:systemctl restart sing-box(sing-box 不支持纯 reload,改配置必须 restart)
- 开机自启状态:systemctl is-enabled sing-box
- 彻底卸载:停服务后删 /etc/sing-box 目录和 /usr/local/bin/sing-box 二进制即可
一个常见坑:如果你的 VPS 时间不准,Hysteria2 会报 bad timestamp 直接拒绝连接。国内机器还好,海外机器偶尔会飘。装个 chrony 或 ntp 同步一下时钟就能解决。
八、客户端订阅与扫码导入(手机/电脑)
服务端搞定,接下来是客户端。sing-box 的好处是「一个核心,全平台通吃」,但注意:sing-box 客户端只认 sing-box 自己的配置/订阅格式,不能直接吃 Clash 或 v2ray 的订阅。如果你是从代理服务拿的订阅,得先转成 sing-box 格式。
各端推荐客户端:
- Windows:v2rayN、Clash Verge、NekoRay
- macOS:ClashX Pro、V2rayU、NekoBox
- iOS:Shadowrocket(小火箭)、Quantumult X、Stash
- Android:v2rayNG、Clash for Android、NekoBox
VLESS Reality 的客户端配置核心字段:address 填你 VPS 的 IP,port 443,uuid 用服务端生成的那个,flow 填 xtls-rprx-vision,security 填 reality,server_name 填你伪装的域名(如 www.microsoft.com),以及把服务端的 public_key 和 short_id 填进去。Hysteria2 则填 password、端口、tls 里 insecure 设为 true(因为咱们用的是自签证书)。
想偷懒就直接生成分享链接或二维码。很多一键脚本会在装完打印 sing-box:// 开头的分享链接,手机端客户端支持直接扫码或粘贴导入。你也可以本地用相关工具把 config.json 转成订阅链接分发。无论哪种方式,订阅链接等同于你的账号密码,千万别发到公开场合。
九、性能调优:BBR、缓冲区与路由分流
能连上只是及格,跑得爽才是目标。除了前面开的 BBR,再给你几招实用调优。
- UDP 缓冲区调大:Hysteria2 吃 UDP,把 UDP 接收缓冲区上限抬高能明显提升吞吐。在 /etc/sysctl.conf 里加 net.core.rmem_max 和 wmem_max 到 2.5M 以上。
- 开启 TCP Fast Open:net.ipv4.tcp_fastopen=3,减少握手往返,对高延迟链路帮助明显。
- 路由分流:sing-box 的 route 字段可以按域名、地理库、端口做规则。比如国内域名直连、广告域名 reject、其余走代理。进阶玩家把 geosite/geoip 规则集挂上,体验直接拉满。
- 中转架构:如果你买的落地机线路好但直连不稳,可以再加一台便宜中转机,架构变成「客户端 → 中转 VPS → 落地 VPS → 互联网」,把不稳定的那段藏在中间。社区一键脚本已经内置了这个模式。
调完 sysctl 记得 sysctl -p 使其生效,再 restart 一下 sing-box。用测速工具或实际下载对比前后,通常 BBR 加缓冲优化后能多出 20% 到一倍的速度。