抢救一台失去网络的VPS过程

2023-10-21 10:53:58 浏览数 (2)

起因

前天发现一台VPS的端口转发功能突然失效了。然后登录VPS重新设置,发现NAT模块好像无法使用了,iptables设置转发时提示错误:

代码语言:javascript复制
iptables v1.4.21: can't initialize iptables table 'nat': Table does not exist (do you need to insmod?)

尝试重新安装iptables,没用。换firewall,也没用。然后更新系统,也没用。无奈发TK反馈。几小时后TK回复:That should be solved now.然后我去检查,发现VPS根本连不上网了。又发了几次TK,2天后对方得到结论:是我自己更新系统破环了系统,只能重装。这样一来我就会失去一些重要数据,好后悔只自动备份了其中一部分数据。

抢救

后悔也没办法,谁让自己懒没有备份所有数据呢。登录SolusVM panel准备去重装。进去后突然瞥见有个Serial console按钮,这个按钮我以前没用过,看名字是个控制台功能。反正是个死鸡了,埋之前看看有没有起死回生的办法吧,看一眼也不费事。点进去看到写着:This serial console is for emergency access to your virtual server. 此控制台用于紧急访问服务器。然后点create session,得到了一个ssh信息。尝试连接,居然连上了!看了一下里面的文件,居然真的是我的服务器!!瞬间激动无比,因为这意味着我可以通过ssh把里面的文件传出来了,即使必须重装,也不必丢失重要数据。然后开始传文件,速度慢的可怜,10k/s.

起死回生

在上面抢救重要文件的漫长等待中,我有些无聊。于是想:要不试试看能不能把这台VPS的网络给修复好?. 开始时我没这样想,是因为我是一个菜鸟,对Linux系统只懂些皮毛,很多命令和机制都不会,平常都是需要用什么就去网上搜。但是这个传文件的过程真的太漫长了,与其无聊的等等等,还是死马当成活马医来试试吧。 运行ifconfig查看网卡信息,发现只有127.0.0.1这个接口。系统的网络应该是没有启动起来。网络搜索Centos7 网络配置,根据搜到的信息检查/etc/sysconfig/network-scripts目录下的配置文件,能看到我VPS的外网IP等信息,我也是半吊子,凭感觉判断配置文件没什么问题。然后搜Centos如何启动网络,得到的结果是运行:

代码语言:javascript复制
systemctl  start network.service

结果提示错误:

代码语言:javascript复制
Unit network.service could not be found

然后搜索Unit network.service could not be found的解决方法,找到的结果是需要安装NetworkManager,运行:

代码语言:javascript复制
yum install NetworkManager*
此路不通

因为此时VPS根本没有网络,通过yum在线安装软件肯定不会成功。 结果可想而知,是几百条错误信息,这里只贴出一部分:

代码语言:javascript复制
http://mirror.sfo12.us.leaseweb.net/centos/7.8.2003/os/x86_64/Packages/unbound-libs-1.6.6-3.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.sfo12.us.leaseweb.net; Unknown error"
Trying other mirror.
rest-0.8.1-2.el7.x86_64.rpm    FAILED                                          
http://mirror.centos.lax1.serverforge.org/7.8.2003/os/x86_64/Packages/rest-0.8.1-2.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.centos.lax1.serverforge.org; Unknown error"
Trying other mirror.
xkeyboard-config-2.24-1.el7.no FAILED                                          
http://mirror.hostduplex.com/centos/7.8.2003/os/x86_64/Packages/xkeyboard-config-2.24-1.el7.noarch.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.hostduplex.com; Unknown error"
Trying other mirror.
wpa_supplicant-2.6-12.el7.x86_ FAILED                                          
http://mirrors.xtom.com/centos/7.8.2003/os/x86_64/Packages/wpa_supplicant-2.6-12.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.xtom.com; Unknown error"
Trying other mirror.
libgudev1-219-73.el7_8.5.x86_6 FAILED                                          
http://mirror.shastacoe.net/centos/7.8.2003/updates/x86_64/Packages/libgudev1-219-73.el7_8.5.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.shastacoe.net; Unknown error"
Trying other mirror.
ppp-2.4.5-34.el7_7.x86_64.rpm  FAILED                                          
http://mirror.shastacoe.net/centos/7.8.2003/updates/x86_64/Packages/ppp-2.4.5-34.el7_7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.shastacoe.net; Unknown error"
Trying other mirror.

