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

2017-01-20 11:50:46 +08:00
 maojy1989
由于权限问题没有搞定,开机启动的程序不能监听 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
3550 次点击
所在节点    DNS
5 条回复
linbiaye
2017-01-20 14:02:19 +08:00
不懂 mac ,但是你只做了 DNAT, 还需要 SNAT 。简单的说,别的程序给你的 IP:53 端口发包,你的 dns 用 IP:5353 端口回包。
maojy1989
2017-01-20 14:33:37 +08:00
maojy1989
2017-01-20 14:34:55 +08:00
@linbiaye 我也不太懂 mac 这东西转发我都不知道该怎么玩, centos 上我知道怎么设置,这个 pf 都没用过
millken
2017-01-20 15:25:14 +08:00
不需要监听也可以的,直接使用 pcap 来收发包。
我的 dns 服务器就是这样搞的。
thekll
2017-01-21 01:15:10 +08:00
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