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

关于国内外分流的问题请教一下大佬们

  •  
  •   Jaco3426 · 3 小时 55 分钟前 · 521 次点击

    目前使用的是 RouterOS 物理机+OSS 物理机旁路透明代理

    目前是使用 OSS 部署 PaoPaoDNS 配合 Xray 的 fakedns 进行分流,PPDNS 设置参数强制使非 CN 域名的上游 DNS 服务器为 Xray 的 DNS 入口,所有设备 DNS 设置为 PPDNS ,网关为 ROS ,ROS 将指定设备 Address-List 到 fakeip 段连接通过 PBR 到 OSS 的 Xray 的 Tproxy 入口。

    之前有试过 ROS 维护 CNIP 表通过 Socksify 或 PBR 进行分流,效果不太理想,一来不知道是当时思路不够成熟有配置错误还是其他原因,访问网页会卡顿,二来 cnip 列表很难维护,依靠网上现成不够全面的列表会导致有些应用不能使用,如某买菜 app 等,为了修复这个问题,我写了个脚本读取 OSS 脚本生成的 geosite_cn.txt (需要修改文件内容为正则表达式并将每行计数到行首,因为文件过大,ros 只支持将 60kb 以内的 txt 写入数组,需要通过 read+offset+chunk-size 读取 txt 中每一行的正则表达式),通过将/ip/dns/cache 中的 name 与正则表达式匹配,将匹配得到的 name 对应的 ip 更新进 CNIP 表以达到类似使用域名分流的效果,但是这样一来并非实时更新,二来 ros 的循环读取比对非常的久(千万级甚至更多),维护一次列表大概需要 1 分钟(我是 x86 物理机,i513500te+32g3200 频率内存),ros 好像并不能使用多核来运行脚本?(这方面并不太懂)且脚本需要不间断循环,并不能触发式运行。

    折腾了半天发现效果并不好,所以换到现在使用的这套配置,流畅不卡顿。不知是使用 fakeip 的原因还是我之前的配置有问题。但思来想去,还是比较想使用纯 realip ,但是个人认为这高度依赖域名分流,但 ros 本身并不能很好的完成这项工作。因为所有都是 xhttp 部署的节点,所以 xray 是不能换的。想请教一下各位大佬有什么新思路或者好的方案吗?

    12 条回复    2026-01-25 16:45:20 +08:00
    hackroad
        1
    hackroad  
       3 小时 23 分钟前
    你说的访问网页卡顿是你 dns 解析出来的 ip 不正确,能走国内的走到国外去了
    坦白的说 我 ip 库已经 1 年多没更新了,照样稳的不行。
    Naples
        2
    Naples  
       3 小时 2 分钟前 via Android
    Ip 分流用 bgp ,dns 分流我用的 ROS 的 l7 过滤、劫持,你也可以用第三方的
    docx
        3
    docx  
       2 小时 46 分钟前 via iPhone
    有代理还折腾什么 dns
    Jaco3426
        4
    Jaco3426  
    OP
       2 小时 43 分钟前
    @hackroad 确实是能走国内的走了国外,所以之前我也是在解决这个问题,并不是 dns 解析出来的 ip 不正确,而是这些地址他就是不在 cnip 列表里。比如叮咚买菜解析出来的 ipv6 地址他就是不在 cnipv6 表里(我把几个知名的列表都合并了),但它却在 cndomain 表里,必须通过将域名解析到 ip 添加到列表内来维护,不然连 app 都打不开。总不可能是国内的买菜软件能解析出不在国内的 ip 地址吧?事实就是这个地址并不在现成的列表当中。而维护域名比 ip 简单太多了。但之前单纯访问国外的网站也会卡(我到现在不知道哪里有问题直接放弃这个方案了)。而且我这环境比较复杂,ros 多 isp ,要做源进源出,负载均衡等等,很容易就有规则冲突还不好排查,oss 也是多网卡,写透明代理,包括回包路径之类的问题,有哪里没想到就得停下很久。
    Jaco3426
        5
    Jaco3426  
    OP
       2 小时 35 分钟前
    @Naples 方便详细说说吗?请问是 L7 过滤域名给不同的 dns 服务器吗?然后要怎么将返回的 ip 分类?还有就是 ipv6 适用吗?
    Jaco3426
        6
    Jaco3426  
    OP
       2 小时 32 分钟前
    @docx 就是为了让代理只负责需要代理的连接。主路由和旁路由各司其职。所以才想着要怎样才能在 ros 里通过域名分流。
    Ipsum
        7
    Ipsum  
       2 小时 20 分钟前 via Android
    你可以试试 mosdns ,使用 fakeip 只分流 gfw 域名到 xray 。
    Jaco3426
        8
    Jaco3426  
    OP
       2 小时 18 分钟前
    @Ipsum PPDNS 就是用的 mosdns ,现在我这套方案跟你说的基本是一样的,用着没问题,只是想问问各位大佬,有没有什么办法不用 fakeip 。
    crysislinux
        9
    crysislinux  
       2 小时 10 分钟前 via Android
    v6 不准就把 v6 的结果丢了好了
    hackroad
        10
    hackroad  
       1 小时 46 分钟前
    @Jaco3426 #4 之前折腾 ipv6 的时候确实碰到过类似情况,app 卡顿,打开网页卡顿,索性关了 ipv6. 维护 2 个库确实麻烦,不过商业库可能好点,试试商业库。
    libregratis
        11
    libregratis  
       1 小时 2 分钟前
    可以试试 daed ,之前用 ImmortalWrt 临时跑了一下,分流的效果不错
    Jaco3426
        12
    Jaco3426  
    OP
       54 分钟前
    @libregratis 请问说的是 dae 的 dashboard 吗?我没法换 dae ,现在支持 xhttp 的好像只有 xray 。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2705 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 09:39 · PVG 17:39 · LAX 01:39 · JFK 04:39
    ♥ Do have faith in what you're doing.