--- tags: - openclash - vless-reality - proxy - setup-guide - homelab --- # VLESS + XTLS-Vision + REALITY 搭建文档 > 基于 Xray-core 官方仓库,当前最推荐的代理方案。 > 无需域名、无需 TLS 证书,流量伪装为正常 HTTPS 访问。 **部署状态:已完成** | 初始部署:2026-03-14 | Xray 版本:v26.2.6 **用途:翻墙回国** — 从瑞典通过国内代理访问国内资源 --- ## 当前状态总览 ### 已完成 - [x] 阿里云服务器 Xray-core 部署 - [x] iStoreOS 从旁路由升级为主网关 - [x] Deco BE65 切换为 AP 模式 - [x] DHCP 静态绑定(19 台设备) - [x] 端口映射迁移(3 条规则) - [x] OpenClash + mihomo 安装配置 - [x] 内网 DNS(dnsmasq + OpenClash hosts) - [x] 广告拦截(OpenClash GEOSITE 规则) - [x] 翻墙回国验证(v.qq.com 正常播放) - [x] 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,不是直连。 --- ## 相关文档 | 文档 | 说明 | |------|------| | [主网关配置](./VLESS-REALITY-Router-iStoreOS.md) | iStoreOS 网络/DHCP/端口映射/OpenClash 配置 | | [macOS 客户端](./VLESS-REALITY-Client-macOS.md) | ClashX Meta 客户端配置(外出时使用) | | [AdGuard Home 备份](./adguardhome-backup-20260315.tar.gz) | 完整备份(配置+数据,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) ```bash 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) ```bash 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) ```bash 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 ```