操作系统启动后网络还需要比较慢的时间才启动(差不多二分钟)

环境

linux 4.14.61

systemd version 247.3

问题

启动时发现网络其实很快就起来了,但是mqtt和docker启动的很慢,导致相关依赖启动很慢。

问题分析

实际通过systemctl list-units发现systemd-networkd-wait-online启动失败

而且从字面上看也有延时的意味所以。。。。通过百度发现有相关的问题"权益之计"的解决方案。

权宜之计

可以更改用vi更改以下文件:/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service在[Service]增加TimeoutStartSec=30,表示启动超时时间为30s。大家按需更改吧。

通过更改/etc/systemd/network/systemd-networkd-wait-online.service 将超时时间缩小,发现启动变快了,所以就定位到这个地方肯定导致延时了。当然这不是最终的原因和本质的问题,只是一个权宜之计。

正常解决

查找具体的原因,通过networkctl命令可以看到eth0网卡一直在configuring状态

这个网口实际上就是我正在用的网口,也是我通过临时设置ip(ifconfig eth0 192.168.xxx.xxx)并通过ssh登录上去截取的此图片,也就是说实际上这个网口是ok的。简单查一下这个工具发现networkctl用于查询systemd-networkd 所看到的网络连接的状态。

查看systemd-networkd配置为dhcp,自动分配ip

# cat /etc/systemd/network/eth0.network 
[Match]
Name=eth0
[Network]
DHCP=ipv4

试着简单猜想一下我手动设置的ip这个systemd-networkd服务是不认可的(因为实际去查看systemd-networked源码有点麻烦,就想先通过验证现象看看能不能验证猜想),经过查看参考以下连接,配置eth0的ip,启动就很丝滑了,没有什么延时现象。

配置如下:

[Match]
Name=eth0
[Network]
DNS=8.8.8.8
Address=192.168.1.151/24
Gateway=192.168.1.1

我的场景需求是需要用静态ip的,所以没有研究dhcp时自动分配为什么需要耗时那么多。

systemd-netword配置文件更改参考链接如下

systemd-networkd说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值