在 YouTube 观看完整视频 订阅 Skyline YouTube 频道

这是一份面向 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
2
3
apt update
apt upgrade -y
apt install -y curl wget ca-certificates tar ufw

如果系统更新了内核,建议先重启,再重新连接:

1
reboot

⚡ 四、开启并验证 BBR

使用独立配置文件,避免重复执行时不断向 /etc/sysctl.conf 追加相同内容:

1
2
3
4
5
6
cat > /etc/sysctl.d/99-bbr.conf <<'EOF'
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
EOF

sysctl --system

验证当前算法及内核可用算法:

1
2
sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_available_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
2
3
4
5
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp comment 'SSH'
ufw enable
ufw status verbose

看到 Status: active 和实际 SSH 端口规则后,不要立即关闭当前窗口。先新开一个终端再次连接 VPS,确认 SSH 仍然可用。

此时 3X-UI 尚未安装,Reality 入站也尚未创建,因此不要提前开放面板端口、4432096


🖥️ 六、安装 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
2
ufw allow from 你的公网IP to any port 28530 proto tcp comment '3X-UI Admin'
ufw status numbered

必须把 你的公网IP28530 换成真实值,不能原样执行。

没有固定 IP、确实需要临时公网访问时,可以开放实际面板端口:

1
2
ufw allow 28530/tcp comment '3X-UI Admin'
ufw status numbered

更安全的方式是不向公网开放面板端口,而是在本地建立 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:443www.microsoft.com:443itunes.apple.com:443,但它们只能作为候选示例,不能保证在所有 VPS、地区和时间都适用。

  • Target(旧版界面可能显示 Dest)应填写经过测试的 HTTPS 站点和端口。
  • Server Names / SNI 通常应与 Target 接受的证书域名一致。
  • Target 应支持所需 TLS 特性,并且从 VPS 所在网络能够稳定访问。
  • 不要机械照抄 CDN 或特殊目标。未通过 Reality 验证的流量可能被转发至 Target,错误选择可能导致服务器被滥用为转发器。

设置完成后点击 添加(Add) 保存入站。

保存入站后再放行节点端口

本例使用 TCP 443,因此执行:

1
2
ufw allow 443/tcp comment 'VLESS Reality'
ufw status numbered

如果入站使用其他端口,就把 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 打开 3X-UI 管理菜单
x-ui

# 查看面板服务状态
systemctl status x-ui --no-pager

# 检查节点端口和面板端口(按实际端口替换)
ss -lntp | grep -E ':(443|28530)\b'

# 查看防火墙规则
ufw status verbose
ufw status numbered

# 修改规则后重新加载
ufw reload

如果服务正在监听但外部无法访问,应依次检查:服务商安全组、UFW、入站端口、客户端参数、VPS 系统时间和 Target 可达性。不要直接关闭全部防火墙来排错。

若误封 SSH,请通过 VPS 服务商的 VNC、Web Console 或 Serial Console 登录,修正规则后再继续。


✅ 总结

正确的安全顺序是:

  1. 选择支持 Debian 和公网 IP 的 VPS。
  2. 更新 Debian 并确认 SSH 登录。
  3. 开启并验证 BBR。
  4. 只放行 SSH 后开启 UFW。
  5. 安装 3X-UI,取得真实面板端口后再决定是否放行。
  6. 创建 VLESS + Reality 入站,保存后只开放实际节点 TCP 端口。
  7. 同步检查云厂商安全组,最后导入客户端测试。

如果这篇教程对你有帮助,欢迎前往 Skyline YouTube 技术频道 观看配套视频。视频会展示面板界面和实际操作过程,后续更新也会优先发布在频道中。

官方参考:Debian 版本支持周期Debian UFW 手册3X-UI 安装说明Xray REALITY 配置说明