现在的路由器透明代理的原理都是什么?有没有基于域名的透明代理? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ech0x

现在的路由器透明代理的原理都是什么?有没有基于域名的透明代理?

  •  
  •   ech0x 2019 年 1 月 14 日 14751 次点击
    这是一个创建于 2658 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好像现在在路由器上用的通明代理,都是基于 Chinadns 来进行分流的,但这样还得自己解决 dns 污染的问题,所以我想问问现在有没有基于域名的透明代理方案,可以直接导入某著名 List 的。

    第 1 条附言    2019 年 1 月 14 日
    我想要实现的功能类似手机上的代理软件。
    软件同时接管 dns 和路由,client 向路由器发送 dns 请求,软件根据规则表判断是否要代理 dns 请求,然后根据匹配情况进行分流。
    第 2 条附言    2019 年 1 月 14 日
    clash 目前是最好的方案了。
    第 3 条附言    2019 年 7 月 23 日
    我现在用的是 Dnsmasq + ipset 的组合,但是如果不想折腾还是推荐使用 clash
    46 条回复    2019-09-17 09:56:48 +08:00
    zhaohanqing
        1
    zhaohanqing  
       2019 年 1 月 14 日 via Android
    没有啊,现在很多都是内置了 XX List 的,DNS 也是可以走 tunnel 或者 pcap 的
    lifanxi
        2
    lifanxi  
       2019 年 1 月 14 日
    dnsmasq + ipset 是不是就是你要的?
    yinheli
        3
    yinheli  
       2019 年 1 月 14 日   1
    wd
        4
    wd  
       2019 年 1 月 14 日 via iPhone
    看名字 chinadns 不是基于域名的?
    tony1016
        5
    tony1016  
       2019 年 1 月 14 日
    Chinadns 只能解决目标是对的问题,要解决路径是通的,就得靠隧道。dnsmasq + ipset 是你想要的
    yichengfzu
        6
    yichengfzu  
       2019 年 1 月 14 日 via iPhone   1
    clash
    lzvezr
        7
    lzvezr  
       2019 年 1 月 14 日 via Android
    v2ray
    hjc4869
        8
    hjc4869  
       2019 年 1 月 14 日
    可以做,不过实现方式有点丑。
    yov123456
        9
    yov123456  
       2019 年 1 月 14 日   1
    https://github.com/Dreamacro/clash clash 开 redir 跑路由器上 开 enhancemode 设置 dns 监听,然后所有 dns 请求走 clash。
    clash 就可以 dns 请求反推域名 然后走正常的域名匹配规则,支持 surge 那样的规则。
    ech0x
        10
    ech0x  
    OP
       2019 年 1 月 14 日
    @lifanxi #2
    @tony1016 #5
    Chinadns 我觉得有挺大的不稳定性啊,第一:如果国内的 DNS 返回的 fake ip 是一个国内 ip 怎么办?第二:如果国内的 DNS 返回的国外 ip 不是一个 fake ip 而是一个经过线路优化的 ip 并且和可信 dns 返回的 ip 不同怎么办?第三:如果每个地址都要经过两次 dns 查询,初次访问的性能不会受到很大的影响吗?
    lucifer9
        11
    lucifer9  
       2019 年 1 月 14 日
    v2ray 就可以啊
    ech0x
        12
    ech0x  
    OP
       2019 年 1 月 14 日
    @lzvezr #7
    @lucifer9 #11
    v2ray 我看了一下好像也只能指定 ip 分流啊,不能指定域名分流啊......是我漏看了吗?
    zbinlin
        13
    zbinlin  
       2019 年 1 月 14 日
    看到“透明代理”,还以为说的是 `transparent proxy` 呢?
    carrionlee
        14
    carrionlee  
       2019 年 1 月 14 日 via Android
    楼上不是说了么 dnsmasq + ipset
    lucifer9
        15
    lucifer9  
       2019 年 1 月 14 日
    tony1016
        16
    tony1016  
       2019 年 1 月 14 日
    @ech0x 所以 china-dnsmasq-list 是个不错的项目,clash 的 dns 机制也可以
    ech0x
        17
    ech0x  
    OP
       2019 年 1 月 14 日 via iPhone
    @tony1016 我好像一直看错了,把 dnsmasq 看成 Chinadns
    sodora
        18
    sodora  
       2019 年 1 月 14 日
    v2ray 就可以啊
    titanium98118
        20
    titanium98118  
       2019 年 1 月 14 日 via Android
    dnsmasq+ipset 就是,list 中的域名走 ss 查询
    ihciah
        21
    ihciah  
       2019 年 1 月 14 日   1
    你这个做不到啊,因为查 DNS 和连接服务器是独立的。
    你通过 A 域名(需要代理)查到了一个 ip,通过 B 域名(不需要)也查到了相同的 ip,那么问题来了,这个 ip 要代理嘛?

    所以做成路由上的透明代理不太可行。浏览器插件这种能直接拿到域名和接管权可以做到最精准的控制。
    benedict00
        22
    benedict00  
       2019 年 1 月 14 日 via Android
    clash
    Sunmxt
        23
    Sunmxt  
       2019 年 1 月 14 日 via Android
    dnsmasq+ipset
    24
        24
    24  
       2019 年 1 月 14 日 via Android
    @yov123456 2019 年了,可以用 doh 方案来代替 chinadns
    missdeer
        25
    missdeer  
       2019 年 1 月 14 日   1
    DNS 方案再次推荐一下 CoreDNS,同时奉上我自用的 Corefile 生成脚本: https://gist.github.com/missdeer/5c7c82b5b67f8afb41cfd43d51b82c2d,国内外分流解析,完全满足楼主需求,国内域名数据来自 felixonmars 的国内域名列表,国内域名用 ISP 或 114 之类的 DNS server 解析,国外域名用 OpenDNS/Cloudflare/Google DNS server 解析。
    ech0x
        26
    ech0x  
    OP
       2019 年 1 月 14 日
    @ihciah #21 可以的吧,A 域名需要代理查询到了一个 ip,代理软件缓存这个 ip 并且生成一个对应的 fake ip,然后因为代理软件是负责 dns 的,所以可以返回给 client 对应的 fake ip,client 向 fake ip 发送数据,路由把 client 发给 fake ip 的数据转发给代理软件。B 域名(不需要)也查到了相同的 ip,代理软件直接返回真实 ip。
    ihciah
        27
    ihciah  
       2019 年 1 月 14 日
    @ech0x 哦这样感觉可以做。(不过有一点点问题:
    1. 你要能抓到所有的 DNS 流量。如果用户自定义了 DNS 或者有的 app 走了 doh,虽然拿到了无污染的结果但还是连不上
    2. 恶意域名可以向你的代理列表插数据
    yov123456
        28
    yov123456  
       2019 年 1 月 14 日 via iPhone   1
    @24 clash 不依赖无污染的 dns 同时 clash 也支持 dot doh 作为上游 dns 哦

    @ech0x 这就是 clash 所实现的啊 说好几次了
    yov123456
        29
    yov123456  
       2019 年 1 月 14 日 via iPhone   1
    @ech0x 不一定要 fake ip 真实即使被污染 ip 也可以 因为翻查匹配规则后是整个 tcp 连接给 proxy 的 surge 用 fake ip 是因为没有修改默认路由
    dszhblx
        30
    dszhblx  
       2019 年 1 月 15 日 via iPhone
    想要 fan 的爽肯定要从域名解析处动手:
    存在一个域名白名单,在自己实现的 dns 服务器上,对于白名单内的域名(如 gxxglecom )走单独的上级 dns 服务器得到 ip 是 a.b.c.d。但返回给客户端的 dns 回应里把 a.b.c.d 改成 10.x.x.x 并记录下两者的映射关系。当客户端去连接 10.x.x.x 时,根据保存的映射关系用 fanQ 手段练到 a.b.c.d
    这样就实现了根据域名白名单进行 fq

    但是毕竟麻烦的是一个网站或者 app 通常要用到很多域名,把白名单配全是比较麻烦
    billytom
        31
    billytom  
       2019 年 1 月 15 日
    有没有啥办法,在 windows 10 上用 Clash 做透明代理? 现在的 Clash for win 只是最基本的 http 代理,ps4 和电视机用不到
    yov123456
        32
    yov123456  
       2019 年 1 月 15 日 via iPhone
    @billytom 把 clash 跑路由器或树莓派上 但是 clash 还不支持 udp ps4 游戏支持不了吧……
    @dszhblx 名单还好吧 机场的规则那么多
    missdeer
        33
    missdeer  
       2019 年 1 月 15 日
    @billytom tun2socks 了解一下
    q397064399
        34
    q397064399  
       2019 年 1 月 15 日
    我觉得最好的办法还是 openvpn 走国外 然后 chnroutes 走回来,用 chinadns 分流 目前效果不错
    Moofish
        35
    Moofish  
       2019 年 1 月 15 日
    @missdeer 请问有办法在梅林上安装么
    missdeer
        36
    missdeer  
       2019 年 1 月 15 日
    @Moofish 没试过,估计是可以的
    goodryb
        37
    goodryb  
       2019 年 1 月 15 日
    ss-tproxy 了解一下,dnsmasq + ipset, 客户端网关和 dns 都配置成代理服务器的 IP 即可
    brMu
        38
    brMu  
       2019 年 1 月 21 日
    @missdeer 这个也有一个问题,就是国内域名不全,当成国外域名去解析了,这样反而会慢。
    missdeer
        39
    missdeer  
       2019 年 1 月 21 日
    @brMu https://github.com/felixonmars/dnsmasq-china-list 应该包括了大部分人常用的绝大多数国内域名,如果真缺了,你也可以给作者提 issue 或 PR。而且你也可以仅仅自己改 Corefile,把缺的域名加到 except 中。这不是什么大问题。
    brMu
        40
    brMu  
       2019 年 1 月 21 日
    @missdeer 常用域名是肯定没问题的,可是尴尬的是有时很重要的域名没有包含在内,比如 12306 的某个域名,用的抢票软件显示的 IP 竟然是我的 vps 的,没办法又不好找到底是哪个域名,最后还是换回了 gfwlist 模式,然后手动添加自己需要绕路的域名,也不定是不能不访问的,有时慢的我也加进去,比如微软官网。
    birkhofflee
        41
    birkhofflee  
       2019 年 2 月 9 日 via iPhone
    @billytom Proxifier
    mattx
        42
    mattx  
       2019 年 9 月 16 日
    @ech0x 请问下,什么时候会出现 A, B 域名都解析到 IP-C,但是 A 需要代理,B 不需要代理?
    ech0x
        43
    ech0x  
    OP
       2019 年 9 月 16 日 via iPhone
    @mattx A 被投毒了。
    mattx
        44
    mattx  
       2019 年 9 月 16 日
    @ech0x 嗯 说到重点了
    mattx
        45
    mattx  
       2019 年 9 月 17 日
    @ech0x 问下 clash for windows 是透明代理么?能让所有软件的域名和 ip 都经过 clash 规则么?
    ech0x
        46
    ech0x  
    OP
       2019 年 9 月 17 日 via iPhone
    @mattx 不用 Windows 不知道,我现在也没在用 clash
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3017 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 101ms UTC 06:54 PVG 14:54 LAX 23:54 JFK 02: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