Ubuntu Server 22.04配置静态内网IP失败,网卡状态异常求助
看起来你遇到的是Netplan配置后网卡无法正常启动,还触发了开机网络等待超时的问题,我来帮你一步步排查解决:
首先检查Netplan配置文件的缩进格式
YAML对空格缩进的要求非常严格,哪怕多一个或少一个空格都会导致配置不生效。你的配置文件应该调整成如下正确格式(注意每个层级用2个空格缩进,不要用Tab):network: version: 2 renderer: networkd ethernets: eno1: dhcp4: no dhcp6: no addresses: [192.168.0.2/24] gateway4: 192.168.0.1 nameservers: addresses: [8.8.8.8]保存文件后先执行
sudo netplan generate验证配置有没有语法错误,再执行sudo netplan apply。确认网卡名称是否准确
虽然你用ip address show看到了eno1,但输出里还显示了备用名称enp0s31f6,有可能系统实际识别的网卡是这个备用名。可以尝试把配置文件里的eno1替换成enp0s31f6,再重新应用配置测试。手动启动网卡并重新加载配置
先执行命令将网卡手动激活:sudo ip link set eno1 up之后重新应用Netplan配置:
sudo netplan apply完成后再次用
ip address show dev eno1检查,看看网卡状态是否变为<UP,BROADCAST,MULTICAST>,同时确认静态IP是否已配置。解决开机网络等待超时问题
那个2分钟的等待是因为systemd在等待网络配置完成但失败导致的超时。你可以调整超时时间:- 编辑服务配置文件:
sudo nano /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service - 找到
TimeoutStartSec参数,将其修改为10sec(或者你觉得合适的短时间),保存退出。 - 同时可以查看
systemd-networkd的状态,获取具体报错信息:
这里的日志能帮你定位核心问题,比如IP冲突、网卡驱动异常等。sudo systemctl status systemd-networkd
- 编辑服务配置文件:
检查静态IP是否存在冲突
在局域网内的其他设备上执行ping 192.168.0.2,如果能收到响应,说明这个IP已经被其他设备占用了,换一个未被使用的IP再配置即可。
完成以上步骤后重启系统,应该就能正常加载静态IP,网卡也会处于正常工作状态,开机的网络等待超时问题也会解决,这样你就能顺利部署Pi-hole的DHCP服务了。
备注:内容来源于stack exchange,提问作者Santiago Toscanini

