本期默认你已经会装 iStoreOS、能 SSH 进路由器。没装过软路由的,先看 iStoreOS 装机基础。
视频回看
视频主要目标
前几期介绍了在 iStoreOS 软路由上装Openclash、passwall等插件,实现全屋设备不装任何客户端就能够自由上网,最近朋友推荐,说 daed(大鹅)很好用,daed 是跑在内核里的 eBPF 透明代理,比 OpenClash、PassWall 更省 CPU、延迟更低。我用了几天,发现确实很好用,总体评估:轻量、UI简洁、功能逻辑清晰,这里推荐给大家。
视频内容大纲
安装:用 .run 一键包装好 daed,打开面板绑定网卡
导入机场 + 住宅订阅(都转 base64 通用格式)
建策略组 + 分流:AI / 社交走住宅,其余境外走机场,配 DNS 防泄漏
测试验收:出口 IP / AI 登录 / DNS 不泄漏
准备项
你需要准备
一台装好 iStoreOS 24.10.x 的软路由(x86 或 ARM 盒子均可)
一份订阅链接:必须是 base64 / v2ray 通用格式(daed 不认 Clash YAML),vmess / vless / trojan / ss / hysteria2 / anytls 都支持。
一份住宅 IP 订阅(解锁 AI / 社交才需要):机房 IP 的机场节点几乎必被 ChatGPT / Claude / X 风控,这类流量得走住宅出口。没有现成住宅线路的,看下面往期视频。
往期视频(建议先看)
没装过软路由 / 还在老固件 → 先把系统刷到 iStoreOS 24.10,再回来装 daed。
没有住宅线路 → CF 住宅出口链式代理
操作步骤
第一步:确认 iStoreOS 版本与内核
SSH 进路由器,确认内核版本够格:
uname -r期望返回 6.6.x(如 6.6.135)——记下这个完整版本号,下一步选包要对得上。 如果返回 5.15.x 或更低 → 你还在 iStoreOS 22.03,dae 绑定网卡会失败,请先把固件升级到 24.10 再继续。
第二步:下载对应架构的 .run 一键包
到 wkccd/luci-app-daed-runfiles 的 Releases 下载最新版(当前 v1.28.0),按「OpenWrt 版本 + 架构」选文件:
⚠️ 别拿错版本:iStoreOS 24.10 对应内核 6.6.x,必须选 24.10 那一组。选成 25.12(内核 6.12.x)的包,里面的 vmlinux-btf 跟你的内核对不上,装完照样起不来。
包里已含 daed 本体、luci-app-daed 面板、中文包、geoip/geosite 数据库,以及匹配内核的 vmlinux-btf——一个文件装齐,不用再单独配 BTF。
第三步:上传 .run 到路由器
把下载好的 .run 传到路由器的 /tmp 目录。任选一种:
# 方式 A:电脑上用 scp 推(把文件名和路由器 IP 换成你的)
scp luci-app-daed_x.x.x_24.10_x86-64.run root@192.168.1.1:/tmp/也可以用 iStoreOS 自带的「文件助手」网页上传到 /tmp,效果一样。
第四步:运行 install.sh 安装
SSH 进路由器,进入 /tmp,给脚本自解压并安装:
cd /tmp
sh luci-app-daed_x.x.x_24.10_x86-64.run.run 是 makeself 自解压包,运行后会自动解包并执行内置的 install.sh,依次装上 daed、面板、中文包、geoip/geosite 和 vmlinux-btf 模块。
验证:看脚本输出是否全部 Installed,无报错。也可手动确认服务在:
/etc/init.d/daed status期望看到 daed 服务已安装、可启动。如果提示 eBPF / BTF 相关加载失败 → 多半是包的内核版本和 uname -r 对不上,回第二步重选正确版本。
第五步:打开 daed 面板
刷新路由器后台(LuCI),左侧菜单出现 服务 → daed(或 daed 独立入口),点进去就是面板。
💡 首次打开如果是英文界面,面板里有语言切换;中文包已随
.run装好,切到「简体中文」即可。
第六步:绑定网络接口(最关键的一步)
进入面板的 Config(配置)→ global(全局),设置接口与节点检查 DNS:
⚠️ 绑错接口 = 不通或回环,这是首次配置最容易翻车的地方。不确定 WAN 口名的,在路由器跑
ip route | grep default,dev后面那个就是真实出口网卡名。
第七步:导入订阅(机场 + 住宅)
⚠️ 两个订阅都必须是 base64 / v2ray / 通用格式,daed 不认 Clash(YAML)订阅——粘 Clash 链接会一个节点都拉不到。
进 Subscription(订阅),把两条链接分别加进去、各打一个 tag,保存更新,节点自动拉下来:
💡 只有 Clash 链接时,用 subconverter 转 base64 再填:
https://<subconverter>/sub?target=mixed&url=<URL编码后的clash链接>(target=mixed即 base64 通用格式;公共实例能看到你的节点、慎用)。
第八步:建策略组 + 配分流与 DNS
本期核心。两个订阅都进来后,建两个组、写一套分流规则、配一段防泄漏 DNS。
1. 两个策略组(Group 页,按订阅 tag 过滤):
2. 分流规则(Config → 路由,进阶模式)——一句话:AI/社交 → 住宅 residential,其余境外 → 机场 proxy,国内直连:
# —— 系统进程白名单 ——
pname(NetworkManager, systemd-resolved, dnsmasq, systemd-networkd, chronyd, ntpd,dhcpcd) -> must_direct
dip(geoip:private) -> direct
dport(53) && !dip(223.5.5.5, 119.29.29.29, 114.114.114.114,180.184.1.1) -> proxy
# —— AI:走住宅,必须放最前 ——
domain(geosite:openai) -> residential
domain(suffix: anthropic.com, suffix: claude.ai) -> residential
domain(suffix: gemini.google.com, suffix: ai.google.dev, suffix: aistudio.google.com, suffix: generativelanguage.googleapis.com, suffix: notebooklm.google.com, suffix: deepmind.google) -> residential
domain(suffix: x.ai, suffix: grok.com) -> residential
domain(suffix: perplexity.ai) -> residential
domain(suffix: cursor.com, suffix: cursor.sh) -> residential
domain(suffix: codeium.com, suffix: windsurf.com, suffix: windsurf.ai) -> residential
domain(suffix: huggingface.co, suffix: hf.co) -> residential
# —— AI + 社交:走住宅,必须放在国内 IP 规则之前 ——
domain(geosite:twitter) -> residential # 已含 x.com
domain(geosite:facebook) -> residential
domain(geosite:instagram) -> residential
domain(geosite:whatsapp) -> residential
domain(geosite:tiktok) -> residential
domain(geosite:linkedin) -> residential # 登录强检测
domain(geosite:reddit) -> residential
# —— 个人特殊 ——
domain(geosite:youtube) -> residential
# —— 国内直连 ——
domain(geosite:apple-cn) -> direct
domain(geosite:apple) -> direct # 国际 Apple 服务国内能直连
domain(geosite:cn) -> direct
dip(geoip:cn) -> direct
# —— 海外大流量留机场,省住宅带宽 ——
domain(geosite:netflix,geosite:disney,geosite:github,geosite:telegram) -> proxy
fallback: proxy💡 ① AI/社交两行必须在
geoip:cn之前,否则 AI 域名解析到国内 CDN IP 会被判直连、泄漏你家 IP。②fallback用冒号、不是箭头。③geosite:meta报错就换geosite:facebook, geosite:instagram。④ 苹果/微软国内白名单等细分行可按需补,不影响主干。
3. DNS 防泄漏(Config → DNS,进阶模式)——国内域名走阿里、境外走 googledns 且跟代理出隧道,ISP 看不到境外解析:
upstream {
alidns: 'udp://223.5.5.5:53'
googledns: 'tcp+udp://8.8.8.8:53'
}
routing {
request {
qtype(AAAA) -> reject
qname(geosite:cn) -> alidns
fallback: googledns
}
response {
upstream(googledns) -> accept
ip(geoip:cn) && !qname(geosite:cn) -> googledns
fallback: accept
}
}💡 这段和分流里的
dport(53)规则互为双保险。googledns必须用 IP(8.8.8.8),不要用dns.google域名,也不要换 DoH。
第九步:启动 daed 并验收
回面板首页点 Run / 启动,状态变 running、节点栏刷出延迟数值,说明 eBPF 已加载、代理在跑。然后做四项验收:
延迟探测:面板里点节点测延迟,有正常毫秒数(不是 timeout)。
查出口 IP:访问 ip.net.coffee,出口 IP 是机场节点 IP、不是你家宽带 IP。
AI / 社交走住宅:打开 ChatGPT / Gemini 能正常登录、不弹「unusual activity」/区域限制 → 住宅出口生效。想确认 IP,临时把
ip.net.coffee也加进住宅规则,看到的应是住宅 IP。查 DNS 泄漏:访问 browserleaks.com/dns 或 dnsleaktest.com,列出的 DNS 服务器是境外解析商、不含你家 ISP / 国内运营商 DNS → 没泄漏。
常见问题
装完 daed 启动不了,提示 eBPF / BTF 加载失败
原因:内核缺 BTF,或 vmlinux-btf 模块和当前内核版本对不上。iStoreOS 官方固件默认不带 BTF,全靠 .run 里那份匹配的 vmlinux-btf 补齐。
解决:
跑
uname -r拿到完整内核号,回第二步确认下载的包是 24.10 + 正确架构,版本号要和内核对得上(至少大版本 6.6 一致)。升级过固件 / 换过内核后 daed 突然失效 → 是新内核和旧 vmlinux-btf 不匹配了,重新下当前内核对应的
.run重装一遍。
iStoreOS 还是 22.03 / 内核 5.15,能装吗
原因:dae 绑定 lan/wan 接口要求内核 ≥ 5.17,5.15 不满足。
解决:升级到 iStoreOS 24.10.x(内核 6.6.x)。这是 daed 能跑的最低基线,没有捷径。
装了 daed,原来的 OpenClash / PassWall 还开着
原因:多个透明代理 / 防火墙重定向会互相打架,流量被抢、出现回环或时通时断。
解决:同一时间只跑一个代理后端。装 daed 前先停掉并禁用 OpenClash / PassWall(关掉开机自启),只留 daed。
机场订阅填进去拉不到节点
原因:daed 只认 base64 / v2ray / 通用订阅,不认 Clash(YAML)订阅;另外 daed 是直连去拉订阅,机场域名在路由器上不通也会拉空。
解决:
先在机场后台换成名字带 v2ray / 通用 / base64 的订阅链接重粘一次——最常见就是这条没选对。
只有 Clash 链接时,用 subconverter 转 base64:
https://<subconverter>/sub?target=mixed&url=<URL编码后的clash链接>。还拉不到,SSH 进路由器直连测一下:
curl -sL -A "v2rayN/6.45" "<你的订阅链接>" | head -c 300——出现vmess:/// base64 乱码 = 格式对;出现proxies:YAML = Clash 格式(去转);超时 / 证书错 = 机场域名直连不通,换备用域名或自建 subconverter。
daed 和 OpenClash 到底选哪个
原因:两者定位不同。daed(eBPF 内核态)省 CPU、延迟低、直连更纯粹,但挑内核、概念新;OpenClash/PassWall 生态成熟、教程多、几乎不挑内核。
解决:软路由内核够格(24.10)、想要更低占用就上 daed;图省事、要海量现成规则就留 OpenClash。本期演示的是前者。