Ubuntu 24.04 LTS 解决网络连接问题

1. 问题描述

  • 现象ens33 网络接口无法获取 IPv4 地址,导致网络不可用。
  • 初步排查
    • 运行 ip a,发现 ens33 接口没有分配 IPv4 地址。
    • 运行 ping www.baidu.com,提示"网络不可达"。
    • 查看 NetworkManager 日志,发现 DHCP 请求失败。

2. 详细排查与修复过程

步骤 1:检查网络接口状态
  • 命令
bash 复制代码
 ip a
  • 部分输出
bash 复制代码
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 
link/ether 00:0c:29:75:7b:81 brd ff:ff:ff:ff:ff:ff 
altname enp2s1 
inet6 fe80::f06a:5b51:ac6a:a797/64 scope link noprefixroute 
valid_lft forever preferred_lft forever 
  • 分析
    • ens33 接口已启用(UP 状态),但没有分配 IPv4 地址(没有 inet 行)。

步骤 2:检查网络配置文件
  • 命令

    bash 复制代码
    sudo cat /etc/netplan/*.yaml
  • 输出

    yaml 复制代码
    network:
      version: 2
      ethernets:
        NM-1636652f-5720-414e-9282-xxxxxxxxcf99:
          renderer: NetworkManager
          match:
            name: "ens33"
          dhcp4: true
          dhcp6: true
          wakeonlan: true
          networkmanager:
            uuid: "1636652f-5720-414e-9282-xxxxxxxxf99"
            name: "配置 1"
            passthrough:
              ethernet._: ""
              ipv6.addr-gen-mode: "default"
              ipv6.ip6-privacy: "-1"
              proxy._: ""
  • 分析

    • 配置文件中启用了 dhcp4,但 DHCP 未分配 IP 地址。

步骤 3:检查虚拟机网络设置
  • 发现
    • 虚拟机的 vmnet8 网络设置如下:
      • 子网 IP:192.168.213.0
      • 网关:192.168.213.2
      • 子网掩码:255.255.255.0

步骤 4:手动配置静态 IP
  • 命令

    bash 复制代码
    sudo nano /etc/netplan/*.yaml
  • 修改后的配置文件

    yaml 复制代码
    network:
      version: 2
      ethernets:
        NM-1636652f-5720-414e-9282-xxxxxxxxcf99:
          renderer: NetworkManager
          match:
            name: "ens33"
          addresses:
            - 192.168.213.100/24
          routes:
            - to: 0.0.0.0/0
              via: 192.168.213.2
          nameservers:
            addresses:
              - 8.8.8.8
              - 8.8.4.4
          wakeonlan: true
          networkmanager:
            uuid: "1636652f-5720-414e-9282-xxxxxxxxcf99"
            name: "配置 1"
            passthrough:
              ethernet._: ""
              ipv6.addr-gen-mode: "default"
              ipv6.ip6-privacy: "-1"
              proxy._: ""
  • 应用配置

    bash 复制代码
    sudo netplan apply

步骤 5:验证网络配置
  • 命令

    bash 复制代码
    ip a
  • 输出

    复制代码
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:75:7b:81 brd ff:ff:ff:ff:ff:ff
        inet 192.168.213.100/24 brd 192.168.213.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe75:7b81/64 scope link
           valid_lft forever preferred_lft forever
  • 分析

    • ens33 接口已成功分配静态 IP 地址 192.168.213.100/24

步骤 6:测试网络连接
  • 测试网关

    bash 复制代码
    ping 192.168.213.2
  • 输出

    复制代码
    PING 192.168.213.2 (192.168.213.2) 56(84) bytes of data.
    64 bytes from 192.168.213.2: icmp_seq=1 ttl=64 time=0.123 ms
    64 bytes from 192.168.213.2: icmp_seq=2 ttl=64 time=0.098 ms
  • 测试外部网络

    bash 复制代码
    ping 8.8.8.8
  • 输出

    复制代码
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=10.2 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=9.8 ms
  • 分析

    • 网络连接正常。

步骤 7:重启系统并验证
  • 重启系统

    bash 复制代码
    sudo reboot
  • 验证网络

    • 重启后,运行 ping www.baidu.com,确认网络连接正常。

关键点总结

  • DHCP 失败:由于 DHCP 无法分配 IP 地址,手动配置静态 IP 是最有效的解决方案。
  • NetworkManager :确保 NetworkManager 服务正常运行。
  • 备份配置文件:在修改网络配置前,备份原有配置文件。
相关推荐
chlk12319 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑20 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件20 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端