首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果未从DHCP (脚本)获得,则设置静态ip

如果未从DHCP (脚本)获得,则设置静态ip
EN

Stack Overflow用户
提问于 2012-10-04 12:21:06
回答 2查看 32.8K关注 0票数 12

我在嵌入式设备上工作,上面有linux。我想首先使用DHCP客户端,但是如果DHCP服务器没有响应,我希望设置静态-默认IP。我想这不应该很复杂,但我还没有找到严格的答案。

我正在考虑两个解决方案(不幸的是,我可以在几天内测试它们):

  1. 我用ifconfig设置静态IP,然后调用udhcpc。如果udhcpc不能获得新的IP,老IP就会继续存在。
  2. 我还可以先打电话给udhcpc,等等,看看是否获得了IP。但这对我不太好。我不想在启动中添加任何等待例程。

布尔巴特克

我使用udhcpc -类似于:

代码语言:javascript
复制
udhcpc -n -f -i eth0 
if ifconfig | grep -A1 eth0 | grep inet 
    then 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-04 13:28:22

dhclient应该通过租约声明支持回退,查看一下dhclient.conf手册页面。

将类似的内容添加到dhclient.conf

代码语言:javascript
复制
timeout 10;
lease {
interface "eth0";
fixed-address 10.0.0.10;
option subnet-mask 255.255.255.0;
renew 2 2022/1/1 00:00:01;
rebind 2 2022/1/1 00:00:01;
expire 2 2022/1/1 0:00:01;
}

或者,您可以向接口分配第二个IP,比如/etc/network/interfaces

代码语言:javascript
复制
auto lo
iface lo inet loopback
iface eth0 inet dhcp

auto eth0:1
iface eth0:1 inet static
address 10.10.10.2
netmask 255.255.255.0
票数 27
EN

Stack Overflow用户

发布于 2020-01-26 03:29:18

尽管这是一个老问题,但这里可能值得注意的是,Gentoo Linux已经使用了很长时间(我从2004年起就开始使用它)。Gentoo的网络配置文件(/etc/conf.d.d/net)允许在DHCP失败时为任何接口轻松指定后备IP地址,例如:

代码语言:javascript
复制
modules="dhclient"
config_eth0="dhcp"
config_eth1="dhcp"
dhclient_eth1="nogateway"
fallback_eth0="apipa"
fallback_eth1="192.168.10.10/24"
fallback_routes_eth1="default via 192.168.10.1"

Maurizio提供的使用像eth0:0这样的别名的解决方案在许多情况下(可能大多数情况下)都很好,但不是全部。我遇到了一个软件,它不认为eth0:0是eth0的合适替代品,尽管它是同一个端口,但由于DHCP没有给出答案而没有定义它。因此,静态回退地址略优于别名解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12727175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档