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

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

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

我试过玩dhclient,例如

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

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

但是,即使没有连接可用,dhclient也总是返回’0’。

什么是正确的方法?

如果您的静态设置不会与任何内容发生冲突,那么一个简单的选项就是设置网络别名。 对于非别名连接,将其配置为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/