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

2017 年 1 月 20 日
 Astralis
由于权限问题没有搞定,开机启动的程序不能监听 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
4259 次点击
所在节点    DNS
5 条回复
linbiaye
2017 年 1 月 20 日
不懂 mac ,但是你只做了 DNAT, 还需要 SNAT 。简单的说,别的程序给你的 IP:53 端口发包,你的 dns 用 IP:5353 端口回包。
Astralis
2017 年 1 月 20 日
Astralis
2017 年 1 月 20 日
@linbiaye 我也不太懂 mac 这东西转发我都不知道该怎么玩, centos 上我知道怎么设置,这个 pf 都没用过
millken
2017 年 1 月 20 日
不需要监听也可以的,直接使用 pcap 来收发包。
我的 dns 服务器就是这样搞的。
thekll
2017 年 1 月 21 日
redirection 配置可能有问题。
返回信息已经指出你向 port53 发请求,响应的源端口只能是 port53 ,不能是 5353.

https://www.openbsd.org/faq/pf/rdr.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335804

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX