首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
Coding
V2EX  ›  宽带症候群

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

  •  
  •   ech0x · 332 天前 · 6574 次点击
    这是一个创建于 332 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    @ech0x 这就是 clash 所实现的啊 说好几次了
        29
    yov123456   331 天前 via iPhone   ♥ 1
    @ech0x 不一定要 fake ip 真实即使被污染 ip 也可以 因为翻查匹配规则后是整个 tcp 连接给 proxy 的 surge 用 fake ip 是因为没有修改默认路由
        30
    dszhblx   331 天前 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 通常要用到很多域名,把白名单配全是比较麻烦
        31
    billytom   331 天前
    有没有啥办法,在 windows 10 上用 Clash 做透明代理? 现在的 Clash for win 只是最基本的 http 代理,ps4 和电视机用不到
        32
    yov123456   331 天前 via iPhone
    @billytom 把 clash 跑路由器或树莓派上 但是 clash 还不支持 udp ps4 游戏支持不了吧……
    @dszhblx 名单还好吧 机场的规则那么多
        33
    missdeer   331 天前
    @billytom tun2socks 了解一下
        34
    q397064399   331 天前
    我觉得最好的办法还是 openvpn 走国外 然后 chnroutes 走回来,用 chinadns 分流 目前效果不错
        35
    Moofish   331 天前
    @missdeer 请问有办法在梅林上安装么
        36
    missdeer   331 天前
    @Moofish 没试过,估计是可以的
        37
    goodryb   331 天前
    ss-tproxy 了解一下,dnsmasq + ipset, 客户端网关和 dns 都配置成代理服务器的 IP 即可
        38
    brMu   325 天前
    @missdeer 这个也有一个问题,就是国内域名不全,当成国外域名去解析了,这样反而会慢。
        39
    missdeer   325 天前
    @brMu https://github.com/felixonmars/dnsmasq-china-list 应该包括了大部分人常用的绝大多数国内域名,如果真缺了,你也可以给作者提 issue 或 PR。而且你也可以仅仅自己改 Corefile,把缺的域名加到 except 中。这不是什么大问题。
        40
    brMu   325 天前
    @missdeer 常用域名是肯定没问题的,可是尴尬的是有时很重要的域名没有包含在内,比如 12306 的某个域名,用的抢票软件显示的 IP 竟然是我的 vps 的,没办法又不好找到底是哪个域名,最后还是换回了 gfwlist 模式,然后手动添加自己需要绕路的域名,也不定是不能不访问的,有时慢的我也加进去,比如微软官网。
        41
    birkhofflee   306 天前 via iPhone
    @billytom Proxifier
        42
    mattx   87 天前
    @ech0x 请问下,什么时候会出现 A, B 域名都解析到 IP-C,但是 A 需要代理,B 不需要代理?
        43
    ech0x   87 天前 via iPhone
    @mattx A 被投毒了。
        44
    mattx   87 天前
    @ech0x 嗯 说到重点了
        45
    mattx   86 天前
    @ech0x 问下 clash for windows 是透明代理么?能让所有软件的域名和 ip 都经过 clash 规则么?
        46
    ech0x   86 天前 via iPhone
    @mattx 不用 Windows 不知道,我现在也没在用 clash
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3972 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 41ms · UTC 09:38 · PVG 17:38 · LAX 01:38 · JFK 04:38
    ♥ Do have faith in what you're doing.