如何使mDNS在Android上的Chrome上运行?


34

是否可以使用Android上的Chrome浏览器连接到http://mylaptop.local/,还是可以使用其他浏览器?

我使用笔记本电脑和手机在网络之间进行旅行,并且经常需要将手机连接到笔记本电脑上的网站。使用iPhone上的Safari,我可以简单地使用http://mylaptop.local/(通常是在打开的浏览器窗口中进行重新加载),但是使用Android设备时,我总是必须弄清楚笔记本电脑的当前IP手动打入并连接到它(我无法控制我所使用的许多网络,而且它们似乎从未将DNS与DHCP集成在一起)。

我一直在寻找答案,似乎大多数人只是使用静态DNS来解决问题,或者控制DHCP和DNS,但这两种都不适合我的情况。我也看到了在特定的Android应用程序中支持mDNS(和其他zeroconf东西)的代码库,所以也许那里有一个Chrome插件,或者其他支持它的浏览器?

另外,在设备范围内对Android上的mDNS和.local域的支持是否有任何官方说法?我也很难找到那个。

Answers:


17

我不这么认为。

苹果平台中的系统DNS解析器对mDNS具有内置支持,因此几乎所有应用最终都使用核心getaddrinfo功能并支持URL,主机名和其他形式的mDNS。

在Android和其他平台上,即使有运行的多播DNS守护程序和可用的库,“典型” DNS查找也不会。因此,尽管最近的Android版本确实为开发人员提供了一些mDNS功能作为平台的一部分,但大多数功能并不会(如他们需要做的那样)使用。

这真是令人b目结舌,但AFAIK没有什么可以真正解决这个问题的方法,那就是推出自己的自定义Android构建(或说服Google对其进行更改)。


4
好la脚!linux用了15年的时间才能正确地与Windows和Mac对话,现在我们又看到了同样的故事。Android不支持mDNS。Android不支持AirPrint。来吧,互操作性必须成为规则!
菲利普2014年

7
我针对Chromium项目提出了一个错误。如果您遇到此问题并希望解决此问题,请加注星标(请勿+1条评论)。crbug.com/405925
pwnall 2014年

1

这不是浏览器的问题,而是Android处理DHCP的方式:它只是忽略提供的DNS服务器并坚持使用其预先配置的Google DNS-当然,它不知道您的本地主机名。因此,这是解决此问题的方法:

  1. 开启设定
  2. 导航到WiFi
  3. 导航到您的WiFi网络条目。
  4. 长按条目,选择编辑。
  5. 激活高级设置
  6. 从DHCP切换到静态,然后8.8.8.8用您自己的服务器替换第一个DNS服务器(通常是)
  7. 保存

(可选地,您可以在更改DNS服务器后尝试切换回DHCP,并查看是否保留了后者)

现在,Android应该首先使用您的DNS服务器,并且仅在您的DNS服务器无法解析时才切换到辅助服务器。这意味着,应该立即从Chrome或任何其他浏览器以及任何其他应用中找到您的“ mylaptop.local”。

询问之前:此设置(如上所述)仅适用于修改后的WiFi AP。因此,不用担心您会影响其他任何人。如果有任何问题,您可以随时删除AP并重新创建。


15
只是为了澄清;最初的问题实际上与本地DNS服务器的使用无关,而是使用mDNS(又名Bonjour)以及特殊的“ .local”域名,在某些系统上,该域名设置为发布mDNS查询而不是DNS查询。
2013年

设置静态IP地址后,我莫名其妙地在本地子网上的所有设备上收到“网络无法访问”的消息。
迈克尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.