我有一个本地 Web 服务器(Raspberry Pi 上的 nginx),其 IP 为静态 IP(10.120.11.31)。将其插入路由器后,我可以通过具有动态 IP 的笔记本电脑访问它(ipconfig 显示其为 10.120.11.186,掩码为 255.255.255.0,以及 10.120.11.1,一切看起来都很好)。
然后,我断开两台机器与网络的连接,并在两台机器的以太网插孔之间放置一条标准 CAT-5 以太网电缆,但无法再通过将网络服务器的 IP 放入笔记本电脑的浏览器中来访问网络服务器。
我是否只需要一根交叉电缆,还是还有其他电缆?
谢谢
答案1
您正在寻找的是 IETF(IP 标准机构)所称的“零配置网络”或“ZeroConf”。
它是专门针对您所说的情况而开发的。如果我通过以太网将两台或多台机器连接在一起,它们应该能够获取地址并相互通信,甚至无需系统管理员设置路由器或 DHCP 服务器或手动 IP 配置或诸如此类的东西,它们就能够发现彼此的服务。
这是一个来自 Adafruit 的 Raspberry Pi ZeroConf 操作指南。这可能就是您所需要的。请继续阅读下文了解背景详情。
ZeroConf 作为一项技术,包含三个部分:
自分配链路本地 IP 寻址,这样机器就可以在没有 DHCP 服务器的情况下获取 IP 地址,也不需要手动配置。这些是
169.254.0.0/16
每个人都见过的 IPv4 地址,以及fe80::
IPv6 地址。多播 DNS (mDNS) 名称解析。这允许系统通过本地 LAN 上的多播来宣传其名称,如“Raspberry-Pi.local”或“Spiffs-Mac.local”,而无需单播 DNS 服务器。因此,您可以输入类似“http://rpi.local/“以访问 RPi 上的 Web 服务器。
[m]DNS 服务发现 (DNS-SD)。这允许设备宣传它们提供的服务(以及这些服务的名称),而不仅仅是它们的主机名。因此,它们可以宣传它们是打印机、Web 服务器、具有 sshd 侦听器或以上所有,等等。
Apple 的 ZeroConf 实现被称为“Bonjour”(由开源的“mDNSResponder”守护程序提供)。除了在 Apple 产品、Android 设备和许多嵌入式设备上常见的 mDNSResponder 之外,还有开源的“Avahi”软件包,它是许多台式机/笔记本电脑、路由器和其他嵌入式 Linux 发行版的一部分。我相信 OpenWrt 甚至创建了自己的实现,简称为“mDNS”,所以这是第三个开源实现。
不幸的是,微软从未原生支持真正的 IETF ZeroConf,而是用他们称为 LLMNR 的仿制品污染了该领域,它也使用“.local”命名空间,从而导致冲突。但是,Apple 以以下形式为 Windows 提供了一个基于 mDNSResponder 的 ZeroConf 实现用于 Windows 的 Bonjour 打印服务(不要让名字误导您,这是一个完整的 ZeroConf 实现,不仅限于打印。)
顺便说一句,你应该不是需要交叉电缆,因为 Raspberry Pi 的以太网端口包含自动交叉(自动 MDI-X)PHY。