🚀 Debian VPS 搭建 VLESS + REALITY 全流程:3X-UI、BBR 与 UFW
这是一份面向 Debian 纯净系统的完整教程,不混用 Ubuntu、CentOS 或 Alpine 命令。请严格按照本文顺序操作:先确认 SSH 可以登录,再开启防火墙;安装面板并取得实际端口后,才放行面板端口;创建 Reality 入站后,才放行节点端口。
REALITY 不要求你购买域名,也不需要为节点单独申请 TLS 证书。它会利用目标 HTTPS 站点的握手特征和证书外观进行伪装,但并不是把目标网站的证书复制或安装到你的 VPS。
本文默认使用
root用户,因此命令中不添加sudo。
🛠️ 一、选择 VPS 与厂商推荐
在开始搭建前,需要准备一台具有公网可达 IP 的海外 VPS。线路质量、机房位置和晚高峰拥塞情况,都会直接影响实际体验。
核心选购指标
- 线路质量:可优先测试 CN2-GIA(电信)、AS9929(联通)或 CMI(移动)等优化线路。实际表现取决于所在地、运营商、路由和晚高峰拥塞。
- 机房位置:通常距离越近,基础延迟越低,但应以测试 IP 的
ping、路由追踪、丢包率和晚高峰测速为准。 - 系统支持:确认服务商可以安装 Debian 12 或 Debian 13 64 位纯净系统。
- 公网 IP:确认 VPS 具有公网可达 IP,并了解服务商是否额外提供安全组或云防火墙。
- 付款方式:根据自己的需求选择月付或年付,首次购买不建议一次预付太长时间。
VPS 服务商对比
| 服务商 | 主要特点 | 推荐线路/地区 | 适用场景 | 价格定位 |
|---|---|---|---|---|
| DMIT | 线路质量较高,提供多种优化网络产品 | CN2 GIA / 香港 / 日本 / 美国 | 对线路稳定性要求较高 | 较高 |
| 搬瓦工 | 支持多个机房和线路方案 | CN2 GIA-E / 日本软银等 | 需要灵活切换机房 | 中高 |
| Akile Cloud | 支持按量或月付,地区选择较多 | 香港 / 台湾 / 日本 / 韩国等 | 临时测试和短期项目 | 中低 |
| RackNerd | 年付产品价格较低 | 美国常规线路 | 预算有限、博客和测试环境 | 较低 |
| Vultr | 全球机房较多,支持按小时计费和 API | 国际标准 BGP | 临时部署和开发测试 | 中等 |
线路、IP 属性、库存和价格会随时变化,请以服务商实时页面及测试 IP 为准。上表部分按钮包含推广参数,购买价格通常不因此增加。
💡 二、搭建前准备
- 一台具有公网可达 IP 的 VPS,优先选择 Debian 13 64 位,也可使用 Debian 12 64 位。
- VPS 的公网 IP,以及服务商提供的
root初始登录凭据。 - SSH 工具:Windows 可使用 Windows Terminal / PowerShell,macOS 可使用系统自带终端。
- 一个部署时经过测试的 Reality Target/SNI。无需拥有这个域名,但不能把网上的示例当成永久可用配置。
截至 2026 年 7 月,Debian 11 LTS 将于 2026 年 8 月 31 日结束,不建议再用于新装服务器。Debian 12 LTS 持续至 2028 年 6 月 30 日。
🚀 三、更新 Debian 并安装基础工具
通过 SSH 登录 VPS:
1 | ssh root@你的VPS_IP |
把 你的VPS_IP 替换为真实公网 IP。登录后执行:
1 | apt update |
如果系统更新了内核,建议先重启,再重新连接:
1 | reboot |
⚡ 四、开启并验证 BBR
使用独立配置文件,避免重复执行时不断向 /etc/sysctl.conf 追加相同内容:
1 | cat > /etc/sysctl.d/99-bbr.conf <<'EOF' |
验证当前算法及内核可用算法:
1 | sysctl net.ipv4.tcp_congestion_control |
第一条应显示当前算法为 bbr,第二条的列表中也应包含 bbr。不要只依靠 lsmod | grep bbr 判断,因为 BBR 编译进内核时可能不会出现在模块列表中。
🛡️ 五、配置 UFW:此时只放行 SSH
1. 确认 SSH 实际端口
1 | sshd -T | grep '^port ' |
如果输出是 port 22,下面使用 22;如果输出为其他端口,必须把命令中的 22 换成实际值。
2. 设置策略、放行 SSH 并开启 UFW
1 | ufw default deny incoming |
看到 Status: active 和实际 SSH 端口规则后,不要立即关闭当前窗口。先新开一个终端再次连接 VPS,确认 SSH 仍然可用。
此时 3X-UI 尚未安装,Reality 入站也尚未创建,因此不要提前开放面板端口、
443或2096。
🖥️ 六、安装 3X-UI 面板
执行 3X-UI 官方安装脚本:
1 | bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) |
安装脚本会持续更新,应以屏幕上的实际提示为准。当前版本会生成随机用户名、密码和 WebBasePath,并在安装结束时显示面板端口、访问地址、账号以及 API Token。请立即保存完整输出,不要套用旧教程中的默认账号、固定端口或固定路径。
如果安装器提供 HTTPS、IP 证书、反向代理或仅监听 127.0.0.1 等选项,请根据实际访问方式选择。公网 HTTP 会明文传输面板登录信息,不适合长期使用。
安装完成后再放行面板端口
假设安装结果显示面板端口为 28530,有固定公网 IP 时,建议只允许自己的 IP:
1 | ufw allow from 你的公网IP to any port 28530 proto tcp comment '3X-UI Admin' |
必须把 你的公网IP 和 28530 换成真实值,不能原样执行。
没有固定 IP、确实需要临时公网访问时,可以开放实际面板端口:
1 | ufw allow 28530/tcp comment '3X-UI Admin' |
更安全的方式是不向公网开放面板端口,而是在本地建立 SSH 隧道:
1 | ssh -L 28530:127.0.0.1:28530 root@你的VPS_IP |
随后通过 http://127.0.0.1:28530/你的WebBasePath/ 访问。端口和路径都必须使用安装器实际给出的值。
📡 七、配置 VLESS + REALITY + XTLS Vision
登录面板,进入 入站列表(Inbounds),点击 添加入站(Add Inbound)。
基础参数
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| 备注(Remark) | VLESS-REALITY |
仅用于自己识别 |
| 协议(Protocol) | VLESS |
入站协议 |
| 监听 IP | 0.0.0.0 |
监听服务器公网网卡 |
| 端口(Port) | 443(示例) |
使用前确认没有被网站或其他服务占用 |
| 客户端 ID / UUID | 点击生成 | 每位用户建议使用独立 UUID |
| Flow | xtls-rprx-vision |
与 TCP/RAW + Reality 配合 |
| 传输方式 | TCP,新版内核可能显示 RAW |
以当前面板字段为准 |
| 安全(Security) | reality |
开启 Reality |
| Fingerprint / uTLS | chrome |
客户端也要使用兼容指纹 |
| Private/Public Key | 点击生成 | 私钥只保留在服务器端,客户端使用公钥 |
| Short ID | 点击生成 | 必须为偶数长度的十六进制字符串,最长 16 个字符 |
Target 与 SNI
旧教程中常见 dl.google.com:443、www.microsoft.com:443 或 itunes.apple.com:443,但它们只能作为候选示例,不能保证在所有 VPS、地区和时间都适用。
- Target(旧版界面可能显示 Dest)应填写经过测试的 HTTPS 站点和端口。
- Server Names / SNI 通常应与 Target 接受的证书域名一致。
- Target 应支持所需 TLS 特性,并且从 VPS 所在网络能够稳定访问。
- 不要机械照抄 CDN 或特殊目标。未通过 Reality 验证的流量可能被转发至 Target,错误选择可能导致服务器被滥用为转发器。
设置完成后点击 添加(Add) 保存入站。
保存入站后再放行节点端口
本例使用 TCP 443,因此执行:
1 | ufw allow 443/tcp comment 'VLESS Reality' |
如果入站使用其他端口,就把 443 换成实际端口。本文采用 TCP/RAW + Reality,不需要额外执行 ufw allow 443/udp。只有服务确实监听 UDP 时才开放 UDP。
如果面板端口和入站端口相同,或者 443 已被 Nginx、Caddy 等程序占用,入站将无法正常启动。可先检查:
1 | ss -lntp | grep ':443' |
📱 八、导出节点并连接客户端
在入站列表中找到刚创建的记录,点击二维码或复制链接,获取 vless:// 节点链接。导入后核对服务器地址、端口、公钥、SNI、Short ID、Fingerprint 和 Flow。
| 平台 | 可选客户端 |
|---|---|
| Windows | v2rayN、sing-box |
| macOS | sing-box 等支持 Reality 的客户端 |
| Android | v2rayNG、NekoBox、sing-box |
| iOS / iPadOS | Shadowrocket、Stash、sing-box |
Shadowrocket(小火箭)本身没有固定服务器端口。它连接哪个端口,取决于你创建的入站配置。
☁️ 九、同步检查云厂商安全组
如果使用阿里云、腾讯云、AWS、Oracle Cloud 等带有安全组或云防火墙的平台,还必须在服务商控制台同步开放实际使用的端口:
- SSH 的实际 TCP 端口。
- 面板的实际 TCP 端口——仅当面板需要公网访问时。
- Reality 入站的实际 TCP 端口。
云安全组和 UFW 是两道独立防火墙。任何一层没有放行,外部都无法访问。不要为了省事开放全部端口或 0-65535。
🛠️ 十、排查与维护命令
1 | # 打开 3X-UI 管理菜单 |
如果服务正在监听但外部无法访问,应依次检查:服务商安全组、UFW、入站端口、客户端参数、VPS 系统时间和 Target 可达性。不要直接关闭全部防火墙来排错。
若误封 SSH,请通过 VPS 服务商的 VNC、Web Console 或 Serial Console 登录,修正规则后再继续。
✅ 总结
正确的安全顺序是:
- 选择支持 Debian 和公网 IP 的 VPS。
- 更新 Debian 并确认 SSH 登录。
- 开启并验证 BBR。
- 只放行 SSH 后开启 UFW。
- 安装 3X-UI,取得真实面板端口后再决定是否放行。
- 创建 VLESS + Reality 入站,保存后只开放实际节点 TCP 端口。
- 同步检查云厂商安全组,最后导入客户端测试。
如果这篇教程对你有帮助,欢迎前往 Skyline YouTube 技术频道 观看配套视频。视频会展示面板界面和实际操作过程,后续更新也会优先发布在频道中。
官方参考:Debian 版本支持周期、Debian UFW 手册、3X-UI 安装说明、Xray REALITY 配置说明