Error downloading packages:
  libXi-1.7.9-1.el7.x86_64: [Errno 256] No more mirrors to try.
  gcr-3.28.0-1.el7.x86_64: [Errno 256] No more mirrors to try.
  NetworkManager-libreswan-gnome-1.2.4-2.el7.x86_64: [Errno 256] No more mirrors to try.
  NetworkManager-libreswan-1.2.4-2.el7.x86_64: [Errno 256] No more mirrors to try.
  1:NetworkManager-libnm-1.18.4-3.el7.x86_64: [Errno 256] No more mirrors to try.
  1:NetworkManager-libnm-devel-1.18.4-3.el7.x86_64: [Errno 256] No more mirrors to try.
  glib-networking-2.56.1-1.el7.x86_64: [Errno 256] No more mirrors to try.
峰回路转

我看到yum命令安装软件时尝试下载的都是.rpm文件,这是一种软件安装包。我突然想到:

既然我现在能通过紧急控制台(应该是VPS宿主机提供的)通过ssh连接到我的VPS,可以向VPS传输文件,那么我能不能现在自己电脑上下载好这些安装包,然后把他们传到VPS上,再手动安装呢?

想到就干

把上面的错误信息复制出来,提取里面的http链接(100多条),然后批量下载到一个文件夹。为了节约传输时间,先把所有文件打包压缩成成1个zip文件,然后传到VPS,再解压。然后运行:

代码语言:javascript复制
rpm -ivh *.rpm

运行结果:

