网络邻居发现协议大比拼,Windows/Linux/Mac系统局域网服务发现协议之-八大金刚

简介: 分析/验证对比常见局域网服务发现协议在Windows/Linux/Mac等不同系统下的支持和表现

网络邻居发现协议大比拼,Windows/Linux/Mac系统局域网服务发现协议之-八大金刚

在使用不同系统的智能硬件时,如常见的树莓派/Openwrt路由器/Debian/Fedora/Windows/Mac等系统是,系统间相互发现以及
网络共享本应是系统的基础服务,无需用户过多参与.不过现实旺旺和理想之间的差距让我们惊讶,不同系统相互之间的发现以及
共享并没有那么轻松.

开发的硬件设备无法在常见系统的网络邻居正确的现实出来,实在是很丧气的事情.

那么,就系统来看看局域网服务发现协议在不同系统上的支持及表现.

我的服务器啊,你在哪里

想要访问局域网网络里面的设备,远没有应有的轻松. 每次新装系统或者设备入网,总是有这样或者那样的问题,哎,我的服务器啊,你在哪里.

先看看最简单和常用的ping工具,这么简单和实用的工具,简单的搜索竟然有 三千八百万 条记录

大名鼎鼎的树莓派,用起来想来应该更简单一些,可事实往往触目惊心,仅仅是ping通的问题,也有三百万的记录

再来看看最常见的文件共享服务,也有 两千万 之巨

这都2120年了,为什么这么常见的服务还有这么多为问题呢.

干货放前面 各系统网络邻居正常工作的协议汇总:

OS Windows Linux Macos
网络邻居显示 UPnP + WS-Discovery mDNS + SMB mDNS(服务器侧特别配置) + SMB
网络邻居共享 WS-Discovery + SMB mDNS + SMB mDNS(服务器侧特别配置) + SMB

Linux和Macos比较相似,但是实现起来还是有明显的差异,下文会具体描述.

Windows

Windows一如既往的走在自己的路上,网络邻居发现协议自搞一套.

Windows 10的WS-Discovery

Web Services Dynamic Discovery (WS-Discovery) WS-Discovery

下图是此协议的抓包

此协议和UPnP极其相似,都是基于SSDP协议衍生的XML表达的,如果不支持此协议,则无法在Windows10 的网络邻居里面显示为PC,无法直接点击访问共享.

支持此协议后,Windows10的网络邻居里面会在计算机类型的里面显示设备.

UPnP协议

UPnP 是早期路由器常用的协议,目前从不同系统的验证来看,仅有Windows默认在文件浏览器里面支持,Ubuntu和MacOS都需要单独配置或者应用程序才能浏览.

这个协议目前各种路由器基本都能支持,不过其安全问题频出,作用并不明显.

此协议在Windows系列里面基本都能支持,会在网络邻居里面显示出设备的信息.

MacOS

mDNS协议

MAC整体表现和Linux比较接近,双方使用的协议也是类似,只是在细节处理上有些区别.

[mDNS] 协议本身应用比较广泛,MAC比较早就支持.在Mac新版本里面,网络邻居默认可以发现mDNS设备.

因为历史原因,早期的AFP协议升级后已经没有开源协议可以完美支持,因此使用avahi的mDNS服务时,如果还使能了AFP业务的话,MAC会显示为大问号.

使用配置好的服务文件,MAC可以正常显示设备

在调试过程中,还看到了网络邻居显示为PC的图标,有知道显示为这个图标的条件的小伙伴吗?

SMB协议

Server Message Block SMB 是MS家
的协议,奇怪吧:<>

Samba是*nix系统上的一个SMB协议的实现,是早期为了和Windows兼容文件共享而做的功能.目前MAC已经全面放弃自己的AFP协议转而投向SMB协议.

设备仅支持SMB协议而没有mDSN协议辅助的话,MAC也可以识别此系统,不过会显示为超级古老的图标.

Linux

mDNS

Ubuntu系统的网络邻居可以自动发现mDNS服务并展示为不同的图标. 在Ubuntu 20.04里面,除去图标的不同,还增加了每个服务的描述.

SMB

同样的,Ubuntu系统天然支持SMB协议,但是SMB协议需要mDNS协议的支撑,否则无法显示在网络邻居里面.

其他协议

除去前面流行并且工作的协议外,还有一些曾经使用但是已经废弃或者即将废弃的协议,在设备设计时,如果考虑兼容性,也同时需要支持.

SSDP

SSDP是一个基础协议,UPnP以及WS-Discovery 都是基于这个协议来实现的.

AFP

Apple Filing Protocol AFP

Apple家的私有协议,开源有netatalk 实现. AFP升级加密后,netatalk也不能和新版本的MAC兼容.

苹果已经全面投向SMB的怀抱,AFP基本上可以忽略了.

NetBIOS

Network Basic Input/Output System NetBIOS 这个是Windows 9x/Me/XP等早期系统支持的名称解析协议,
类似于mDNS,新的Windows 10已经不建议支持此协议.

LLMNR

Link-Local Multicast Name Resolution LLMNR , 这个也是和mDNS竞争的失败者,主要聚焦于局域网的名称解析,可以直接忽略了.

目录
打赏
0
0
0
0
1
分享
相关文章
|
15天前
|
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
26 0
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
73 27
|
11天前
|
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
70 2
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
79 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
|
8天前
|
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
47 20
|
11天前
|
Nexpose 8.0.0 for Linux & Windows - 漏洞扫描
Nexpose 8.0.0 for Linux & Windows - 漏洞扫描
39 10
|
13天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
68 10
|
16天前
|
Linux下如何使用Curl进行网络请求
希望这篇文章能帮助您在Linux下更好地使用Curl进行网络请求。如有疑问,请随时提问!
62 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
108 24
Linux系统之whereis命令的基本使用
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
81 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等