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

利用 mosdns + tpclash 搭建透明代理尚存的一些问题

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

    总结来说,就是设置了 mosdns 监听了 N1 的 53 端口,手机设置 dns 指向 N1 ,但是我看 mosdns 的日志,好像没有处理任何 dns 请求,请教一下可能的原因是什么。

    我现在是利用 mosdns + tpclash 在 N1 上搭建了透明代理,mosdns 的 docker-compose.yml 配置如下:

    version: '3'
    services:
      mosdns:
        container_name: mosdns
        image: irinesistiana/mosdns:latest
        ports:
          - "5533:5533/udp"
          - "5533:5533/tcp"
        volumes:
          - /root/mosdns:/etc/mosdns
        restart: always
    

    N1 上的 mosdns 负责处理 dns ,对国内域名的 dns 请求,返回真实的解析出来的 ip ,对于国外域名,则会返回一个 198.18.x.x 的 fakeip ,主路由设置了静态路由表,对于 fakeip 的流量会被转发到 N1 上,tpclash 会处理。

    主路由是刷了 padavan 的红米 ac2100 ,在 内部网络( LAN ) -> DHCP 服务器dnsmasq.servers 设置了 server=192.168.6.206#5533

    但是这样的问题就是主路由下的所有设备都会受到影响,具备科学上网的功能,然而室友有意见;

    所以我希望是能指定部分设备被透明代理;

    我试过将 docker-compose.yml 监听的端口设置为 53 ,即修改为:

    version: '3'
    services:
      mosdns:
        container_name: mosdns
        image: irinesistiana/mosdns:latest
        ports:
          - "53:53/udp"
          - "53:53/tcp"
        volumes:
          - /home/zwyyy/mosdns:/etc/mosdns
        restart: always
    

    mosdns 的 config.yaml 也是监听 tcp 和 udp 的 :53 端口,后面我尝试 padavan 中的 dnsmasq.servers 不再转发 dns 请求,即注释掉 server=192.168.6.206#5533

      - type: "udp_server"
        args: { entry: main_seq, listen: ":53" }
    
      - type: "tcp_server"
        args: { entry: main_seq, listen: ":53" }
    

    然后我尝试着手机上设置静态 ip ,即网关设置为主路由,dns 设置为 mosdns 所在的 N1 的 ip ,但是好像没有效果,mosdns 似乎没有处理任何 dns 请求,应该如何排查呢?

    第 1 条附言  ·  167 天前
    我尝试了让 mosdns 直接监听 :53 端口,在 padavan 的 dnsmasq.servers 中设置了 `server=192.168.6.206`,即将所有 dns 请求都转发给 mosdns ,此时 pc (为 dhcp 方式获取 ip 和 dns )等设备可以正常翻墙;然而如果我在 padavan 的 dnsmasq.servers 中注释掉 `server=192.168.6.206` 并手动设置 pc 的 dns 为 `192.168.6.206`,则 pc 无法翻墙。
    2 条回复    2024-06-11 21:14:10 +08:00
    zwyyy456
        1
    zwyyy456  
    OP
       166 天前
    大概是找到问题的原因了,被 ipv6 的 dns 抢答了。
    wolonggl
        2
    wolonggl  
       164 天前
    这个情况也碰到过。后通过抓包发现优先走 ipv6 的 dns 了,直接路由器劫持所有 53 请求解决
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2736 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:21 · PVG 20:21 · LAX 04:21 · JFK 07:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.