V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maojy1989
V2EX  ›  DNS

macOS 下监听本机非 53 端口,怎么给局域网提供 DNS 解析服务

  •  
  •   maojy1989 · 2017-01-20 11:50:46 +08:00 · 3635 次点击
    这是一个创建于 2865 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于权限问题没有搞定,开机启动的程序不能监听 53 端口,用 pf 把 53 端口转发到了 127.0.0.1 的 53 端口,本机使用 127.0.0.1 作为 DNS 可以正常使用,但是局域网其他机器就一直超时
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    *** 请求 UnKnown 超时
    然后在本机上试了一下用局域网的 IP ,结果返回的是:
    ;; reply from unexpected source: 192.168.50.245#5533, expected 192.168.50.245#53

    有办法能解决这个问题吗

    pf 配置是这样写的:
    rdr pass on lo0 inet proto udp from any to any port 53 -> 127.0.0.1 port 5533
    rdr pass on en0 inet proto udp from any to any port 53 -> 127.0.0.1 port 5533
    5 条回复    2017-01-21 01:15:10 +08:00
    linbiaye
        1
    linbiaye  
       2017-01-20 14:02:19 +08:00
    不懂 mac ,但是你只做了 DNAT, 还需要 SNAT 。简单的说,别的程序给你的 IP:53 端口发包,你的 dns 用 IP:5353 端口回包。
    maojy1989
        2
    maojy1989  
    OP
       2017-01-20 14:33:37 +08:00
    maojy1989
        3
    maojy1989  
    OP
       2017-01-20 14:34:55 +08:00
    @linbiaye 我也不太懂 mac 这东西转发我都不知道该怎么玩, centos 上我知道怎么设置,这个 pf 都没用过
    millken
        4
    millken  
       2017-01-20 15:25:14 +08:00
    不需要监听也可以的,直接使用 pcap 来收发包。
    我的 dns 服务器就是这样搞的。
    thekll
        5
    thekll  
       2017-01-21 01:15:10 +08:00
    redirection 配置可能有问题。
    返回信息已经指出你向 port53 发请求,响应的源端口只能是 port53 ,不能是 5353.

    https://www.openbsd.org/faq/pf/rdr.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1178 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:00 · PVG 02:00 · LAX 10:00 · JFK 13:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.