Job for network.service failed
问题
初始CentOS网络是NAT模式,ssh远程连接正常,切换为桥接模式后再次远程连接失败,报错 Job for network.service failed
然后各种尝试:
systemctl restart sshd
systemctl start|stop|restart|status network
systemctl start network.service
ifup ens33
查看/etc/ssh/sshd-scripts/ifcfg-ens33
文件
重启
等一顿操作后还是连不上。
于是查询后得知:
在CentOS系统上,有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去。
解决方法:
1.查看network的状态
systemctl status network.service
2.检索systemd日志
#journalctl - 检索 systemd 日志,是 CentOS 7 才有的工具。
journalctl -xe
3.将networkmanager服务停了
systemctl stop NetworkManager
systemctl disable NetworkManager
4.重启网卡,就ok了
systemctl restart network
systemctl status network
5.查看所有已安装服务
systemctl list-units --type=service
此时已正常打开。
总结:
NetworkManager是一个在Linux系统上管理网络连接的工具。它提供了一个统一的接口,用于配置、监控和控制网络连接。NetworkManager可以管理以太网、Wi-Fi、蓝牙、移动宽带等各种类型的网络连接。
NetworkManager的主要功能包括:
自动检测和配置网络连接:NetworkManager可以自动检测可用的网络设备,并根据配置文件或用户的设置自动配置网络连接。
管理多个网络连接:NetworkManager可以同时管理多个网络连接,例如有线和无线网络连接,以及移动宽带连接。
自动切换网络连接:如果有多个可用的网络连接,NetworkManager可以根据优先级和可用性自动切换到最佳的网络连接。
提供命令行和图形界面工具:NetworkManager提供了命令行工具(nmcli)和图形界面工具(nm-applet),方便用户配置和管理网络连接。
而network是一个更底层的概念,通常指代计算机网络。计算机网络是指将多台计算机通过通信设备互连起来,实现数据传输和资源共享的系统。网络可以按照规模分为局域网(LAN)、城域网(MAN)、广域网(WAN)等不同类型。网络通常由硬件设备(如路由器、交换机)和软件协议(如TCP/IP协议)组成。
ifup启动网卡的逻辑
1. ifup寻找一个名为/etc/sysconfig/network-scripts/ifcfg-XXX
的文件
2. 如果该ifcfg
文件存在,则在该文件中ifup
查找参数TYPE
以确定要调用的特定类型的脚本
3. ifup
调用ifup-wireless
或ifup-TYPE
4. 执行特定的设置
network和NetworkManager
该/etc/sysconfig/
目录是配置文件和脚本的位置。大多数网络配置信息存储在此处,但VPN
,移动宽带
和PPPoE
配置除外,这些信息存储在/etc/NetworkManager/
子目录中。
对于全局设置,请使用该/etc/sysconfig/network
文件。
有关VPN
,移动宽带
和PPPoE连接
的信息存储在中/etc/NetworkManager/system-connections/
如果编辑ifcfg
文件,NetworkManager
不会自动知道更改,用nmcli connection reload
重新读取配置。或者,要仅重新加载一个更改的文件,请执行以下操作nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname
使用诸如nmcli
之类的工具进行的更改不需要重新加载,但需要down
和up
,nmcli dev disconnect interface-name && nmcli con up interface-name
在启动时,network
读取所有ifcfg
文件,对于每个ONBOOT=yes
的文件,它检查NetworkManager
是否已经从该ifcfg
文件启动设备。
如果NetworkManager
正在启动该设备或已经启动该设备,则不再对该文件执行任何操作,并检查下一个ONBOOT=yes
文件。
如果NetworkManager
还没有启动该设备,那么初始化脚本将继续下去,并为该ifcfg
文件调用ifup
注意:建议不要将备份文件存储在/etc
目录中的任何位置,也不要与实时文件存储在同一位置,因为该脚本实际上是这样做的ifcfg-*
。只有这些扩展名被排除:.old .orig .rpmnew .rpmorig
和.rpmsave