Files
knowledge-base/2 - Projects/VLESS-Reality/VLESS-REALITY-Router-iStoreOS.md

6.2 KiB
Raw Blame History

iStoreOS 主网关配置文档

主网关:192.168.68.63 (iStoreOS 24.10.2, aarch64, EasePi Pro) WiFiDeco BE65AP 模式) 服务器:8.138.1.192(阿里云广州) 用途:翻墙回国 + 全家广告拦截 + 内网 DNS 状态:已完成,正常工作 (2026-03-15)


1. 网络拓扑

光猫 (拨号, Dynamic IP)
  │
  ▼ WAN (eth0, DHCP)
iStoreOS (192.168.68.63) ← 主网关
  ├── dnsmasq (:53) → 内网 DNS + 转发到 OpenClash
  ├── OpenClash / mihomo (:7874) → fake-ip + TUN → 翻墙回国 + 广告拦截
  ├── 端口映射 (2200, 443, 51888)
  ├── DHCP (网关=.63, DNS=.63)
  │
  ▼ LAN (eth1/eth2/eth3)
  ├── Deco BE65 (AP) → WiFi → 手机/平板/笔记本
  └── 交换机 (2楼) → PVE + NAS

DNS 解析链路

设备 → dnsmasq (:53)
         ├─ 内网域名 (*.colacoder.com, *.k8s.home) → 直接返回真实 IP
         └─ 外部域名 → OpenClash (:7874, fake-ip)
                          ├─ fake-ip-filter 匹配 → 返回真实 IP
                          ├─ 广告域名 → REJECT
                          ├─ 国内域名 → fake-ip → VLESS 代理回国
                          └─ 海外域名 → fake-ip → 直连

2. OpenClash 配置

LuCI 后台设置

设置
运行模式 Fake-IP (TUN)
代理模式 Rule 策略代理
区域绕过 停用
域名嗅探 启用
DNS 代理 停用
本地 DNS 劫持 使用 Dnsmasq 转发

覆写设置 → DNS

设置
Default-NameServer 8.8.8.8, 1.1.1.1
NameServer 8.8.8.8, 1.1.1.1
Fallback dns.google, cloudflare-dns.com

重要: NameServer 必须用海外 DNS不能用国内 DNS114、119、223 等), 否则会产生 DNS 环路(国内 DNS IP 匹配 GEOIP,CN → 走代理 → 代理需要 DNS → 死循环)。

配置文件

  • 源配置:/etc/openclash/config/vless-reality.yaml
  • 运行配置:/etc/openclash/vless-reality.yaml(自动生成,勿手动改)
  • API SecretDc7jZkmO
  • Dashboardhttp://192.168.68.63:9090

自定义文件(持久化,不被覆盖)

文件 用途
/etc/openclash/custom/openclash_custom_hosts.list 内网 DNS 映射
/etc/openclash/custom/openclash_custom_fake_filter.list fake-ip 排除域名

3. 内网 DNS

双重保障dnsmasq 和 OpenClash hosts 都配了内网记录。

dnsmasq 配置

文件:/etc/dnsmasq.d/internal-dns.conf

address=/k8s.home/192.168.68.70
address=/nas.colacoder.com/192.168.68.70
address=/pve.colacoder.com/192.168.68.70
address=/npm.colacoder.com/192.168.68.70
address=/router.colacoder.com/192.168.68.63
address=/adguard.colacoder.com/192.168.68.63
address=/claw.colacoder.com/192.168.68.70
address=/openvas.colacoder.com/192.168.68.70
address=/invest-api.k8s.home/192.168.68.240

OpenClash 自定义 hosts

文件:/etc/openclash/custom/openclash_custom_hosts.list

nas.colacoder.com: 192.168.68.70
pve.colacoder.com: 192.168.68.70
npm.colacoder.com: 192.168.68.70
router.colacoder.com: 192.168.68.63
adguard.colacoder.com: 192.168.68.63
claw.colacoder.com: 192.168.68.70
openvas.colacoder.com: 192.168.68.70
invest-api.k8s.home: 192.168.68.240

fake-ip 排除列表

文件:/etc/openclash/custom/openclash_custom_fake_filter.list

*.colacoder.com
+.colacoder.com
*.k8s.home
+.k8s.home
*.lan
*.local
*.localdomain
*.home.arpa

4. 端口映射

规则名 外部端口 目标
NAS-SSH-2200 2200 192.168.68.70:2200
NAS-HTTPS-443 443 192.168.68.70:443
Device-51888 51888 192.168.68.107:51888

5. DHCP 静态绑定19 台设备)

名称 IP MAC
pve-docker 192.168.68.102 BC:24:11:3B:9C:8A
wireguard 192.168.68.107 BC:24:11:00:4D:D2
Yaojia-ipad 192.168.68.77 64:0B:D7:F0:D0:4C
Yaojias-iPhone 192.168.68.73 68:EF:DC:B7:36:40
Yiukai 192.168.68.89 10:FF:E0:CC:1D:00
Yiukai-Asus-wifi 192.168.68.79 08:3A:88:59:1F:A6
Yiukai-Asus-lan 192.168.68.60 44:E5:17:DD:26:01
yiukai-ubuntu 192.168.68.108 1C:79:2D:5C:2C:C4
YIUKAINAS 192.168.68.70 24:5E:BE:5F:ED:38
Yiukais-MBP 192.168.68.87 5C:E9:1E:B2:56:79
android-8fbbfff 192.168.68.111 6C:2D:24:F8:F3:0C
easepi 192.168.68.63 EE:61:98:11:AD:C4
homeassistant 192.168.68.97 BC:24:11:63:40:1E
kai-desktop-jetson 192.168.68.104 3C:6D:66:1E:D7:62
kuangxideiPhone 192.168.68.88 C4:C1:7D:7B:76:CC
lingke 192.168.68.69 84:47:09:20:70:DA
network-scanner 192.168.68.84 BC:24:11:09:F1:9E
pc 192.168.68.176 12:D0:5B:A3:8B:4F
adguard-vm 192.168.68.112 BC:24:11:C9:58:CB

6. 踩坑记录

DNS 环路(最关键)

OpenClash 的 nameserver 不能用国内 DNS114.114.114.114、119.29.29.29 等), 因为这些 IP 匹配 GEOIP,CN 规则 → 走代理 → 代理需要 DNS → 死循环。 必须用海外 DNS8.8.8.8、1.1.1.1)。

OpenClash 配置覆盖

OpenClash 每次重启都会从源配置重新生成运行配置。 自定义 hosts 和 fake-ip-filter 必须放在 /etc/openclash/custom/ 目录下的专用文件里。 直接改 yaml 文件会被覆盖。 DNS 相关设置必须在 LuCI 覆写设置里改,不能改 yaml。

区域绕过必须停用

翻墙回国场景下,"大陆"和"海外"绕过都不合适,必须选"停用" 让配置文件里的分流规则来决定。


7. 紧急恢复

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

# 如果 DNS 也断了,临时用 8.8.8.8
echo "nameserver 8.8.8.8" > /etc/resolv.conf

8. 更新维护

# 更新 mihomo 内核
cd /tmp
curl -L -o mihomo.gz "https://github.com/MetaCubeX/mihomo/releases/latest/download/mihomo-linux-arm64.gz"
gunzip -f mihomo.gz && chmod +x mihomo
mv mihomo /etc/openclash/core/clash_meta
/etc/init.d/openclash restart

# 更新 OpenClash 插件
opkg install /tmp/luci-app-openclash_*.ipk