我有一个 Debian 系统,有多个以太网端口。
我目前正在启动时运行一个脚本,该脚本将静态 IP 分配给其中一个端口(通过更新/etc/network/interfaces
和重新启动网络)。
(具有 DHCP 功能的路由器有时可能可用,但这不能假设。)
目前,脚本要么必须使用要分配 IP 的设备名称进行硬编码,要么最多有一个简单的规则,例如“从中选择第一个/sys/class/net/e*
”。 (特别是因为你不能假设eth0
它已经存在了。)它无法在重新启动后保存任何信息;文件系统是只读的。
有没有办法更好地自动检测哪个接口实际上连接了电缆?目标是允许电缆连接到任何端口(在启动之前),并且脚本将解决它。
我尝试走/sys
上面的路径并尝试读取运营商状态,但在启动时似乎总是没有运营商。
增加了复杂性:最终我可能会连接不止一根电缆。我真正想要的是一种自动检测哪个接口具有到具有静态地址的兼容子网中的 PC 的链接的方法。 (即使连接多根电缆,也只有其中一根。)
它不需要担心启动后电缆被移动,尽管它可能需要暂停启动,直到“另一端”打开才能检测到它。
(我确实尝试将相同的静态 IP 分配给所有接口,假设只有一个接口能够真正连接。但这似乎确实加剧了情况ifup
。)