6.7 KiB
6.7 KiB
VLESS + XTLS-Vision + REALITY 搭建文档
基于 Xray-core 官方仓库,当前最推荐的代理方案。 无需域名、无需 TLS 证书,流量伪装为正常 HTTPS 访问。
部署状态:已完成 | 初始部署:2026-03-14 | Xray 版本:v26.2.6 用途:翻墙回国 — 从瑞典通过国内代理访问国内资源
当前状态总览
已完成
- 阿里云服务器 Xray-core 部署
- iStoreOS 从旁路由升级为主网关
- Deco BE65 切换为 AP 模式
- DHCP 静态绑定(19 台设备)
- 端口映射迁移(3 条规则)
- OpenClash + mihomo 安装配置
- 内网 DNS(dnsmasq + OpenClash hosts)
- 广告拦截(OpenClash GEOSITE 规则)
- 翻墙回国验证(v.qq.com 正常播放)
- AdGuard Home 移除(由 OpenClash 接管广告拦截和 DNS)
最终方案
不使用 AdGuard Home,全部由 OpenClash + dnsmasq 处理:
- dnsmasq(:53) 负责内网 DNS + 转发到 OpenClash
- OpenClash(:7874) 负责 fake-ip 分流 + 广告拦截 + 翻墙回国
- NameServer 必须用海外 DNS(8.8.8.8),不能用国内 DNS(避免环路)
服务器信息
| 项目 | 值 |
|---|---|
| 服务器 | 8.138.1.192 (Ubuntu 24.04 LTS, 阿里云广州) |
| 端口 | 443 |
| UUID | 04a7cfe3-10f6-4e38-8319-22a604e24018 |
| Private Key | mLQp0G0_yYYBNeviVJ674UmaYLimx9vbixVQhlESTWU |
| Public Key | RTO_UOk5ncr3DAAYR08g08L0fo5ax9pmGFj8c8lXWgk |
| 伪装目标 | www.microsoft.com |
分享链接
vless://04a7cfe3-10f6-4e38-8319-22a604e24018@8.138.1.192:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.microsoft.com&fp=chrome&pbk=RTO_UOk5ncr3DAAYR08g08L0fo5ax9pmGFj8c8lXWgk&type=tcp#VLESS-Reality
网络拓扑
当前状态
光猫 (拨号, 瑞典 ISP)
│
▼ WAN (eth0, DHCP, 公网 IP)
iStoreOS / EasePi (192.168.68.63) ← 主网关
├── DHCP 服务器 (网关=.63, DNS=.63)
├── AdGuard Home Docker (:53) ← 临时,待迁出
├── OpenClash (已安装,未启用,与 AGH 冲突)
├── 端口映射 (2200, 443, 51888)
│
▼ LAN (eth1/eth2/eth3)
├── Deco BE65 (AP 模式) → mesh WiFi → 手机/平板/笔记本
└── 交换机 (2楼) → PVE + NAS + 其他有线设备
目标架构
光猫 → iStoreOS (192.168.68.63, 主网关)
├── DHCP (网关=.63, DNS=AGH的IP)
├── OpenClash (:7874, fake-ip + DNS劫持)
├── 端口映射
│
├── Deco BE65 (AP) → WiFi 设备
└── 交换机 (2楼)
├── PVE (192.168.68.69) → VM 跑 AdGuard Home
└── NAS (192.168.68.70)
DNS 链路:
设备 → AdGuard Home (PVE VM:53, 广告过滤+内网重写)
└→ 上游: OpenClash (192.168.68.63:7874, fake-ip)
├→ 国内域名 → VLESS 代理回国
└→ 海外域名 → 直连
物理布局
1楼: 光猫 → iStoreOS (EasePi) → Deco BE65 主机
2楼: 交换机 ← 网线连接 Deco → PVE 服务器 + NAS
注意:2楼设备通过 Deco AP 桥接到 iStoreOS,不是直连。
相关文档
| 文档 | 说明 |
|---|---|
| 主网关配置 | iStoreOS 网络/DHCP/端口映射/OpenClash 配置 |
| macOS 客户端 | ClashX Meta 客户端配置(外出时使用) |
| AdGuard Home 备份 | 完整备份(配置+数据,89MB) |
PVE 虚拟机列表
| VMID | 名称 | IP | 状态 | 说明 |
|---|---|---|---|---|
| 100 | HA (Home Assistant) | - | running | 智能家居 |
| 101 | k8s-cp1 | - | running | K8s 控制面 |
| 102 | Wireguard | 192.168.68.107 | running | VPN |
| 103 | k8s-w1 | - | running | K8s 工作节点 |
| 104 | k8s-w2 | - | running | K8s 工作节点 |
| 105 | pg-01 | - | running | PostgreSQL |
| 106 | network-scanner | 192.168.68.84 | running | 网络扫描 |
| 110 | adguard-home (LXC) | 192.168.68.110 | running | AdGuard Home(网络不稳定,待修复) |
踩坑记录
1. OpenClash + AdGuard Home 53 端口冲突
OpenClash fake-ip 模式需要 DNS 劫持(占 53 端口),与 AdGuard Home 冲突。 尝试的方案:
- 关闭 DNS 劫持 → fake-ip 不生效,无法代理
- 开启防火墙转发 → dnsmasq 不运行,DNS 全断
- AdGuard Home 上游指向 OpenClash → 其他设备(旁路由模式下)拿到 fake-ip 断网
结论:必须分开部署在不同机器上。
2. Deco BE65 不支持自定义 DHCP 网关/DNS
Deco 系列路由器的 DHCP 设置完全封闭,无法自定义下发网关和 DNS。 解决方案: Deco 切 AP 模式,iStoreOS 接管 DHCP。
3. PVE LXC 容器网络延迟不稳定
Ubuntu 25.04 LXC 容器 eth0 不能自动启动,需要手动 ip link set eth0 up。
即使手动配置后,ping 延迟在 9ms~200ms 之间波动。
PVE 主机和 NAS 延迟正常(3-7ms),说明是 LXC 网络栈的问题。
待解决:改用完整 VM 或修复 LXC 网络。
4. 旁路由模式 bypass_gateway_compatible
OpenClash 旁路由模式下必须开启 bypass_gateway_compatible=1,否则转发流量不通。
同时必须关闭 enable_redirect_dns=0,否则会劫持所有设备 DNS 导致断网。
5. 1Password SSH Agent
SSH 到新 IP 时需要在 ~/.ssh/config 中添加 IdentityAgent 配置指向 1Password socket。
不能用 IdentitiesOnly=yes,否则会阻止 1Password agent。
服务器管理
阿里云服务器 (8.138.1.192)
ssh admin@8.138.1.192
# Xray 管理
systemctl status xray
systemctl restart xray
journalctl -u xray -f
# 更新
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
iStoreOS 主网关 (192.168.68.63)
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.63
# 紧急恢复(如果 OpenClash 搞坏了网络)
/etc/init.d/openclash stop
nft -a list chain inet fw4 dstnat | grep 'DNS Hijack' | grep -o 'handle [0-9]*' | while read h; do nft delete rule inet fw4 dstnat $h; done
nft -a list chain inet fw4 nat_output | grep 'DNS Hijack' | grep -o 'handle [0-9]*' | while read h; do nft delete rule inet fw4 nat_output $h; done
PVE (192.168.68.69)
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.69
# LXC 管理
pct list
pct start/stop/restart 110
pct exec 110 -- bash