簡介
我們在使用CentoOS系統(tǒng)時偶爾會遇到配置都正確但network啟動不了的問題,這問題經(jīng)常是由NetworkManage引起的,關(guān)閉NetworkManage并取消開機啟動network就能正常啟動。使用的Linux經(jīng)常使用命令行模式,所以大家都不怎么去了解NetworkManage,造成了糊里糊涂的解決問題。下面我們看一下NetworkManage的基礎(chǔ)使用。
分析
NetworkManage與network功能類似,都是用于管理網(wǎng)絡(luò),NetworkManage提供了nmctl和nmtui兩個工具:
nmctl:命令行工具
[root@mx ~]# nmcli --help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-a, --ask ask for missing parameters
-c, --colors auto|yes|no whether to use colors in output
-e, --escape yes|no escape columns separators in values
-f, --fields <field,...>|all|common specify fields to output
-g, --get-values <field,...>|all|common shortcut for -m tabular -t -f
-h, --help print this help
-m, --mode tabular|multiline output mode
-o, --overview overview mode
-p, --pretty pretty output
-s, --show-secrets allow displaying passwords
-t, --terse terse output
-v, --version show program version
-w, --wait <seconds> set timeout waiting for finishing operations
OBJECT
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
[root@mx ~]#
我們可以直接使用命令行來管理網(wǎng)絡(luò),下面是對應(yīng)參數(shù)項目與配置文件內(nèi)的參數(shù)對應(yīng)關(guān)系圖。

# 比如我這里設(shè)置eth0為手動設(shè)置靜態(tài)地址,為192.168.31.5,子網(wǎng)掩碼24,自啟動
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.31.5/24 connection.autoconnect yes
nmcli connection up eth0
nmtui:偽圖形界面
兩個都是用來管理網(wǎng)絡(luò),但是有一個前提:nmctl networking 狀態(tài)必須是enable否則設(shè)備狀態(tài)為unmanaged,這會導(dǎo)致network啟動不了!
查看方式如下:
[root@master03 ~]# nmcli networking
enabled
使用nmtui來查看網(wǎng)絡(luò),直接在命令行下敲nmtui,就會出現(xiàn)藍(lán)底的偽圖形界面,可以很方便地配置服務(wù)器的網(wǎng)絡(luò)。


設(shè)置完成后,要記得在第二項目中設(shè)置對應(yīng)網(wǎng)卡啟動,這樣才能正常使用。

解決
如果遇到network無法啟動的情況,檢測配置是是否有問題,如果是服務(wù)器(多網(wǎng)口),檢測網(wǎng)線是否插在你啟動的網(wǎng)網(wǎng)口上
檢測你的NetworkManage是否啟動,如果啟動了可參考一下方法處理
簡單粗暴:關(guān)閉NetworkManage服務(wù),并取消開機啟動(要是你使用的為命令行模式,沒有有用圖形界面,可以放心使用這種方法,使用圖形界面的話還是建議自己排查一下)
排查NetworkManage:
- 檢查nmctl networking 狀態(tài)是否為enabled,如果不是,執(zhí)行一下命令開啟
[root@master03 ~]# nmcli networking on
[root@master03 ~]# systemctl restart NetworkManager
[root@master03 ~]# systemctl restart network
[root@master03 ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
docker0 bridge unmanaged --
lo loopback unmanaged --
[root@master03 ~]#
-
檢測device有沒有連接到connection,命令:nmcli connection來查看連接狀態(tài)。
若沒有,則使用命令來連接:nmcli device connect ens33

- 檢測連接是否啟用
[root@master03 ~]# nmcli connection
NAME UUID TYPE DEVICE
ens33 4d574cba-a63e-49ae-8cb2-d663a8dd796e ethernet ens33
如果沒有啟用

注意了:我的連接名稱是ens33,根據(jù)你自己的情況自己改進,所有操作完成以后都執(zhí)行以下命令。
[root@master03 ~]# systemctl restart NetworkManager
[root@master03 ~]# systemctl restart network
否則可能不生效,當(dāng)然上面兩種網(wǎng)絡(luò)管理方式network與NetworkManager其它是相輔相成的作用,只需要使用其中一種方式來管理即可,另外一種可以禁用掉(注意:至少保持一種自啟動,否則可能會出現(xiàn)開機沒有網(wǎng)絡(luò)的狀況)。
我比較喜歡使用NetworkManager來管理網(wǎng)絡(luò),更大的強大和易用,所以我這里把NetworkManager設(shè)置為開機啟動,network為禁止開機啟動。使用以下命令來查看啟動狀態(tài)。
# 查看NetworkManager的是否為自啟動
[root@mx ~]# systemctl list-unit-files --type service | grep NetworkManager
# 查看network是否設(shè)置為自啟動
[root@mx ~]# chkconfig --list | grep network


至此!