关于 openwrt 的域名分流问题的一个想法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
linuxgo
V2EX    OpenWrt

关于 openwrt 的域名分流问题的一个想法

  •  
  •   linuxgo 2022-12-14 15:02:16 +08:00 3751 次点击
    这是一个创建于 112 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前一直在硬路由上折腾 openwrt ,每次升级固件都要断网,还有可能新固件不稳定要死机,重启等,如果家人在看电视,上网都会受影响。
    我现在想的是有没有 openwrt 上可以分流域名到不同网关的软件,比如国内的就直接从硬路由发到外网,而国外的域名就转发到软路由上经过处理后再发到外网。
    这样即使升级软路由上的固件,国内的域名还是直接从硬路由就可以到外网,不会影响看电视直播和国内网站的上网路径。
    我看现在一般都是用 pw ( clash )+ad 或者 pw+smartdns 这种方式。不知有没有只其他根据域名进行分流的软件可用呢?功能如下图所示
    13 条回复    2022-12-20 14:01:45 +08:00
    linuxgo
        1
    linuxgo  
    OP
       2022-12-14 15:02:45 +08:00

    功能就如图片中所示
    Kinnice
        2
    Kinnice  
       2022-12-14 15:15:07 +08:00   1
    固件别天天升级,就锁死一个就得了。
    再来说说方案
    目前我在某处的网络是这样

    1. 主路由,上面跑着 adguardHome 导入了一份国内常用域名使用 119.29.29.29 解析,默认使用 192.168.100.254 (旁路网关)解析,并设置静态路由 198.18.0.0/16 -> 192.168.100.254
    2. 旁路上运行着 clash ,使用 fake-ip 模式,上游 DNS 使用 dot/doh ,并监听 53 端口

    结果:

    国内的域名 /纯 IP 直接会返回正常的 DNS 解析,直接从主路由出去
    国外的域名会返回由 clash 提供的 fakeip,经过静态路由到旁路上处理

    缺点:
    如果是纯国外 ip 是走不了代理的,但是你要的不就是域名分流吗:)
    Kinnice
        3
    Kinnice  
       2022-12-14 15:21:31 +08:00
    https://imgur.com/a/BP7ksgn

    AdguradHome 需要直接改 upstream_dns_file 这个字段为你的分流 DNS 文件的路径
    linuxgo
        4
    linuxgo  
    OP
       2022-12-14 15:32:01 +08:00
    固件当然不可能天天升级,只是有时候看到有些新功能或者新思路想试试才会刷新固件,如果能实现域名分流,主路由的固件基本就不用动了
    Dream4U
        5
    Dream4U  
       2022-12-14 16:15:51 +08:00
    现在用的主 ROS+旁 OP 方案,国外地址走 OP ,国内 ROS 直出,非常稳定。
    linuxgo
        6
    linuxgo  
    OP
       2022-12-14 16:25:44 +08:00
    @Socrazy 有看到网上有相关的介绍
    adoal
        7
    adoal  
       2022-12-14 16:35:06 +08:00   1
    dnsmasq-full 包根据目标域名给解析出来的 ip 打 ipset ,然后防火墙规则里对指定的 ipset 做 mangle 配合 ip rule 走路由规则

    前一半自己搜搜,目标域名还有 gfwlist2dnsmasq 这个工具可以用来生成。后一半大体可以参照这篇 https://oogami.wordpress.com/2015/05/31/linux-%E7%AD%96%E7%95%A5%E8%B7%AF%E7%94%B1%E4%B8%8E%E5%A4%9A-vpn-%E5%B9%B6%E5%AD%98%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/

    不过照抄是不行的。
    adoal
        8
    adoal  
       2022-12-14 16:37:02 +08:00
    看了一下,我当年为了搞这事收藏的几篇文章(包括 OpenWRT 和 EdgeRouter 上的)都失效了……
    pymumu
        9
    pymumu  
       2022-12-15 09:26:03 +08:00
    https://github.com/pymumu/smartdns/releases/tag/feature-dns-forwarding
    用用看看?记得配置服务器组和 ipset/nftset
    abc8678
        10
    abc8678  
       2022-12-15 09:33:40 +08:00 via Android
    平时粘贴教程来操作,直到 iptables 消失的时候,一堆需要它的教程派不上用场了
    Junichi
        11
    Junichi  
       2022-12-15 10:41:00 +08:00
    我的是 双 openwrt 弱电箱一个小娱 c5 编译一个最小固件,负责拨号,dhcp 和 ddns ,稳定为主。

    不翻墙的设备网关就默认为小娱 c5 ,默认 dns 是旁路由( AdguradHome )和腾讯 119 ,翻墙设备网关就分发旁路由地址为网关

    旁路由专门负责翻墙和 dns ( AdguradHome upstream_dns_file 分流,默认 https://doh.pub 解析 黑名单就走 https://dns.google

    所以不管怎么折腾也只是影响到自己。
    churchmice
        12
    churchmice  
       2022-12-16 09:56:25 +08:00
    根据域名分流用 dnsmasq-full,遇到墙外域名就用 Ipset 打标签,然后 iptables 根据标签转发不同的目标地址就行了
    linuxgo
        13
    linuxgo/strong>  
    OP
       2022-12-20 14:01:45 +08:00
    找了很多文章,看来在 op 下是没有什么好办法了,准备在虚拟机上装个 ros 学习下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4719 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:54 PVG 11:54 LAX 19:54 JFK 22:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86