在/etc/network/interfaces
(Raspbian) 上,是否可以设置静态 IP,并可选择回退到 DHCP?
如果配置的静态 IP 已被占用,这会很方便。或者它可能位于与其尝试连接的网络不同的范围内(例如:192.168.0.10
在10.0.0.0/24
网络中设置静态)。
答案1
主机没有良好或可靠的方法来判断另一台计算机是否已在使用其 IP 地址,或者该 IP 是否位于本地网络的错误子网中。
您可以使用tcpdump
或arpwatch
或类似的方法来侦听网络接口,以尝试找出是否有其他 MAC 地址正在使用您的 IP(但即使这样也是不可靠的,因为其他主机可能已关闭或没有理由在其上发送任何数据包)另外,您的主机可能位于交换机上 - 如今几乎没有人使用集线器 - 因此只能看到来自其他主机的广播数据包,而看不到其他主机和服务器之间的通信。 )。
即使尝试检测来自不同子网的数据包也是有问题的 - 同一物理以太网段上传输多个子网是非常正常和合法的。您可能会看到来自备用子网的数据包,但看不到来自您自己的子网的数据包,并假设您的子网是错误的,而实际上发生的只是在您监听的时间内没有来自您子网上其他主机的流量。
您想监听网络接口多长时间?您认为在收听时延迟启动和启动依赖于网络的服务多长时间是合理的? 5秒?不够长。 5分钟?对于一个像样的网络样本来说这可能已经足够了(不过不能保证),但是等待 rpi 启动的时间太长了。
如果没有 DHCP 服务器,尝试 DHCP IP 然后回退到静态地址更有意义(但如果您知道要回退到的安全静态 IP 地址是什么,那么使用它会更简单)。
结论:
坚持使用 DHCP 或静态地址。
如果您是网络管理员,请确保网络上有可用的 DHCP 服务器。 (可选)将其配置为为 rpi 的 MAC 地址提供固定的 IP 地址。
答案2
/etc/network/interfaces
如果您使用的是最新版本(2015 年 5 月后),则无法在 Indeed 中进行设置,系统会警告您不要以这种方式设置静态。
看如何设置网络/WiFi/静态 IP 地址? | Raspberry Pi 堆栈交换
这并没有具体回答如何设置后备配置文件,而是向您介绍man dhcpcd.conf
如何设置。