开始用指令service network restart重启网络服务时,出现了这样的信息
Restarting network (via systemctl): Job for network.service failed. See *systemctl status network.service* and *journalctl -xn* for details.
我用根据linux服务器提示的处理信息,查看了系统网络服务状态
systemctl status network.service
LSB:linux standard base,linux的一套标准规范。能够让linux符合软件系统架构,或是文件系统架构标准规范。
/usr/lib /unix系统资源/库目录,常用的动态链接库和软件包的配置文件 ,我推论/usr/lib/lsb应该是调用系统配置文件检查操作是否符合规范。
我根据推论 /usr/lib/lsb的意思和以及报错的理解,可能是哪个网络配置操作不符合规范出了问题。
我首先进入到网络脚本配置目录里,紧接着查看了下网络配置
cd /etc/sysconfig/network-scripts
cat ifcfg-enoXXXXXX
发现并没有什么错(一开始是连不上终端的,这是连上之后的,脚本配置并没有改,方便显示,等会我再说网络服务启动失败的事),由此排除脚本配置错误。接着引发第二个问题,是不是外部物理机网络配置与虚拟机网络配置交互出了问题。
环回网络设置对的
VMware虚拟网络配置编辑器选项配置桥接网络也是对的
接下来查看了虚拟机设置,发现是出了问题的。教室默认的是桥接模式(B):直接连接物理网络,复制物理机网络连接状态(p),我改为自定义(U):特定虚拟网络,VMnet2(桥接模式)。为什么这么改(往下看)。
之所以这么改,是因为桥接网络匹配不对。 教室物理机是配的四块网卡,桥接模式(B):直接连接物理网络,连接的是本地连接6的网络,并不是桥接到本地连接5的环回网卡,而本地连接6的网络是192.168.4.XX,显然与linux的10.20.1.XX不能交互导致终端连接受阻。
这时终端连接成功,并不需要重启网络服务,我认为有个逻辑问题。我用excel做了个草图
客户端->服务器操作大体流程,涉及到C/S(客户端/服务器)架构了,C/S架构就是底层触发的协议是TCP/IP协议,而B/S(浏览器/服务器)是触发http协议建立在TCP/IP协议基础之上的协议。流程先客户端去连接服务器,而不是服务器去向客户端先发连接响应。这也就是不需要重启linux服务器网络的原因。因为没有改变linux服务器网络配置,而是改变客户端连接方式。
这时连接成功并不代表网络配置服务正常重启,如图
我接着再次更改虚拟机配置,自动桥接全换成了仅主机模式,定义桥接也行,环回ip指向的是Linux的服务器ip地址,当然指向环回地址的好处和仅主机效果一样的,这样就不会引起多人局域网配置虚拟网络一样所造成的冲突。类似hosts文件的127.0.0.1的原理效果(我这里简单描述一下这只是http协议的小部分:我在浏览器输入http://www.XXX.com,浏览器解析主机名-找到hosts文件查看主机ip是否有www.XXX.com,如果有则不去寻找外网的dns查询域名,没有则寻找dns)。
此时网络服务启动成功了