起因
前天发现一台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如何启动网络
,得到的结果是运行:
systemctl start network.service
结果提示错误:
代码语言:javascript复制Unit network.service could not be found
然后搜索Unit network.service could not be found
的解决方法,找到的结果是需要安装NetworkManager
,运行:
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
,没有报错:
CT-6058 c3# service NetworkManager start
Redirecting to /bin/systemctl start NetworkManager.service
在运行service network restart
,也没有报错:
CT-6058 c3# service network restart
Restarting network (via systemctl): [ OK ]
然后运行ifconfig
,可以看到设置了外网IP的网卡接口信息了。高兴。然后测试网络,发现正常了。奇迹就此诞生。
感慨
廉价VPS果然是没啥服务。不知道高价VPS的商家会不会帮忙搞定这样的问题。