解决阿里云轻量级服务器 Ubuntu 24.04.1 LTS 没网也 ping 不通 8.8.8.8 以及 route -n 没有输出任何转发信息

ops/2024/12/12 15:32:14/

事情发生在两天前,位于公网的阿里云轻量级服务器Ubuntu 24.04.1 LTS)忽然没网。主要是上次上服务器进行配置已经是一个多月前,最近也没有做什么事情,就忽然没网了,让人纳闷。更主要的是,上次备份是一个多月前,如果回滚,最近一个月上传的数据将会丢失。最后,花了三个小时,终于解决了问题。

一、故障现象

在当前故障状态下打了个备份,回滚到上一次可以联网的状态进行分析。对比发现,主要有以下几个故障现象。

(一)ping 不通

发现在自己电脑尝试使用 ssh、https 等协议访问服务器不同的端口都无法访问,ping 也 ping 不进去。在阿里云救援连接下执行 ping www.baidu.com 不通,执行 ping 8.8.8.8 也不通。感觉就是完全没网。

(二)执行 ifconfig 只有 lo 没有 eth0

回滚了一下以前的版本,发现可以联网,执行 ifconfig,显示如下(具体 IP 地址用 X 进行了代替)。

root@Universe:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet XXX.XXX.XXX.XXX  netmask XXX.XXX.XXX.XXX  broadcast XXX.XXX.XXX.XXXinet6 XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>ether 00:16:3e:0c:12:69  txqueuelen 1000  (Ethernet)RX packets 1759  bytes 194870 (194.8 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1826  bytes 1352244 (1.3 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 332540  bytes 27292720 (27.2 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 332540  bytes 27292720 (27.2 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在当前故障状态下,执行 ifconfig,显示如下,没有 eth0。

root@Universe:~# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 332540  bytes 27292720 (27.2 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 332540  bytes 27292720 (27.2 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(三)执行 route -n 没有任何信息

回滚到可以联网的版本时,执行 route -n 是有数据的(用 X 替换了真实 IP)。

root@Universe:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         XXX.XXX.XXX.XXX   0.0.0.0         UG    100    0        0 eth0
XXX.XXX.XXX.XXX   XXX.XXX.XXX.XXX   255.255.255.255 UGH   100    0        0 eth0
XXX.XXX.XXX.XXX   XXX.XXX.XXX.XXX   255.255.255.255 UGH   100    0        0 eth0
XXX.XXX.XXX.XXX      0.0.0.0         255.255.192.0   U     100    0        0 eth0
XXX.XXX.XXX.XXX   0.0.0.0         255.255.255.255 UH    100    0        0 eth0

故障状态下,执行 route -n,没有有效数据。

root@Universe:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

(四)阿里云控制台诊断未发现异常

诊断

二、分析与尝试

(一)从 ping 下手

如果只是 ping www.baidu.com 失败而 ping 8.8.8.8 成功,那应该是 DNS 问题,解决这个问题,网上教程有很多。但是,根据故障现象(一)可以知道,连 8.8.8.8 都 ping 不通,那肯定不(只)是 DNS 的问题。笔者也试了一下当成 DNS 问题进行解决,但服务器依旧无法连接上。
百度和谷歌搜索 ping temporary failure in name resolution 和 ping connect network is unreachable 了半天,说要修改 /etc/resolv.conf,添加 8.8.8.88.8.4.4,但对比了一下之前正常联网的文件,发现该文件没有变化,所以应该不用修改。事实上,笔者尝试过修改,无济于事。

root@Universe:~# cat /etc/resolv.conf
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.nameserver 127.0.0.53
options edns0 trust-ad
search .

(二)搜索其它相关解决方案(可能对其它网络问题有用可逐个尝试)

  1. 修改 /etc/sysconfig/network-script 下的配置文件,发现 cd 到这个目录时提示目录不存在;
  2. 使用 Network-Manager、networkmanger、nmcli、netset 等工具和 service XXX restart 等命令重启网络管理器,均提示不存在或服务未安装,检查发现正常状态下也没有装过这些东西,所以,尝试 apt 安装,想啥呢,没网啊;
  3. 使用 /etc/init.d/networking,提示没有这个文件(怎么什么都没有);
  4. 见得最多的是 /etc/network/interfaces,cd 过去,哦吼,又没有这个文件夹;
  5. GPT 说从 Ubuntu 17 开始,/etc/network/interfaces 变成了 netplan,比较了下故障状态下和正常状态下的配置,发现 /etc/netplan 下多了个 yaml 文件,于是删除了多余的 yaml 文件,只留下了 50-cloud-init.yaml,不过还是不行,但这个更改还是做了吧,毕竟和以前正常状态下的保持一致一般没错;
  6. 设置默认网关,主要是笔者在当前阶段执行 ifconfig 连 eth0 都没有,所以执行 route add default gw 自然失败,但这最后助攻了一手。

(三)从 ifconfig 执行

既然没有 eth0,那就执行
ipconfig eth0 up。启动 eth0 网卡后,再次执行 ifconfig,有 eth0 了,但是没有 inet,显示如下。

root@Universe:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>ether 00:16:3e:0c:12:69  txqueuelen 1000  (Ethernet)RX packets 1759  bytes 194870 (194.8 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1826  bytes 1352244 (1.3 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 332540  bytes 27292720 (27.2 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 332540  bytes 27292720 (27.2 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

于是,根据之前的地址,执行了 ifconfig eth0 XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX。再次执行 ifconfig,发现除了 RX 和 TX 之外,故障状态下和正常联网状态下的输出没有什么不同。感觉 eth0 转发的数据应该要比 lo 的多得多,而故障状态下的服务器并非如此,于是尝试在谷歌和百度上搜索这个问题,没搜索到结果,可能是表达问题。最后,想了想,应该是要把默认网卡切为 eth0,依照此思路执行了 route add default gw XXX.XXX.XXX.XXX eth0(这里的 XXX.XXX.XXX.XXX 对应上文 gateway 下面的地址)。忽然,一切问题得到了解决。

解决方案

执行 ifconfig eth0 up 把网关启用回来,然后执行 ifconfig eth0 XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX 把网卡 eth0 加回来,最后用 route add default gw XXX.XXX.XXX.XXX eth0 设置默认网关,结束。


http://www.ppmy.cn/ops/141272.html

相关文章

【Linux】进程间通信——System V共享内存

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…

Vue进阶之路由管理

一、概念 路由&#xff08;Router&#xff09;&#xff1a;在Vue.js应用中&#xff0c;路由用于实现单页应用&#xff08;SPA&#xff09;的页面切换效果。它就像是一个“导航系统”&#xff0c;根据不同的URL路径&#xff0c;决定展示哪个组件。例如&#xff0c;在一个电商网…

【鸿蒙HarmonyOS|第1期】鸿蒙开发工具下载与安装

日期&#xff1a;2024年12月10日 作者&#xff1a;Commas&#xff08;程序员阿康&#xff09; 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&…

模拟KTV点歌系统的程序

欢迎来到点歌系统 0.添加歌曲 1.将歌曲置顶 2.将歌曲前移一位 3.退出 当前歌单为&#xff1a;【我是一个粉刷匠 卖报歌 拔萝卜 小兔子乖乖 小跳蛙】 请输入要执行的操作序号: 0 请输入要添加的歌曲名称: 快乐的一天 已添加歌曲&#xff1a;快乐的一天 当前歌单为&am…

Cesium中实现仿ArcGIS三维的动态图层加载方式

Cesium 加载 ArcGIS 动态图层的方式 如果你在 Cesium 中加载过 ArcGIS 的动态图层&#xff0c;你会发现&#xff0c;Cesium 对于动态图层仍然采用类似切片图层的逻辑进行加载。也就是每个固定的瓦片 export 一张图片。 这样会造成一些问题&#xff1a; 请求量大&#xff0c;…

小程序-基于java+SSM+Vue的校园水电费管理小程序设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

SkyWalking Helm Chart 4.7.0 安装、配置

https://skywalking.apache.org/events/release-apache-skywalking-kubernetes-helm-chart-4.7.0/https://github.com/apache/skywalking-helm/tree/v4.7.0https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/简介 skywalking 是分布式系统的 APM(Applicat…

软件工程知识点

软件开发模型1 软件开发模型2 软件过程模型习惯上也称为软件开发模型&#xff0c;它是软件开发全部过程、活动和任务的结构框典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型基于构件的开发模型和形式化方法模型等。 极限编程 开发方法 RUP…