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

Ubuntu 22.04通过Netplan(systemd-networkd)配置eno2静态IP失败求助

Ubuntu 22.04通过Netplan(systemd-networkd)配置eno2静态IP失败求助

看起来你遇到的问题是无链路状态下的eno2无法通过Netplan自动配置静态IP——手动用ip addr add能正常生效,说明IP本身没问题,问题出在systemd-networkd对无链路接口的默认处理逻辑上,我来帮你分析原因并给出解决方案:

问题原因

你已经给eno2配置了optional: true,这个参数的作用是告诉Netplan:不要因为这个接口没起来就卡系统启动,但它并没有让systemd-networkd在**链路未连接(link down)**的状态下主动应用静态IP配置。systemd-networkd默认会等待接口链路激活后才会加载IP设置,这就是为什么你的eno2虽然配置正确,但一直没拿到IP的原因。

解决方案

修改你的Netplan配置文件,给eno2添加两个关键参数,强制systemd-networkd忽略链路状态直接应用IP:

  1. 先备份原配置(以防改错):
sudo cp /etc/netplan/60-eno2.yaml /etc/netplan/60-eno2.yaml.bak
  1. 编辑eno2的Netplan配置文件:
sudo nano /etc/netplan/60-eno2.yaml
  1. 修改后的配置内容如下(添加carrier-delay: 0和link-local: []):
network:
  version: 2
  renderer: networkd
  ethernets:
    eno2:
      addresses: [192.168.0.10/24]
      dhcp4: false
      dhcp6: false
      optional: true
      carrier-delay: 0
      link-local: []
  • carrier-delay: 0:告诉systemd-networkd不需要等待链路激活,直接应用IP配置
  • link-local: []:禁用自动生成的IPv6链路本地地址(可选,但能避免不必要的网络干扰)
  1. 应用配置并验证:
sudo netplan --debug apply

执行完后用ip addr show eno2查看,应该能看到192.168.0.10/24已经配置在eno2上了。

额外检查

如果还是有问题,可以查看systemd-networkd的状态日志,看看有没有报错:

systemctl status systemd-networkd

或者查看更详细的实时日志:

journalctl -u systemd-networkd -f

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:54:06