Mr. Z374 2024-09-22 09:08 采纳率: 100%
浏览 1088
已结题

ubuntu 20.04 网卡启用后,只有ipv6 没有 ipv4 无法上网

ubuntu 20.04 网卡启用后,只有ipv6 没有 ipv4 无法上网 已关闭防火墙 安装了宝塔
IP地址配置好的。但也无法上网。网络灯正常。

  • 写回答

17条回答 默认 最新

  • bug菌¹ 优质创作者: Java、算法与数据结构技术领域 2024-09-22 21:03
    关注

    该回答引用ChatGPT-4o,望对题主有所帮助/启发;若有帮助,还望采纳🤝🤝🤝


    在 Ubuntu 20.04 中,网卡启用后如果只有 IPv6 没有 IPv4,可能是网络配置或 DHCP 服务器未正确分配 IPv4 地址。以下是一些常见的排查步骤及解决方案:

    1. 检查网络接口状态

    首先,查看当前网络接口的状态,确认是否配置了 IPv4 地址:

    ip addr show
    

    如果只看到 inet6 地址而没有 inet(IPv4)地址,那么问题可能与 DHCP 或手动 IP 配置有关。

    2. 重启网络服务

    尝试重启网络服务,看看是否能重新获取 IPv4 地址:

    sudo systemctl restart NetworkManager
    

    或者,如果你没有使用 NetworkManager,可以使用 netplan 重启网络配置:

    sudo netplan apply
    

    3. 检查 DHCP 设置

    可能的情况是网络未正确获取到 DHCP 分配的 IPv4 地址。检查是否启用了 DHCP 配置:

    1. 查看网络配置文件,通常在 /etc/netplan/ 目录下:

      sudo nano /etc/netplan/01-netcfg.yaml
      
    2. 确保你的网络配置文件中有类似以下内容来启用 DHCP(IPv4 和 IPv6):

      network:
        version: 2
        renderer: networkd
        ethernets:
          eth0:
            dhcp4: true
            dhcp6: true
      
    3. 保存配置文件后,运行:

      sudo netplan apply
      

    4. 手动配置 IPv4 地址

    如果 DHCP 无法分配 IPv4 地址,尝试手动设置静态 IP:

    1. 编辑 /etc/netplan/01-netcfg.yaml 或其他网络配置文件,添加静态 IP 设置。例如:

      network:
        version: 2
        renderer: networkd
        ethernets:
          eth0:
            addresses:
              - 192.168.1.100/24  # 设置静态IP地址
            gateway4: 192.168.1.1   # 设置网关
            nameservers:
              addresses:
                - 8.8.8.8           # 设置DNS服务器
                - 8.8.4.4
      
    2. 保存后,运行 netplan apply 来应用配置:

      sudo netplan apply
      

    5. 检查网络路由

    使用 ip route 命令检查默认路由是否正确设置:

    ip route
    

    如果没有默认 IPv4 路由 (default via),可以手动添加:

    sudo ip route add default via 192.168.1.1
    

    6. 检查 DNS 配置

    有时网络问题是由于 DNS 配置不当引起的。检查 /etc/resolv.conf,确保 DNS 服务器正确配置。

    例如,确保文件包含有效的 DNS 服务器,如 Google DNS:

    nameserver 8.8.8.8
    nameserver 8.8.4.4
    

    如果 resolv.conf 被覆盖或重启后消失,可以在 netplan 配置中直接设置 nameservers,如步骤 4 所示。

    7. 关闭IPv6(如果不需要)

    如果只需要 IPv4 而不使用 IPv6,可以尝试禁用 IPv6:

    1. 编辑 /etc/sysctl.conf 文件:

      sudo nano /etc/sysctl.conf
      
    2. 添加以下行来禁用 IPv6:

      net.ipv6.conf.all.disable_ipv6 = 1
      net.ipv6.conf.default.disable_ipv6 = 1
      net.ipv6.conf.lo.disable_ipv6 = 1
      
    3. 运行以下命令应用更改:

      sudo sysctl -p
      

    8. 检查防火墙

    虽然你提到已经关闭了防火墙,还是可以再确认 iptables 规则,看看是否有拦截 IPv4 的规则:

    sudo iptables -L
    

    如果需要清除所有 iptables 规则,使用以下命令:

    sudo iptables -F
    

    9. 检查宝塔面板配置

    由于你安装了宝塔面板,可能它修改了系统的网络配置。检查宝塔面板的安全规则,确保其没有阻止 IPv4 流量。

    总结

    通过以上步骤,你应该能排查出为什么你的 Ubuntu 20.04 系统只获取到 IPv6 而没有 IPv4。如果问题仍然存在,可能需要进一步排查网络环境,如路由器的 DHCP 配置是否正常工作等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(16条)

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 修改了问题 9月22日
  • 创建了问题 9月22日