跳过正文
  1. 系列/
  2. 技术番外/

番外:网络代理使用 3X-UI 面板与 Hysteria2 独立加装教程

其雁过无痕
作者
其雁过无痕
目录

🌐 核心架构设计:为什么这么做?
#

过去使用一键翻墙脚本,脚本作者通常采用“霰弹枪策略”:在一个黑盒环境里强行塞入 10 多个协议节点,将其全部打包在一个 Sing-box 内核里。这种方式看似全面,但在 1GB 内存的入门级 VPS(虚拟专用服务器)上会产生严重的弊端:大量闲置进程白白吃掉宝贵的系统资源,且黑盒脚本会死锁底层网络逻辑,导致后续更新极易崩溃或丢失配置。

本教程采用更加优雅的“微服务解耦”架构,在服务器上并行部署两套独立运行的顶级代理核心,各司其职,互不干扰:

  1. Xray 核心(通过 3X-UI 图形面板管理): 运行在 TCP 协议上,部署目前最隐蔽、最抗封锁的 VLESS-Reality-Vision 方案,作为日常高频代码开发、拉取 GitHub 仓库、查阅文档的主力节点。
  2. Native Hysteria2 核心(原生独立进程运行): 运行在 UDP 协议上,利用极度激进的 Brutal(暴力拥塞控制算法),强行在长距离、高延迟、多丢包的劣质公网上跑满物理带宽,专门作为 Gemini 等 AI 服务流式输出、4K 视频、打游戏的高速爆发引擎。

🛠️ 第一部分:VPS 基础环境修复(排查 DNS 故障)
#

在某些精简版的 Linux 镜像中,或者在频繁重装 Docker 容器后,VPS 的底层域名解析系统可能会瘫痪。表现为运行 curl 下载命令时,系统报错:curl: (6) Could not resolve host。这意味着你的服务器找不到“电话本”,无法将网址翻译为 IP 地址。

1. 强制注入公共 DNS 电话本
#

在终端(如 FinalShell)中,以 Root 权限直接运行以下命令,强行将 Google 和 Cloudflare 的顶级公共 DNS 服务器写入系统的解析配置文件中:

echo -e "nameserver 8.8.8.8\nnameserver 1.1.1.1" > /etc/resolv.conf

2. 验证网络层连通性
#

通过向 GitHub 发送 3 个测试数据包,如果能看到类似 64 bytes from... 且带有延迟数字的回显,说明服务器的网络域名解析已经完美恢复:

ping -c 3 github.com

🖥️ 第二部分:3X-UI 面板的安装与基础安全配置
#

3X-UI 面板目前是全球 GitHub 上维护最勤快、最轻量化的可视化代理控制台项目。

1. 一键安装面板与 Xray 内核
#

在终端中执行以下官方纯净脚本(它会自动下载最新稳定的二进制文件并注册为系统服务):