代码语言:javascript复制
CT-6058 soft# rpm -ivh *.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:libXrender-0.9.10-1.el7          ################################# [  1%]
   2:atk-2.28.1-2.el7                 ################################# [  2%]
   3:NetworkManager-libnm-1:1.18.4-3.e################################# [  3%]
   4:libnl3-3.2.28-4.el7              ################################# [  4%]
   5:libXfixes-5.0.3-1.el7            ################################# [  5%]
   6:mesa-libglapi-18.3.4-7.el7       ################################# [  5%]
   7:libwayland-client-1.15.0-1.el7   ################################# [  6%]
   8:jansson-2.10-1.el7               ################################# [  7%]
   9:NetworkManager-glib-1:1.18.4-3.el################################# [  8%]
  10:libXdamage-1.1.4-4.1.el7         ################################# [  9%]
  11:libnl3-cli-3.2.28-4.el7          ################################# [ 10%]
  12:wpa_supplicant-1:2.6-12.el7      ################################# [ 11%]
  13:pixman-0.34.0-1.el7              ################################# [ 12%]
  14:mobile-broadband-provider-info-1.################################# [ 13%]
  15:libxshmfence-1.2-1.el7           ################################# [ 14%]
  16:libwayland-server-1.15.0-1.el7   ################################# [ 14%]
  17:libusbx-1.0.21-1.el7             ################################# [ 15%]
  18:libpcap-14:1.5.3-12.el7          ################################# [ 16%]
  19:libgudev1-219-73.el7_8.5         ################################# [ 17%]
  20:libglvnd-1:1.0.1-0.8.git5baa1e5.e################################# [ 18%]
  21:libXi-1.7.9-1.el7                ################################# [ 19%]
  22:ModemManager-glib-1.6.10-3.el7_6 ################################# [ 20%]
  23:libXtst-1.2.3-1.el7              ################################# [ 21%]
  24:at-spi2-core-2.28.0-1.el7        ################################# [ 22%]
  25:at-spi2-atk-2.26.2-1.el7         ################################# [ 23%]
  26:ldns-1.6.16-10.el7               ################################# [ 23%]
  27:ppp-2.4.5-34.el7_7               ################################# [ 24%]
  28:libgusb-0.2.9-1.el7              ################################# [ 25%]
  29:libteam-1.29-1.el7               ################################# [ 26%]
  30:libwayland-cursor-1.15.0-1.el7   ################################# [ 27%]
  31:libXcursor-1.1.15-1.el7          ################################# [ 28%]
  32:libXft-2.3.2-2.el7               ################################# [ 29%]
  33:libXrandr-1.5.1-2.el7            ################################# [ 30%]
  34:xkeyboard-config-2.24-1.el7      ################################# [ 31%]
  35:libxkbcommon-0.7.1-3.el7         ################################# [ 32%]
  36:unbound-libs-1.6.6-3.el7         ################################# [ 32%]
  37:slang-2.2.4-11.el7               ################################# [ 33%]
  38:newt-0.52.15-4.el7               ################################# [ 34%]
  39:mozjs17-17.0.0-20.el7            ################################# [ 35%]
  40:polkit-0.112-26.el7              ################################# [ 36%]
  41:polkit-pkla-compat-0.1-4.el7     ################################# [ 37%]
  42:libwayland-egl-1.15.0-1.el7      ################################# [ 38%]
  43:libthai-0.1.14-9.el7             ################################# [ 39%]
  44:libsecret-0.18.6-1.el7           ################################# [ 40%]
  45:libseccomp-2.3.1-4.el7           ################################# [ 41%]
  46:libndp-1.2-9.el7                 ################################# [ 41%]
  47:NetworkManager-1:1.18.4-3.el7    ################################# [ 42%]
  48:NetworkManager-wwan-1:1.18.4-3.el################################# [ 43%]
  49:libmodman-2.0.1-8.el7            ################################# [ 44%]
  50:libproxy-0.4.11-11.el7           ################################# [ 45%]
  51:libepoxy-1.5.2-1.el7             ################################# [ 46%]
  52:libdaemon-0.14-7.el7             ################################# [ 47%]
  53:teamd-1.29-1.el7                 ################################# [ 48%]
  54:libXxf86vm-1.1.4-1.el7           ################################# [ 49%]
  55:libXinerama-1.1.3-2.1.el7        ################################# [ 50%]
  56:libXcomposite-0.4.4-4.1.el7      ################################# [ 50%]
  57:lcms2-2.6-3.el7                  ################################# [ 51%]
  58:colord-libs-1.3.4-2.el7          ################################# [ 52%]
  59:json-glib-1.4.2-2.el7            ################################# [ 53%]
  60:jbigkit-libs-2.0-11.el7          ################################# [ 54%]
  61:libtiff-4.0.3-32.el7             ################################# [ 55%]
  62:jasper-libs-1.900.1-33.el7       ################################# [ 56%]
  63:gdk-pixbuf2-2.36.12-3.el7        ################################# [ 57%]
  64:gtk-update-icon-cache-3.22.30-5.e################################# [ 58%]
  65:iptables-1.4.21-34.el7           ################################# [ 59%]
  66:iproute-4.11.0-25.el7_7.2        ################################# [ 59%]
  67:libreswan-3.25-8.1.el7_7         ################################# [ 60%]
  68:NetworkManager-libreswan-1.2.4-2.################################# [ 61%]
  69:hwdata-0.252-9.5.el7             ################################# [ 62%]
  70:libpciaccess-0.14-1.el7          ################################# [ 63%]
  71:libdrm-2.4.97-2.el7              ################################# [ 64%]
  72:libglvnd-glx-1:1.0.1-0.8.git5baa1################################# [ 65%]
  73:mesa-libGL-18.3.4-7.el7          ################################# [ 66%]
  74:mesa-libgbm-18.3.4-7.el7         ################################# [ 67%]
  75:libglvnd-egl-1:1.0.1-0.8.git5baa1################################# [ 68%]
  76:mesa-libEGL-18.3.4-7.el7         ################################# [ 68%]
  77:cairo-1.15.12-4.el7              ################################# [ 69%]
  78:cairo-gobject-1.15.12-4.el7      ################################# [ 70%]
  79:hicolor-icon-theme-0.12-7.el7    ################################# [ 71%]
  80:gsettings-desktop-schemas-3.28.0-################################# [ 72%]
  81:glib-networking-2.56.1-1.el7     ################################# [ 73%]
  82:libsoup-2.62.2-2.el7             ################################# [ 74%]
  83:rest-0.8.1-2.el7                 ################################# [ 75%]
  84:graphite2-1.3.10-1.el7_3         ################################# [ 76%]
  85:harfbuzz-1.7.5-2.el7             ################################# [ 77%]
  86:fribidi-1.0.2-1.el7_7.1          ################################# [ 77%]
  87:pango-1.42.4-4.el7_7             ################################# [ 78%]
  88:dconf-0.28.0-4.el7               ################################# [ 79%]
  89:dbus-devel-1:1.10.24-13.el7_6    ################################# [ 80%]
  90:dbus-glib-devel-0.100-7.el7      ################################# [ 81%]
  91:bluez-libs-5.44-6.el7            ################################# [ 82%]
  92:avahi-libs-0.6.31-20.el7         ################################# [ 83%]
  93:cups-libs-1:1.6.3-43.el7         ################################# [ 84%]
  94:adwaita-cursor-theme-3.28.0-1.el7################################# [ 85%]
  95:adwaita-icon-theme-3.28.0-1.el7  ################################# [ 86%]
  96:gtk3-3.22.30-5.el7               ################################# [ 86%]
  97:gcr-3.28.0-1.el7                 ################################# [ 87%]
  98:libnma-1.8.6-2.el7               ################################# [ 88%]
  99:libnm-gtk-1.8.6-2.el7            ################################# [ 89%]
 100:NetworkManager-libreswan-gnome-1.################################# [ 90%]
 101:NetworkManager-bluetooth-1:1.18.4################################# [ 91%]
 102:NetworkManager-glib-devel-1:1.18.################################# [ 92%]
 103:NetworkManager-team-1:1.18.4-3.el################################# [ 93%]
 104:NetworkManager-adsl-1:1.18.4-3.el################################# [ 94%]
 105:NetworkManager-ovs-1:1.18.4-3.el7################################# [ 95%]
 106:NetworkManager-ppp-1:1.18.4-3.el7################################# [ 95%]
 107:NetworkManager-tui-1:1.18.4-3.el7################################# [ 96%]
 108:NetworkManager-wifi-1:1.18.4-3.el################################# [ 97%]
 109:NetworkManager-libnm-devel-1:1.18################################# [ 98%]
 110:NetworkManager-dispatcher-routing################################# [ 99%]
 111:NetworkManager-config-server-1:1.################################# [100%]

