yyysuo

V2 上关于 dae(大鹅)(ebpf)的讨论还是比较少啊,完美的旁路科学方案了吧?

  •  
  •   yyysuo · Oct 17, 2023 · 22815 views
    This topic created in 1114 days ago, the information mentioned may be changed or developed.
    步骤:
    1:装个 debian
    2:装个大鹅
    3:添加节点或者订阅,启用大鹅,debian 成为透明旁路网关
    4:主路由下发大鹅的 ip 作为网关和 dns

    大鹅电报群: https://t.me/daeuniverse https://t.me/MetaKernel

    跑分: https://docs.google.com/spreadsheets/d/1UaWU6nNho7edBNjNqC8dfGXLlW0-cm84MM7sH6Gp7UE/edit?pli=1#gid=1965963111

    安装命令: https://github.com/daeuniverse/daed/blob/main/docs/getting-started.md

    github: https://github.com/daeuniverse/daed/releases
    72 replies  •  2026-01-11 17:28:56 +08:00
    Fish1024
    Fish1024
    Oct 17, 2023
    1
    1. 刷个 openwrt
    2. 添加订阅
    3. 主路由下发 openwrt 的 ip 作为网关和 dns

    比这个大鹅简单吧?
    SkywalkerJi
    SkywalkerJi
    Oct 17, 2023 via Android
    2
    和 openwrt 比有什么优势?
    yyysuo
    yyysuo
    OP
    Oct 17, 2023
    3
    @SkywalkerJi ebpf ,据说对国内的速度影响最小,约等于直连,应该跟 openwrt 比,这是旁路,原来的主路由可以不动,把主路由上的科学关了就好。
    yyysuo
    yyysuo
    OP
    Oct 17, 2023
    4
    不应该跟 openwrt 比。
    sarices
    sarices
    Oct 17, 2023
    5
    如何使用现有 clash 分流规则?
    yyysuo
    yyysuo
    OP
    Oct 17, 2023
    6
    @sarices 默认 geosite 分流吧,可以自己写分流规则,也可以再装一个 debian ,裸跑 clash ,clash 开个 ss 服务端,供大鹅使用,套娃。
    https://github.com/daeuniverse/dae/discussions/81
    icetea66
    icetea66
    Oct 17, 2023
    7
    这种方案客户端还是要手动改网关才行吧?
    yyysuo
    yyysuo
    OP
    Oct 17, 2023
    8
    @icetea12138 openwrt 可以直接下发大鹅机的 ip 为网关和 dns 。
    设置 DHCP 的附加选项,例如设定 "6,192.168.2.1,192.168.2.2" 表示通告不同的 DNS 服务器给客户端。
    tty228
    tty228
    Oct 17, 2023
    9
    OpenWrt 也可以装 dae 啊
    Archeb
    Archeb
    Oct 17, 2023
    10
    确实是一个很先进的解决方案。

    但它主要解决的是性能问题,而这一点在其主要受众的网络环境中不明显或者有更多更简单的 workaround 。对已经有现存方案的环境来说,去改用 dae 的动力不大;但如果是新部署的环境的话,我会愿意试用一下它。
    OLOrz
    OLOrz
    Oct 17, 2023
    11
    还是感觉走 bgp 或者 ospf 按路由分流比较好
    a90405
    a90405
    Oct 17, 2023
    13
    看了下性能测试,直连的 IP 压根就不应该进代理程序,用 nftables 直接绕过。
    a90405
    a90405
    Oct 17, 2023
    14
    @yyysuo 旁路,影响更小了,旁路拓扑,下载流量几乎不经过旁路,直连性能优势更是无从谈起。
    a90405
    a90405
    Oct 17, 2023
    15
    旁路还有一个很大的死穴,就是 ipv6 的网关问题很麻烦。
    Donahue
    Donahue
    Oct 17, 2023
    16
    只有直连状态下性能有很大提升,proxy 模式提升很小,还是 openwrt+openclash 省事
    jsq2627
    jsq2627
    PRO
    Oct 17, 2023 via iPhone
    17
    感觉侵入性有点大

    像 openclash 等本身也支持用 nftable 直接把大陆 ip 绕过,直连流量一样不经过代理程序。
    mohumohu
    mohumohu
    Oct 18, 2023
    18
    静态路由+FAKEIP ,国内直连根本就不经过旁路。https://github.com/kkkgo/PaoPaoGateWay
    ShuWei
    ShuWei
    Oct 18, 2023
    19
    eBPF 确实有其优势,避免了部分不必要的流量复制成本,但如果不是大流量场景,节约的那点性能其实没多少意义,侵入系统更底层,很担心作者的代码水平啊,clash Premium core 其实也增加了对 eBPF 的支持
    yyysuo
    yyysuo
    OP
    Oct 18, 2023
    20
    @mohumohu 这个跟 openclash 这种方案的优势在哪里,我觉得没啥区别呢,更复杂一些。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    21
    你们的主路由能下发旁路由的 ip 和网关吗?我的 tp 不行,开 dhcp 就抢了。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    22
    @mohumohu 你这个其实没什么区别的,旁路由主要是主设备可以是任意的设备,你这个只不过是把功能拆开了。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    23
    @a90405 是的,我一直没有配置好,现在 ipv6 无法使用。
    jdjingdian
    jdjingdian
    Oct 18, 2023
    24
    我也在做 eBPF 相关的东西,这个玩意感觉研究的人确实少。

    dae 用 eBPF 一个很重要的点应该还是性能上的提升吧(针对直连的性能),非直连的,他的实现方案是通过 xdp 再把数据扔回来,再从用户态走代理出去。

    目前在 Ubuntu 和 OpenWrt-23.05 ( MT7981 )上部署成功,但是 OpenWrt 启动加载 eBPF 到内核的速度比较慢
    yyysuo
    yyysuo
    OP
    Oct 18, 2023
    25
    @SenLief #21 被谁抢了?我的 xdr 5480 ,在 dhcp 中可以直接写网关和 dns 啊,你局域网里面还有其它设备启用了 dhcp ?
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    26
    @yyysuo 正常应该是由旁路由下发 ip 和网关的,但是现在都是由 5480 下发的。
    yyysuo
    yyysuo
    OP
    Oct 18, 2023
    27
    @jdjingdian 我主路由 op ,搞一个大鹅 vm ,搞了一个 clash vm ,都是 debian ,clash 开不加密的 ss 的服务端给大鹅 vm 使用。主路由下发大鹅 ip 为网关。在 op 上开 mosdns ,mosdns 国内直接丢给 223.5.5.5 ,国外扔给 clash 的 7874 解析,返回 fakeip ,然后大鹅网关根据 fakeip 来分流,fakeip 丢给 clash ,其它直连。
    yyysuo
    yyysuo
    OP
    Oct 18, 2023
    28
    @SenLief #26 晕,为什么要让旁路由下发呢,主路由下发就行啊。
    jdjingdian
    jdjingdian
    Oct 18, 2023
    29
    @yyysuo 你的操作太复杂了(我小白 哈哈哈
    之前也想研究 mosdns ,但感觉头大

    我目前是这样设计的
    主路由:RouterOS 旁路由:OpenWrt + dae

    openwrt 通过 ospf 把非中国的路由表同步到 routerOS ,非中国路由表走 openWrt ,中国路由表直接出去
    RouterOS 和 OpenWrt 通过 VRRP 共享一个 ip ,openwrt 为主,DNS 指向这个共享 IP

    不过这样弄 DNS 肯定不是很干净就是了,以后慢慢研究改进
    yyysuo
    yyysuo
    OP
    Oct 18, 2023
    30
    @jdjingdian #29 你这才是大佬好吧,你搞的这一套,哪一个我都玩不转。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    31
    @yyysuo 主路由下发的网关不是旁路由的,还需要自己手动改。
    mohumohu
    mohumohu
    Oct 18, 2023
    32
    @yyysuo 不需要改主路由网关,真正国内直连啊,你既然在意直连性能为啥不直接直连呢,节点挂了甚至旁路由电源拔了都不会影响正常上网。
    mohumohu
    mohumohu
    Oct 18, 2023
    33
    @SenLief 不需要改主路由网关,旁路由电源拔了不影响上网。
    dude4
    dude4
    Oct 18, 2023
    34
    在用 openclash+fake ip 旁路由,跑在树莓派上,开了 IPV6 ,目前已解决的问题:
    1.IPV6 DNS ,需要在主路由(也是 openwrt )关掉 V6 DNS 通告,这样只通告 V4 DNS ,可以解决部分网站 V6 优先的问题,譬如 engadget ,这样做是因为目前好像 openwrt 用的 ODHCPD 无法单独设置 V6 DNS ,或者没找到好方法
    2. 主路由用 dhcp opition+mac 方式给需要的设备通告网关和 V4 DNS ,客户端设备上设置使用设备 mac 码就可以固定分配局域网 IP 和网关,不需要梯子的设备就直连,这样就各取所需了。主路由梯子还是不适合复杂使用的情况,当然我不玩游戏,可能需求不同。

    感觉和这个实现的差不多,这个是又另外造了个轮子?
    dude4
    dude4
    Oct 18, 2023
    35
    看了一下介绍,貌似这个轮子还是和 openclash 实现的不一样,是内核级别的,等子弹再飞一会儿, 如果好用可以试试。
    JensenQian
    JensenQian
    Oct 18, 2023 via Android
    36
    有点牛,不过旁路由好麻烦
    mohumohu
    mohumohu
    Oct 18, 2023
    37
    @dude4 我看了下文档描述是这样的:
    ```
    域名通过劫持 DNS 请求,将 DNS 请求的域名与所查 IP 进行关联来得到。尽管这种方式有一些问题:

    可能会出现误判。例如需要分流到国内和国外的两个网站拥有同一个 IP ,且在短时间内同时被访问,或浏览器有 DNS 缓存。
    用户的 DNS 请求必须通过 dae 。例如将 dae 设为 DNS ,或在 dae 作为网关的情况下使用公共 DNS 。
    但相比其他方案,这种方案已经是较优解了。例如 Fake IP 方案存在无法通过 IP 分流且存在严重的缓存污染问题,而域名嗅探方案存在只能嗅探 TLS/HTTP 等流量的问题。实际上,通过 SNI 嗅探来进行分流确实是更优选择,但由于 eBPF 对程序复杂度的限制,以及对循环的支持不友好,我们无法在内核空间实现域名嗅探。
    ```
    我觉得这个文档说的不完全对,FAKEIP 方案就能域名和 IP 唯一对应没有误判,通过指定静态路由也是可以进行 IP 分流的,缓存污染问题也可以通过添加嗅探解决。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    38
    @mohumohu 那就需要为每一台设备单独设置网关了。
    mohumohu
    mohumohu
    Oct 18, 2023
    39
    @SenLief 不需要啊,主路由加一条 FAKEIP 的静态路由就可以了,只有分配到 FAKEIP 的域名才会走旁路。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    40
    @mohumohu 你用主路由做分流了,tp 没有这个功能我说嘛。
    mohumohu
    mohumohu
    Oct 18, 2023
    41
    @SenLief 没有静态路由还能算《路由器》吗😄
    十几年前的 tplink 还真的有这个功能
    不说别的,光猫也有啊
    mohumohu
    mohumohu
    Oct 18, 2023
    42
    不过好在新出的 tp 能刷机,特别是联发科的
    n18255447846
    n18255447846
    Oct 18, 2023
    43
    核心技术点是 eBPF 吗,有无佬哥说说。。

    旁路由就 dhcp 下发网关,不过还要配 iptables 转发流量到代理程序还是有点复杂的
    SenLief
    SenLief
    Oct 18, 2023
    44
    @mohumohu 不是,主路由没有分流的功能,你如何知道域名给旁路由呢?
    liulongquan
    liulongquan
    Oct 18, 2023
    45
    IPV6 能解决吗
    一般旁路由 IPV6 是死穴但是 IPV6 又是刚需的
    a90405
    a90405
    Oct 18, 2023
    46
    @n18255447846 这玩意运行在 netfilter 之前,用不到 iptables nftables
    mohumohu
    mohumohu
    Oct 18, 2023
    47
    @SenLief 主路由可以设置 DNS 啊,然后 DNS 可以分流
    bao3
    bao3
    Oct 18, 2023
    48
    “dhcp 下发网关” “ 设备指定网关” ,这已经不能算是透明网关了,这算是半透明网关了。
    简单来说,能在网关上搞的东西,就别用旁路由,不止是上面说的 ipv6 的问题,还有可能旁路由引起梯子瞬断。
    SenLief
    SenLief
    Oct 18, 2023
    49
    @mohumohu 硬路由很多不支持 dns 分流的,5480 就不支持的。
    mohumohu
    mohumohu
    Oct 18, 2023
    50
    @SenLief 路由器不会连 DNS 都不能自定义吧
    https://zhuanlan.zhihu.com/p/474982943

    不行还可以用光猫拨号,或者关闭主路由的 DHCP ,用自己的 DHCP 。
    SenLief
    SenLief
    Oct 18, 2023
    51
    @mohumohu 这个好像没什么意义吧,他还是要全部过旁路由的。比较理想的还是主路由 dns 分流,直连直接出,代理走旁路由。
    mohumohu
    mohumohu
    Oct 18, 2023
    52
    @SenLief 效果就是你说的比较理想的这样的,主路由设置指定 DNS 和静态路由,DNS 只有需要分流的域名才解析为 FAKEIP ,FAKEIP 静态路由到旁路由,实际国内流量不需要经过旁路由。
    R4rvZ6agNVWr56V0
    R4rvZ6agNVWr56V0
    Oct 18, 2023
    53
    感觉对于“旁路科学”没啥意义,kernel 转发那点延迟和吞吐 在中国电信的 QoS 策略下显得苍白。
    SenLief
    SenLief
    Oct 18, 2023 via iPhone
    54
    @mohumohu dns 分流由谁负责?
    yyysuo
    yyysuo
    OP
    Oct 19, 2023
    56
    @dude4 #34 op 如何关闭 v6 的 dns 通告?我目前填的是 br-lan 的 fe80 ,如果一个都不填,默认下发的 dns 好像是 br-lan 的公网 ipv6 地址。
    ambition117
    ambition117
    Oct 19, 2023
    57
    真的要性能的话,搞个支持 ospf 的三层交换机,线速转发国内、国外的流量到不同网关...
    dude4
    dude4
    Oct 19, 2023
    58
    @yyysuo 网络-接口-你的 lan 接口-编辑-DHCP 服务器-IPV6 设置
    取消“本地 IPV6 DNS 服务器”的钩,然后这个选项上面的“通告 IPV6 DNS 服务器”留空,重启 odhcpd 和 dnsmasq 即可。
    这样 windows 和安卓试了只显示 V4 DNS ,V6 DNS 是空白,但不影响 AAAA 解析
    yyysuo
    yyysuo
    OP
    Oct 19, 2023
    59
    @dude4 #58 能把/etc/config/dhcp 的 config dhcp 'lan'部分粘一下吗,我的 openwrt 版本没有本地 IPV6 DNS 服务器这个勾,我知道有些版本是有的。
    qwvy2g
    qwvy2g
    Oct 19, 2023
    60
    有没有一种不需要修改内网网关的透明网关?有的说法是透明网桥。已经测试过在同一个网段内用 iptables 命令劫持是无效的,仔细分析后发现这些设备直接是二层的。openwrt 上的 oc 上倒是很容易能实现,可是想在 openwrt 上的其他软件上也实现类似功能。
    dude4
    dude4
    Oct 19, 2023
    61
    @yyysuo

    `
    config dhcp 'lan'
    option interface 'lan'
    option leasetime '24h'
    option dhcpv4 'server'
    option dhcpv6 'server'
    option ra 'server'
    list ra_flags 'managed-config'
    option start '100'
    option limit '150'
    option dns_service '0'
    `
    yyysuo
    yyysuo
    OP
    Oct 20, 2023
    62
    @dude4 #61 感谢,我是有状态+无状态,没有取消按钮,不知道怎么改配置文件才能不下发 ipv6 的 dns
    config dhcp 'lan'
    option interface 'lan'
    option start '100'
    option limit '150'
    option leasetime '12h'
    option dhcpv4 'server'
    option dhcpv6 'server'
    option ra 'server'
    option ra_slaac '1'
    list ra_flags 'managed-config'
    list ra_flags 'other-config'
    option force '1'
    option ra_management '1'
    option ra_default '1'
    list dns 'fe80::20c:29ff:fe8b:e868'
    list dhcp_option '6,10.10.10.1'
    list dhcp_option '3,10.10.10.2'
    yyysuo
    yyysuo
    OP
    Oct 20, 2023
    63
    @mohumohu #55 大佬,我自己主路由 op ,旁路装了个 debian 跑 clash ,主路由上用 mosdns 分流了 dns ,国内直接走公网了,国外部分扔给 clash 的 dns ,返回 fakeip ,然后主路由添加路由表让 fakeip 走 clash vm 。现在遇到 2 个问题,一个是 netflix 提示代理了,我怀疑是 ipv6 或者 netflix 有直连的 ip 的问题,看了一下 netflix 的 ip 段,好多,静态路由加得太多了;另外一个是 udpxy 或者 msd_lite 竟然换台卡顿了,是跃点的原因吗?
    mohumohu
    mohumohu
    Oct 20, 2023
    64
    @yyysuo 你 mosdns 可以让他 netflix 的域名不返回 IPv6 结果吧,我觉得可能是 IPv6 的问题。也可能是没有分流到对应域名,你可以开个全局抓一下域名。udpxy 或者 msd_lite 我感觉应该没什么关系,可能是你主路由负载比较高。
    dude4
    dude4
    Oct 22, 2023
    65
    @yyysuo 你的源码是什么?官方还是 lean 的? lean 的源码基于 openwrt lede ,和官方有些不一样,界面也自己魔改了很多。
    yyysuo
    yyysuo
    OP
    Oct 23, 2023 via iPhone
    66
    @dude4 lean 的源码,用 fe80 也不是不能用,并且我发现如果 ipv6 的 dns 没有的话,ipv6 的测试就过不了 。 看了各位大佬的回复,也试了一下 fakeip 网关,体验也不错,实现了真正的透明网关 。
    步骤也非常简单,就是装个 debian+clash fakeip ,主路由上装 mosdns ,国内直连 国外丢给 clash dns 解析成 fakeip ,主路由上做静态路由,fakeip 丢给 debian 的 clash 处理即可,需要特殊处理的是电报和奈飞,把他们的 ip 段也添加到静态路由丢给 clash 处理
    willwon1
    willwon1
    Oct 25, 2023
    67
    家里放个手机 手机上开个小火箭 我觉得做旁路由也没啥问题 还稳定
    Karmylr
    Karmylr
    Nov 26, 2023
    68
    @dude4 lean 的就是官方 openwrt 的 18.06 分支改的
    teadi
    teadi
    Mar 31, 2024
    69
    有个问题,我原本是 copilot 》 openclash 》 us 。
    现在装了大鹅是 copilot 》大鹅》就直连了。
    所以是需要在大鹅里写一遍 copilot 走代理?
    bluaze
    bluaze
    Apr 25, 2024
    70
    @yyysuo #63 netflix 如果是 app 的话,有可能是 netflix 使用了自己的 dns ,绕过了系统 dns 配置,从而获得了真实 ip
    coolhuasen1
    coolhuasen1
    Aug 30, 2025
    71
    @jdjingdian 我的 openwrt 跟你一样,我不那么复杂了,daed 直接劫持 lan 跟 wan 口,用默认的规则,直接用节点。我测试了下 ipleak.net 跟一些 DNS 泄漏、国内外 IP 分流,很准。而且上香港中银跟众安也快了非常多。所以挺好的。感觉 daed 默认的分流已经挺强了。
    libregratis
    72
    今天用 Armbian Trixie 简单跑了下 daed ,主路由 RouterOS 为 Anroid 手机单独通告 DHCP Options
    优点:安装和配置都很方便,配置文件可读性高
    缺点:第一次启动时有点慢,有点像 v2rayA ,不过启动成功后,海外流媒体播放和切换都很流畅,后来发现 Android 手机 Wi-Fi 提示:已连接到设备,但无法提供互联网连接,所有国内网站均无法访问,可能是 DNS 的问题,晚点再排查
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1625 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 17:58 · PVG 01:58 · LAX 09:58 · JFK 12:58
    ♥ Do have faith in what you're doing.