V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mouyase
V2EX  ›  宽带症候群

探讨两台软路由实现出国网络分流的最佳方案

  •  
  •   mouyase · 2024-04-24 12:01:16 +08:00 · 4158 次点击
    这是一个创建于 383 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前本人家中的用法

    • iKuai 爱快软路由(双网口)

    负责拨号,DHCP 服务,Docker 部署 AdguardHome

    • OpenWRT(单网口)

    负责跑 ShellClash

    目前的网络配置是,iKuai 爱快软路由中,然后设置 DHCP 默认 DNS 为 AdguardHome 。

    将需要出国的 IP 添加到列表,设置该列表 IP 的下一跳网关到 OpenWRT 。

    OpenWRT 设置旁路模式,网关为 iKuai 爱快软路由,DNS 为 AdguardHome 。

    目前实现的效果

    如果 OP 的 Clash 出现故障导致网络无法连通,网关下一跳失败,网络会自动从旁路网关转回本机,于是不会导致断网 如果 OP 的 Clash 正常服务,则可以通过下一跳直接走到旁路网关,通过旁路网关再连接到互联网,实现出国

    目前遇到的问题

    • 首先是走了旁路网关,会导致带宽劣化

    千兆带宽下,正常应该是可以公网下行带宽跑到 945Mbps ,但是走了旁路网关目前只能跑到 600Mbps-700Mbps 之间。

    • 其次是 Nat 状态异常

    目前 iKuai 爱快软路由是开启了 FullCoreNat 全锥形 Nat 的,在没有使用旁路网关的情况下,是非公网 IP 下的最佳 NAT 形式(Nat1),对于 BT 下载,网游联机等具有很大的帮助。但是走了旁路网关之后再测试就会变成 Nat2 。

    理想状态

    • 国内带宽不劣化(国内带宽跑满千兆)
    • 保证 Nat1
    • 可以使用 AdguardHome 做去广告
    • 国内外网络分流,非出国不走代理,不使用海外 DNS 解析
    • 出国离线后网络国内网络不会阻断
    • 可以异地组网(打洞),实现在公网使用本地服务

    不知道诸位坛友们有没有什么更加优秀的方案,欢迎探讨

    25 条回复    2024-04-27 10:06:02 +08:00
    dford
        1
    dford  
       2024-04-24 12:06:36 +08:00
    1,2 去掉旁路由就行了
    3 是它本来就有的功能吧
    4 用 felix on mars 的域名列表分一下流
    5 写个脚本周期性检测一下
    mouyase
        2
    mouyase  
    OP
       2024-04-24 12:25:39 +08:00
    @dford 去掉旁路网关的情况有什么更优秀的方式来做出国吗?
    A1188
        3
    A1188  
       2024-04-24 12:45:47 +08:00 via Android
    爱快多 WAN ,然后其中一个 WAN1 只走国内流量,另一个 WAN2 口就走梯的。。。爱快的 Docker 里跑个 ADG ,爱快 DNS 设置里的 DNS 就填成 ADG 的,实现域名分流,国内域名用国内 DNS ,国外域名用国外 DNS 。然后跑梯子的路由就直接插 WAN2 口就行,就算跑梯的路由挂掉,流量会自己切到 WAN1 的,不影响正常上网。。。
    A1188
        4
    A1188  
       2024-04-24 12:46:50 +08:00 via Android
    @A1188 也不会影响网络的 NAT 类型
    huihuilang
        5
    huihuilang  
       2024-04-24 13:34:32 +08:00
    我旁路由千兆宽带可以跑差不多 900M 。。。顺便说一下 900M 是跑日本小鸡的速度,跑国内测速点其实也差不多,900M+,懒得去折腾了
    povsister
        6
    povsister  
       2024-04-24 14:07:57 +08:00
    你这个旁路使用方式是 !CHNRoutes 固定路由模式(即常说的大陆 IP 白名单机制),属于比较初级的旁路模式。

    再来讲问题
    > 首先是走了旁路网关,会导致带宽劣化
    旁路性能取决于旁路由本身,无法更改,只有两个优化办法:
    * 优化路由选择策略,做到必须走旁路的情况下,再去承担这个性能损耗
    * 旁路软件使用 dae 这种带直连转发加速的代理实现(但是需要额外注意直连流量可能导致路由环路问题)

    > Nat 状态异常
    解决方案只有一个,优化路由策略,能不走旁路就不走旁路。
    否则你只能信任代理软件的承诺,比如 dae 和 xray 都承诺支持 FullCloneNAT

    理想的旁路由模式应该是 DNSRoute ,即 FakeDNS 的优化版,做到全真 IP 。
    放弃使用!CHNRoutes 固定路由,转而使用基于域名的 DNSRoute 。可以看这位大佬的帖子,很详细了。t/1034955
    dont39
        7
    dont39  
       2024-04-24 14:18:46 +08:00
    paopaogateway+paopaodns, 别人整合好的 fakeip 方案,不用折腾太多东西
    x86
        8
    x86  
       2024-04-24 14:21:18 +08:00
    搜爱快自定义运营商 分流方案
    mouyase
        9
    mouyase  
    OP
       2024-04-24 14:52:19 +08:00
    @A1188 这种是不是需要有多条宽带入户呀
    vcn8yjOogEL
        10
    vcn8yjOogEL  
       2024-04-24 15:01:43 +08:00
    主路由用 BGP CN 表+内网 IP 表做 IP 分流, 或者代理网关接 2.5G 口用 geoip 分流(这样更简单, 但所有流量都会绕, 还有 NAT 问题)
    部分需要直连的域名另开一个 set 设置直连, 再设置超时防止过期规则滞留
    建议自己写 nft, mangle_prerouting 匹配入口设备后跳进自己写的分流链就行了, fw4 的 gui 配置功能不全

    AGH 的 UI 不是给大批域名规则设计的, 要么自己用脚本生成要么在后面加一层, 记住不要开多层缓存

    部分行为怪异的软件可以用代理本身提供的 FakeIP DNS 处理, 例如 Steam 似乎只要连接中断就会回退到离线模式, 此时用 FakeIP 可以骗过它
    mouyase
        11
    mouyase  
    OP
       2024-04-24 15:10:24 +08:00
    @A1188
    @dont39
    @x86
    @povsister

    各位说的方案都在看了,受益匪浅了属于是,不过看起来都需要研究验证一阵,估计要再等好多天才能有结果了(
    A1188
        12
    A1188  
       2024-04-24 18:40:48 +08:00
    @mouyase 宽带能多播就行
    Labope03
        13
    Labope03  
       2024-04-24 19:06:56 +08:00
    问一下 主路由直接用 OP 不好吗
    主路由上开 adguardhome 和 clash
    所有问题都解决了
    putaosi
        14
    putaosi  
       2024-04-25 00:29:06 +08:00 via Android
    @mouyase #11 试试我的方案
    mouyase
        15
    mouyase  
    OP
       2024-04-25 09:44:58 +08:00
    @Labope03 直接用 OP 加 Clash ,Clash 会接管所有网络连接,如果 Clash 配置错误挂掉就会导致直接断网,DNS 也会失灵,而且 Nat 会被降级。直接用 OP 当主路由不是解决所有问题的办法,而是最简单但是问题最多的办法。
    VwEI
        16
    VwEI  
       2024-04-25 10:02:05 +08:00
    爱快多 WAN+域名分流 或者 端口分流+非国内跳 openwrt
    zbatman
        17
    zbatman  
       2024-04-25 10:59:59 +08:00
    爱快装 mosdns ,国内外分流,国内走 adguardhome ,国外指向 clash 的 dns ,然后加静态路由 fake-ip 段指向 clash
    linhu66
        18
    linhu66  
       2024-04-26 11:02:12 +08:00
    @mouyase 电信宽带裸连出国
    mouyase
        19
    mouyase  
    OP
       2024-04-26 16:20:27 +08:00
    @linhu66 上海电信精品网?
    mouyase
        20
    mouyase  
    OP
       2024-04-26 16:21:00 +08:00
    @zbatman 这个方案听起来和 PaoPaoGateWay 是相同的操作
    zbatman
        21
    zbatman  
       2024-04-26 16:25:45 +08:00
    @mouyase 没了解过这个东西,可能是配置更简单了
    mouyase
        22
    mouyase  
    OP
       2024-04-26 16:46:16 +08:00
    @zbatman 是的,本质上是把配置简化了的一个方案
    h9VZ3hilI68DVl36
        23
    h9VZ3hilI68DVl36  
       2024-04-26 17:58:33 +08:00
    @zbatman #17 有教程吗
    mouyase
        24
    mouyase  
    OP
       2024-04-26 18:36:44 +08:00
    @hitoto 感觉老哥说的已经相当于教程了……你要是搞不定可以试试上面说的 PaoPaoDNS 和 PaoPaoGateWay
    zbatman
        25
    zbatman  
       2024-04-27 10:06:02 +08:00 via Android
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:51 · PVG 02:51 · LAX 11:51 · JFK 14:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.