如果可用,如何使用 DHCP,否则使用静态 IP

如果可用,如何使用 DHCP,否则使用静态 IP

当我的系统启动时,它应该检查给定接口(例如 eth0)是​​否可以进行 DHCP 配置,以及网络中是否存在 DHCP 服务器。如果是,则应使用 DHCP。如果不存在,则应使用预定义的静态 IP 地址。

  • 我知道如何在启动时执行脚本
  • 我知道如何指定接口/etc/网络/接口

我尝试使用 dhclient,例如

dhclient -1 # Try once to get a lease. One failure, exit with code 2. 

http://www.computerhope.com/unix/dhclient.htm

然而,即使根本没有可用的连接,dhclient 也总是返回“0”。

正确的方法是什么?

答案1

如果您的静态设置不会与任何内容发生潜在冲突,那么一个简单的选择就是设置网络别名。对于非别名连接,您可以将其配置为 DHCP,然后使用静态连接配置别名连接。这样,如果 DHCP 可用,则从技术上讲,两个连接都处于活动状态,大概只有 DHCP 连接真正“适用于”您正在使用的网络。如果 DHCP 不可用,它会自行分配一个 169 地址,并且不起作用,但静态别名可以。编辑后,不要忘记重新启动或重启服务。

/etc/network/interfaces 示例

auto eth0
allow-hotplug eth0
iface eth0 inet dhcpauto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto eth0:1
iface eth0:1 inet static
name Ethernet alias LAN card
address 192.168.1.7
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0

详细信息请见此处:https://www.cyberciti.biz/faq/linux-creating-or-adding-new-network-alias-to-a-network-card-nic/

相关内容