CentOS系列發行版裏面有兩套管理網絡連接的方案:
第一套: network.service通過網絡配置腳本對網卡配置文件/etc/sysconfig/network-scripts/ifcfg-x(x代表某一個特定的網卡)內的參數進行網絡配置,網絡腳本通常是指/etc/init.d/network及所有它調用的已安裝腳本 。適用於CentOS7以前的版本,在CentOS8上,已廢棄了這種方式,具體的請看這篇文章:基於RHEL8/CentOS8的網絡IP配置詳解
第二套: Network-Manager 適用於有桌面的環境,特別是網絡連接情況隨時會變的情況。然而現在更新的發行辦更推薦的作法是使用NetworkManager來管理網絡,CentOS8只能通過這種方式。
NetworkManager 是爲了使網絡配置儘可能簡單而開發的網絡管理軟件包,目標是使網絡能夠開箱即用。是檢測網絡、自動連接網絡的程序。無論是無線還是有線連接,它都可以令您輕鬆管理。對於無線網絡,網絡管理器優先連接已知的網絡並可以自動切換到最可靠的無線網絡。利用網絡管理器的程序可以自由切換在線和離線模式。網絡管理器會相對無線網絡優先選擇有線網絡,支持 VPN。網絡管理器最初由 Redhat 公司開發,現在由 GNOME 管理。
NetworkManager 由兩部分組成:
一個以超級用戶運行的守護進程(NetworkManager )
一個前端管理程序與NetworkManager交互,用戶不與NetworkManager系統服務直接交互,而是通過圖形及命令行用戶界面工具執行網絡配置任務。
有以下工具可用:
1、提供命令行工具nmcli,允許用戶及腳本與NetworkManager交互。nmcli可用於缺少GUI的系統(比如服務器)以控制NetworkManager的各個方面。它與GUI工具處於同等地位。默認會與NetworkManager 一同安裝。
2、提供基於光標的文本用戶界面(TUI)nmtui, nmtui可提供一個文本界面來與NetworkManager交互。該工具包含在NetworkManager-tui子軟件包中。通常不會默認隨NetworkManager的安裝而安裝該子軟件包。需要單獨安裝 NetworkManager-tui,
3、桌面環境下用戶界面工具“網絡連接”,在CentOS6.x以前版本(GNOME2桌面環境)下可以通過桌面圖標或在終端輸入命令nm-connection-editor打開這個“網絡連接”程序,而在CentOS7以後的版本(GNOME3桌面環境)需要通過命令打卡,默認沒有提供相應的桌面圖標
4、CentOS7(GNOME3桌面環境)還可以在設置裏的網絡選項中進行網絡配置。
一、NetworkManager和network.service的關係
1、network.service
當系統內無NetworkManager時,系統默認使用network.service進行網絡配置。
在CentOS6.x以前的發行本中,默認使用network.service網絡腳本配置聯網。網絡腳本通常是指/etc/init.d/network 及所有它調用的已安裝腳本。用戶提供的文件通常被視爲配置文件,但也可以將其解讀爲對腳本的修,
在CentOS7中network.service是系統提供的服務之一,以兼容遺留的網絡功能。該服務的運行也被納入Systemd的管理,命令如下:
systemctl start|stop|restart|status network
但是在CentOS7依然還是可以用以前的命令service network {start|stop|status|restart|}來對網絡的進行操作,這個命令其實等同systemctl start|stop|restart|status network,兩者的執行結果是一樣的
注意,系統啓動時,/etc/init.d/network會讀取ifcfg文件,並檢測NetworkManager是否已經已經啓動該設備。如果NetworkManager已經啓動該設備,則/etc/init.d/network腳本什麼也不做;否則/etc/init.d/network會啓動該設備。
2. NetworkManager.service
從CentOS 7開始,網絡功能默認由NetworkManager以服務的形式提供。NetworkManager是一個能夠動態控制和配置網絡的守護進程,管理網絡服務和網絡連接,對應NetworkManager.service服務,其配置文件爲/etc/NetworkManager/NetworkManager.conf(默認爲空,無需任何配置)。
NetworkManager默認不會執行任何腳本。對於NetworkManager可運行的定製腳本,必須具備如下條件,NetworkManager才能按照字母順序執行這些腳本:
位於/etc/NetworkManager/dispatcher.d/目錄下
root用戶的可執行權限
二. 網絡配置文件
無論是network.service,還是NetworkManager.service,都能是對如下網絡相關的配置文件進行操作。
1、全局配置文件
/etc/sysconfig/network
2、網卡相關的配置文件/etc/sysconfig/network-scripts/
/etc/sysconfig/network-scripts/ifcfg-ethX
/etc/sysconfig/network-scripts/route-ethX
/etc/sysconfig/network-scripts/route6-ethX
/etc/sysconfig/network-scripts/rule-ethX
/etc/sysconfig/network-scripts/rule6-ethX
...
修改網絡配置文件後,可以通過NetworkManager.service的nmcli命令,重新加載網絡連接:
-----------------------------------
nmcli connection reload
-----------------------------------
也可以通過network.service,重新加載網絡連接:
-----------------------------------
systemctl restart network.service
-----------------------------------
三、network.service和NetworkManager衝突問題
當系統兩個服務都存在的時候,如果協調配置不好就會發生衝突,主要是在CentOS7下當使用network.service時可能出現service network restart失敗的現象
避免衝突最好的辦法就是,只使用一種服務
1、當使用network.service就關閉NetworkManager,不過如果是桌面環境這時候會發現右上角的網絡連接標誌沒有了,只是因爲把NetworkManager服務關閉的原因
將NetworkManager 服務設置開機不啓動
-----------------------------------
systemctl disable NetworkManager.service
-----------------------------------
將NetwokManager服務關閉
-----------------------------------
systemctl stop NetworkManager.service
-----------------------------------
重新啓動一下network服務
-----------------------------------
systemctl restart network.service
-----------------------------------
2、當使用NetworkManager就關閉network.service,如果是桌面環境,推薦用這種方法
將network.service 服務設置開機不啓動
-----------------------------------
chkconfig network off
-----------------------------------
將Nnetwork.service服務關閉
-----------------------------------
systemctl stop NetworkManager.service
-----------------------------------
重新啓動一下NetworkManager服務
-----------------------------------
systemctl restart NetworkManager.service
-----------------------------------
四、網絡配置的方法
方法1、通過nmcli或nmtui命令,後面會有專門的文章介紹。
方法2、GNOME3桌面環境
GNOME3桌面環境有兩個地方可以配置網絡,一個是在設置裏的網絡選項
二是通過nm-connection-editor命令打開“網絡連接”
GNOME2或Xfce桌面環境通過“網絡連接”進行配置
方法3、通過網絡配置文件進行配置,其實上面的方法最終都是保存到配置文件後生效的
配置方法開我前面的文章:CetnOS6 網絡配置,主機名配置
參考鏈接:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/networking_guide/index
https://wiki.gnome.org/Projects/NetworkManager
https://blog.csdn.net/taiyangdao/article/details/91824284
http://www.360doc.com/content/16/0902/15/7991404_587793790.shtml