![/etc/network/interfaces - 自动和允许热插拔之间的区别](https://linux22.com/image/13731/%2Fetc%2Fnetwork%2Finterfaces%20-%20%E8%87%AA%E5%8A%A8%E5%92%8C%E5%85%81%E8%AE%B8%E7%83%AD%E6%8F%92%E6%8B%94%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
我运行的是 Debian 9.13。我试图检查auto eth1
和allow-hotplug eth1
之间有什么区别/etc/network/interfaces
。我有eth1
通过连接的网络接口USB
。我尝试重新启动、运行systemctl restart networking
和插入/拔出,似乎allow-hotplug
和之间的主要区别auto
在于,如果接口标记为auto
,则命令在未连接systemctl restart networking
时失败。eth1
这得出的结论allow-hotplug
实际上在所有情况下都是更可取的,除了我知道接口不会消失的情况(瞧,内置接口)。
这是对的吗?还有其他区别吗?
答案1
我将用一个非常重要的注释来修改答案。如果你使用特别的接口,例如粘合(中继)或网络桥,避免添加allow-hotplug
到 /etc/networking 文件内的配置,始终使用auto
.
auto
让它们启动,但allow-hotplug
可以在操作系统运行时(初始配置后)开始搞乱,例如删除静态 IP 配置、重置接口、设置 ip 自动配置,从而导致自分配 IP,如 169.254.240.1/16。
allow-hotplug
对于操作系统来说基本上意味着:该接口是动态的,根据各种条件变化对其进行管理。
auto
基本上是告诉操作系统:在启动时或接口链接事件期间使用提供的配置连接此接口。
答案2
汽车
标记的接口auto
将在启动时设置。
允许热插拔
接口将等待 udev 和内核检测到它们,然后将其设置为 UP。
man interfaces
:
Interfaces marked "allow-hotplug" are brought up when udev detects them.
This can either be during boot if the interface is already present, or
at a later time, for example when plugging in a USB network card