You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeagleBone下如何为eth0临时获取DHCP分配的额外IP并设置超时

BeagleBone下如何为eth0临时获取DHCP分配的额外IP并设置超时

嗨Jonathan,我来帮你解决这个问题!你的需求是在保留现有静态IP的前提下,临时获取一个DHCP分配的IP且设置自动超时,之前的ifconfig命令会覆盖你现有的静态IP,而且没法直接设置超时,显然不符合要求。下面给你几个可行的方案:

方案一:保留现有静态IP,添加临时DHCP IP并强制设置超时

这个方法不需要改动connman的管理状态,直接通过dhclient获取额外IP,再用ip命令设置有效期:

  • 先通过DHCP获取额外IP(不会覆盖现有静态IP):

    sudo dhclient -v eth0
    

    执行后,你的eth0会同时拥有原来的静态IP和新的DHCP IP。

  • 获取新分配的DHCP IP地址:

    new_dhcp_ip=$(ip addr show dev eth0 | grep inet | grep -v 192.168.1.132 | awk '{print $2}')
    

    这里192.168.1.132是你现有的静态IP,替换成你实际的静态IP即可。

  • 给这个DHCP IP设置100秒的有效期,到期后自动失效:

    sudo ip addr change $new_dhcp_ip dev eth0 valid_lft 100 preferred_lft 100
    

方案二:临时暂停connman管理,请求短租期DHCP IP

如果担心connman干扰,可以先临时让connman停止管理以太网接口,再请求短租期IP:

  • 禁用connman对以太网的管理:

    sudo connmanctl disable ethernet
    
  • 向DHCP服务器请求租期为100秒的IP(服务器同意的话会生效,否则会使用服务器默认租期):

    sudo dhclient -T 100 -L 100 eth0
    

    这里-T是请求的初始租期,-L是最长租期,都设置为100秒。

  • 完成后重新启用connman的以太网管理:

    sudo connmanctl enable ethernet
    

    connman会自动恢复之前的静态IP配置,不会影响原有设置。

关于ifconfig的疑问

ifconfig eth0 0.0.0.0 0.0.0.0 && dhclient这个命令会清空eth0的现有IP,然后重新获取DHCP IP,会完全覆盖你原来的静态IP,这显然不是你想要的效果。而且ifconfig已经是废弃的工具,推荐使用ip命令来进行网络配置,更符合现代Linux系统的规范。

备注:内容来源于stack exchange,提问作者Jonathan Leslie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 07:54:53