安装成功,小激动了一下。然后运行:

代码语言:javascript复制
systemctl start network.service

依然提示错误:

代码语言:javascript复制
Failed to start network.service: Unit not found.

又在网上搜索,感觉可能需要先运行:

代码语言:javascript复制
service NetworkManager start

现在回想一下,可能运行systemctl start NetworkManager也可以,可能会避免下一个遇到的错误和需要安装的包(只是猜测,不确定)。

这次遇到的错误是:

代码语言:javascript复制
-bash: service: command not found

然后又通过搜索这个错误信息,找到答案,需要运行:

代码语言:javascript复制
yum -y install initscripts

同样用上次的方法,先把安装包下载到本地,再上传到VPS,再手动安装。

代码语言:javascript复制
Trying other mirror.
initscripts-9.49.49-1.el7.x86_ FAILED                                          
http://mirror.hostduplex.com/centos/7.8.2003/os/x86_64/Packages/initscripts-9.49.49-1.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.hostduplex.com; Unknown error"
Trying other mirror.

Error downloading packages:
  initscripts-9.49.49-1.el7.x86_64: [Errno 256] No more mirrors to try.

CT-6058 soft# ^C
CT-6058 soft# cd ../
CT-6058 ~# mkdir c3
CT-6058 ~# cd c3
CT-6058 c3# rz

CT-6058 c3# rpm -ivh *.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:initscripts-9.49.49-1.el7        ################################# [100%]

然后运行service NetworkManager start,没有报错:

代码语言:javascript复制
CT-6058 c3# service NetworkManager start
Redirecting to /bin/systemctl start NetworkManager.service

在运行service network restart,也没有报错:

代码语言:javascript复制
CT-6058 c3# service network restart
Restarting network (via systemctl):                        [  OK  ]

然后运行ifconfig,可以看到设置了外网IP的网卡接口信息了。高兴。然后测试网络,发现正常了。奇迹就此诞生。

感慨

廉价VPS果然是没啥服务。不知道高价VPS的商家会不会帮忙搞定这样的问题。

0 人点赞