bash <(curl -fsSL https://app.hysteria.network/get.sh)

注:由于官方版本更迭,原旧短链接已废弃,当前必须使用最新的 get.hy2.sh 或官方发布库。

2. 绑定域名与 DNS 解析(以 Spaceship 为例)
#

登录你购买域名的供应商后台(如 Spaceship),进入高级 DNS 设置(Advanced DNS),添加以下 A 记录

  • A 记录 1: 主机名(Host)填 @,值(Value)填你的 VPS 真实真实 IP,生存时间(TTL)设为 30分钟。
  • A 记录 2: 主机名 填 panel,值 填你的 VPS 真实真实 IP
  • A 记录 3: 主机名 填 www,值 填你的 VPS 真实真实 IP

3. 一键申请 SSL 域名安全证书
#

在终端中输入 x-ui 调出主菜单,选择 19 (SSL 证书管理),再选择 1 (Get SSL)。输入你的二级域名 panel.你的域名.top,脚本会自动调用 Let’s Encrypt 在后台完成证书的签发。证书的绝对存放路径为:

  • 公钥证书(Cert): /root/cert/panel.你的域名.top/fullchain.pem
  • 私钥钥匙(Key): /root/cert/panel.你的域名.top/privkey.pem

4. 强行“上锁”:开启 HTTPS 安全加密访问
#

为了防止面板的登录页面被审查机构直接明文探测,我们需要把刚刚申请下来的证书直接绑定给面板:

  1. 终端输入 x-ui
  2. 选择 19 进入证书管理,再选择 5 (Set Cert paths for the panel)
  3. 终端会提示输入域名,手动完整打一遍:panel.你的域名.top 并回车。
  4. 脚本会自动将证书路径写入 3X-UI 底层配置,并强制重启网页服务。

🔒 第三部分:3X-UI 入站节点保姆级创建流程
#

🎯 节点一:VLESS-Reality-Vision(日常主力)
#

  • 基本原理: 白嫖大厂网站(如 Intel 或 Mozilla)的合法身份作掩护。在网络审查看来你是在访问英特尔官网,但实际上在 TLS 握手阶段,服务器利用密码学对流量完成了安全的私密放行。

面板后台配置步骤:
#

  1. 添加入站: 登录 3X-UI 网页端 -> 点击 入站列表 -> 点击 + 添加入站

  2. 基础设置: 备注填 US-VLESS-Reality,协议选 vless,端口随机填一个五位数(如 42991)。

  3. 添加客户端: 必须在“客户端 (Client)”区域,点击蓝色的 “+” 号。系统会自动生成一行用户记录和一串长 UUID。如果不加用户,节点内没有钥匙,导出链接时弹出的窗口就会是一片空白!

  4. 流控选择(涡轮增压): 在新生成的客户端那一行,找到 flow 下拉菜单,必须选择 xtls-rprx-vision。它能在不降低安全性的前提下大幅省去加解密算力,直接消除跨洋大流量时的握手延迟。

  5. 传输安全性: 网络选 tcp,安全性选 reality

  6. Reality 特殊配置(新版3x-ui面板似乎有默认设置,有默认就不用填了):

    • Target 填 www.intel.com:443
    • SNI 填 www.intel.com
    • uTLS 选 chrome
    • 公钥/私钥: 点击蓝色的 Get New Cert 按钮,让系统自动刷出一对崭新的非对称加密密钥对。
  7. 保存: 点击添加。回到列表点击“操作” -> “导出链接” -> 点击 Copy,直接去 V2rayN 中按 Ctrl + V 导入即可。

🛡️ 节点二:VLESS-WS-TLS(IP 被墙时的备用方案)
#

  • 核心价值: WebSocket 协议能将数据伪装成网页上的实时聊天流。这个节点平时不作主力,但它的最大作用是:一旦未来某天的 VPS 真实 IP 被墙,只要点亮域名在 Cloudflare 后台的“橙色小云(开启 CDN 代理)”,这个节点就能穿过全球 CDN 节点满血复活!

面板后台配置步骤:
#

  1. 基础设置: 协议选 vless,端口必须填 84432053(因为 Cloudflare 的全球 CDN 网络的 HTTPS 流量只放行这几个特定端口)。

  2. 添加客户端: 点击 “+” 号 生成专属用户 UUID。

  3. 传输设置: 网络(Network)必须下拉选择 ws(WebSocket),路径填 /gyq-cdn

  4. 安全设置: 安全性选择 tls

    • SNI 填:panel.你的域名.top
    • 数字证书路径: 勾选“文件路径”,将之前申请的证书绝对路径完整复制进来:
      • 公钥路径:/root/cert/panel.你的域名.top/fullchain.pem
      • 私钥路径:/root/cert/panel.你的域名.top/privkey.pem
  5. 保存与启用: 点击添加。修改完后,必须点击面板左上角红色的“重启 Xray”按钮,配置才能真正被底层核心接管!

  6. 客户端排错: 导入 V2rayN 后若发现不通,双击打开该节点,确保 Flow 这一栏完全保持空白! 因为 Vision 流控是纯 TCP 独占的技术,绝对不能和 WebSocket 混用。

⚡ 第四部分:高性能 Native Hysteria2 独立加装与“端口跳跃”
#

1. 攻克 Linux 权限隔离禁区
#

由于 3X-UI 将证书保存在最高权限的 /root/ 目录下,而独立运行的 Hysteria2 服务在后台是以普通用户 hysteria 的身份运行的,它没有权限跨级读取 root 的文件,这会导致服务启动时发生 FATAL failed to load server config (tls.cert file not found) 崩溃。

需要把证书复制到公共目录,并将所有权无缝移交给 Hysteria 服务:

# 复制证书到独立进程地盘
cp /root/cert/panel.你的域名.top/fullchain.pem /etc/hysteria/fullchain.pem
cp /root/cert/panel.你的域名.top/privkey.pem /etc/hysteria/privkey.pem

# 将证书所有权改写给 hysteria 用户组
chown hysteria:hysteria /etc/hysteria/fullchain.pem
chown hysteria:hysteria /etc/hysteria/privkey.pem

2. 编写“防封锁端口跳跃”版配置文件
#

国内运营商的 QoS 机制一旦发现某个固定的 UDP 端口在持续进行超大流量的数据传输,就会直接判定为翻墙并实施限速或拦截封锁 24-72 小时。

我们利用 Hysteria2 原生的端口跳跃(Port Hopping)功能来彻底降维打击这种检测:让服务器同时打开 10000 个高位端口,客户端每次发包时,端口都在这个范围内随机高频跳动,运营商的检测设备根本无法锁定特征。

运行 nano /etc/hysteria/config.yaml(清空默认内容),将以下规范代码整体粘贴进去:

listen: :50000-60000 # 开启一万个高位端口的监听矩阵,安全避开系统常用端口冲突

tls:
  cert: /etc/hysteria/fullchain.pem # 读取已移交权限的公共证书
  key: /etc/hysteria/privkey.pem

auth:
  type: password
  password: your_secret_password # 设置一个你自己的专属连接密码

fastOpen: true

masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com # 极其逼真的伪装,当遭遇主动探测时返回微软必应官网
    rewriteHost: true

提示:按 Ctrl+O 存盘,按 Ctrl+X 退出。

3. 放行底层高级防火墙矩阵并启动
#

# 在底层网络防火墙中强行插入一万个高频 UDP 端口的放行链
iptables -I INPUT -p udp --dport 50000:60000 -j ACCEPT
ufw allow 50000:60000/udp
ufw reload

# 重启并激活极速服务
systemctl restart hysteria-server.service
systemctl enable hysteria-server.service

4. 手工拼装极速分享链接
#

由于是独立加装,不需要依赖任何第三方魔改脚本,我们自己就可以按照标准格式拼装出高能节点代码:

hysteria2://your_secret_password@panel.你的域名.top:50000/?mport=50000-60000&sni=panel.你的域名.top&insecure=0#US-Hys2-防封跳跃

复制这串代码,在电脑端的 V2rayN 里直接 Ctrl + V 导入即可!

🛠️ 第五部分:高频运维与故障排查
#

当未来忘记了登录网址,或者系统发生未知瘫痪时,不要慌张,连接 FinalShell,这四行极客命令是你的终极安全底线:

1. 免重置、免修改,明文捞出面板的所有登录数据
#

3X-UI 的所有配置都持久化存储在本地的 SQLite 数据库中。无需重启面板,直接在终端运行以下高级 SQL 查询,当前活着的明文密码、用户、端口和那个长长难记的随机根路径会被直接打印在屏幕上:

sqlite3 /etc/x-ui/x-ui.db "SELECT key, value FROM settings WHERE key IN ('webPort', 'webBasePath');"

(提示:若提示未找到命令,随手运行 apt install sqlite3 -y 即可)

2. 检查特定端口被谁占用了(网络层捉虫)
#

如果你想查看 8443 或者面板端口到底有没有在正常运行:

ss -nltp | grep 8443

若能看到右侧清晰打印着 users:(("xray-linux-amd6",pid=...)),说明服务完好,直接去排查客户端配置或本地运营商干扰即可。

3. 查看双引擎服务的健康状态
#

systemctl status x-ui             # 检查3X-UI图形控制台状态
systemctl status hysteria-server  # 检查独立极速进程状态

4. 实时追踪最近 20 行报错日志(精准定位错在哪一行)
#

journalctl -u hysteria-server -n 20 --no-pager

相关文章

任务 7:部署限制内存的数据库

在服务器部署的进阶之路上,部署限制内存的数据库是一个必经的关卡 。对于这种小内存的 VPS(比如 RackNerd),如果直接裸跑默认配置的 MySQL 8.0,它会一口气吞掉 400MB 甚至更多的内存,极易导致服务器 OOM(内存溢出)死机。

番外:VS Code + Remote-SSH 模式

对于拥有海外小性能 VPS 的开发者来说,高物理延迟往往是绕不开的痛。如果还在使用传统的终端工具(如 FinalShell),忍受着 nano 或 vim 编辑长文本时吞换行、卡顿的折磨,那么 VS Code + Remote-SSH 绝对是救星。

番外:1G 小内存 VPS 部署 Java JSP 项目实战:Docker 本地构建 + 远程运行完美方案

在拥有了一台属于自己的 VPS(如 1核 1G内存,配置了 2G Swap)后,很多新手在尝试部署 Java 项目时,往往会选择直接在服务器上安装 Maven 或运行 docker build。但现实很残酷:Java 编译极其消耗内存,1G 的内存在构建瞬间就会被挤爆,导致系统卡死或触发 OOM (Out Of Memory) 杀掉进程。

任务 3:熟练使用终端复用工具

核心目标 # 操作:安装并学习使用 tmux。 收获:掌握在服务器上跑长耗时任务的能力。即使本地 SSH 突然断开,任务依然会在后台运行,不会前功尽弃。 核心工具:tmux # tmux (Terminal Multiplexer) 是现代服务端开发的必备工具,解决了远程连接中途掉线导致任务中断的痛点。

任务 2:分配虚拟内存 (Swap)

Linux 服务器运维笔记:分配虚拟内存 (Swap) 避坑与实操 # 0. 背景与目标 # 在小内存(如 1GB RAM)的云服务器上运行 Java、MySQL 或进行前端构建时,物理内存极易耗尽导致进程被系统杀掉(OOM)。Swap(交换空间) 充当了“虚拟内存”的角色,是服务器在高负载下的“救命支撑”。