Linux系統重啟network服務失敗


 

 

問題描述
使用KVM通過修改配置文件配置好網卡IP,使用命令行service network restart 重啟網絡服務失敗。

如圖:



使用圖形化管理工具配置IP,在系統界面右上角可以看到網卡狀態為未連接,配置好IP以后使用service network restart命令時報同樣的錯。

如圖:


告警信息
使用ping命令查看路由是否通暢,系統提示“network is unreachable”。
處理過程
解決的方法很簡單,直接將NetworkManager服務關閉即可。步驟描述如下:

步驟 1 查看NetworkManager服務是否開啟。

因系統版本各異,NetworkManager服務的具體名稱可以用chkconfig --list查看。

如圖所示:



從圖中,可以發現NetworkManager服務已經開啟了。

步驟 2 禁用NetworkManager服務。

將當前激活的服務關閉,使用下面的命令:

service NetworkManager stop

使用下面的命令禁止服務自啟動。

chkconfig NetworkManager off

步驟 3 使用腳本方式配置IP地址。
根因
使用/etc/network/interfaces腳本文件配置IP信息的時候,使用的是Network服務;使用圖形化界面配置IP地址的時候,使用的是NetworkManager服務。

Netwok服務和NetworkManager服務之間存在下面的關系:
  • 當系統內無NetworkManager時,系統默認使用Netwok服務進行網絡配置。
  • 當系統內啟用了NetworkManager之后,NetworkManager默認接管了系統的網絡配置。此時需要使用NetworkManager自己的網絡配置參數來進行配置。適用於桌面環境,例如使用筆記本等。
Netwok服務和NetworkManager服務之間不能同時共存,兩者為了避免沖突,又能共享配置,就有下面的解決方案:
  • 當Network-Manager發現/etc/network/interfaces被改動的時候,則關閉自己(顯示為未托管),除非NetworkManager的相關標志位設置成真。
  • 當NetworkManager的相關標志位設置成真時,/etc/network/interfaces,則不生效。
從Red Hat 6開始,默認是開啟NetworkManager服務的,此時通過修改腳本的方式配置IP地址將無效,除非將相關標志位設置為假。例如,使用DHCP配置的IP地址,其格式如下:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:1F:29:57:8B:A8"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"

不同的系統中,NetworkManager服務的標志位不同。例如Ubuntu中是存放在配置文件/etc/NetworkManager/nm-system-settings.conf中,名稱為managed。

配置文件修改后,需要重啟NetworkManager服務。

本案例中,系統默認啟用了NetworkManager服務,詳細信息如下所示:

[root@localhost ~]# chkconfig|grep -i network
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@localhost ~]#

此時再啟用Network服務時是不生效的。所以重啟Network服務會失敗。
建議與總結
從Red Hat 6開始,默認是開啟NetworkManager服務的,此時通過修改腳本的方式配置IP地址將無效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM