首页 > 解决方案 > 在 localhost 上转发多播 DNS 请求

问题描述

我的最终目标是将 mDNS 查询从 Android 模拟器转发到我的本地网络。

我已经弄清楚了模拟器和我在 PC 上的本地主机之间的通信。我现在需要做的是将来自localhost的请求转发到mDNS服务器,即224.0.0.251:5353。

这是我正在遵循的指南:通过 SSH 连接执行 UDP 隧道

在最底部有Alternative solution with socat

首先,让我们尝试将请求转发到 google 的 dns 服务器:

socat udp4-recvfrom:8888,reuseaddr,fork UDP:8.8.8.8:53

现在,当我尝试使用以下方法解析域时drill

$ drill gmail.com @127.0.0.1 -p 8888

...
;; ANSWER SECTION:
gmail.com.  299 IN  A   216.58.215.101

很明显,可以使用这种方法转发 dns 查询

但是当我将其更改为 mDNS 时:

socat udp4-recvfrom:8888,reuseaddr,fork UDP:224.0.0.251:5353

并尝试查询我本地网络中的设备之一,然后超时:

$ drill dell-2.local. @127.0.0.1 -p 8888
Error: error sending query: Could not send or receive, because of network error

而它直接使用 mDNS 地址按预期工作:

$ drill dell-2.local. @224.0.0.251 -p 5353

...
;; ANSWER SECTION:
dell-2.local.   10  IN  A   192.168.0.115

问题是:如何解决转发的 mDNS 请求?是否有替代工具可以用来解决我的问题?

标签: bonjourmdnssocatavahidns-sd

解决方案


推荐阅读