沉默的Linux網管利器NetworkManager

Firefox 和OpenOffice之類的應用軟件佔據了全部的光輝,由於它們看得見摸得着,是自由桌面的基石型應用。但那些靜靜地運行在後臺,默默地完成它們工做的 程序呢,是否是除非碰到bug以外就直接被忽略掉?其中這樣一個重要而未被歌頌過,但Linux用戶卻不可缺乏的軟件就是NetworkManager。網絡

什麼是NetworkManager?app

NetworkManager由幾個部分組成:一個管理系統網絡鏈接、而且將其狀態經過D-BUS進行報告的後臺服務,以及一個容許用戶管理網絡鏈接的客戶端程序。開發NetworkManager的初衷是簡化網絡鏈接的工做,讓桌面自己和其餘應用程序能感知網絡。工具

絕大部分用戶沒必要關心NetworkManager的後臺服務,他們只經過GUI的applets來管理網絡鏈接。對於GNOME和Xfce那就是nm-applet工具,而對於KDE用戶來講就是KNetworkManager了。spa

許多Linux用戶不記得,甚至根本未曾認識到在早期Linux裏面管理網絡鏈接時的那種折騰與痛苦。尤爲是對於筆記本用戶這種須要鏈接到兩個甚至 更多網 絡的狀況。雖然早期版本的NetworkManager用起來也是一種痛苦(那個時候曾經有個外號叫NetworkMangler,即網絡磨肉機),不過 如今它已經成爲了一個強大的工具,讓管理網絡再也不痛苦。命令行

好比說吧,我記得兩年前我把個人Verizon無線EV-DO卡裝入openSUSE 11.0的時候,NetworkManager根本不須要任何設置。它識別了這張卡,而且出如今GNOME工具欄的下拉菜單裏面,惟一需要進行的操做就是 點擊「鏈接」。這是這些年來我碰到的最簡單的配置無線網卡的方式。code

不過老是有須要改進的地方,所以NetworkManager也在繼續發展。即將到來的0.8.1版本已經能夠在Fedora 13中找到,帶來了許許多多的改進和新功能。htm

0.8.1的新功能接口

最新版本的NetworkManager包括了許多新的特徵,其中絕大部分都跟支持更多的的網絡設備有關。移動用戶將會很喜歡這個版本,由於 0.8.1增長了用於GSM、UMTS和CDMA卡等移動寬帶設備ModemManager的支持。使用ModemManager也有新的功能,好比信號 強度顯示和選擇2G/3G模式的功能。最後(固然並不止這些),你還能夠關掉漫遊功能以免產生額外的鏈接費用。開發

0.8.1還支持使用藍牙,不只支持我的區域網絡(PAN)上網,也支持老的藍牙撥號網絡(DUN)協議。全部(或者說最多)支持的設備能夠在wiki上找到。get

若是你是爲數很少的使用IPv6聯網的用戶之一(事實上他們發誓之後每一個人都會用上),你會很高興地發現如今NetworkManager支持IPv6的自動配置和靜態IP了。0.8.1版本還會帶來IPv6的DHCP支持。

儘管大多數最近的改變都是加強設備或者協議的支持,可0.8.1也一樣給咱們代來了一個新的漂亮的客戶端界面。

命令行接口

在我看來,0.8.1中最有趣的特徵是nmcli,一個NetworkManager的命令行接口。雖然NetworkManager在管理網絡鏈接方面有着巨大的飛躍,可是有一點倒退到老風格的管理方式的是忽略了命令行接口。只用GUI配置網絡有錯嗎?

有幾個問題。一部分用戶可能沒有使用可以方便地支持NetworkManager的applet的桌面環境或者窗口管理器。有些人或者根本就沒有使用GUI環境。用戶也有可能想經過編寫腳本的方式來管理網絡接口,若是惟一可用的控制器是GUI的話這會變得很是困難。

終於,NetworkManager有了本身 的CLI工具,nmcli。使用nmcli用戶能夠查詢網絡鏈接的狀態,也能夠用來管理。這個工具依然有點原始,不過其語法相對簡單,而且對於那些真正需 要在CLI中使用NetworkManager的人來講並不太難掌握。好比,列舉系統中的網絡接口只須要運行:

nmcli dev list就會顯示一些相似於下面的輸出:

 
  1. - Device: eth0 -----------------------------------------------------------------  
  2. Type 802-3-ethernet  
  3. Driver pcnet32 
  4. State connected  
  5. Default no  
  6. HW Address 00:0C:29:C3:87:30 
  7.  
  8. Capabilities:  
  9. Carrier Detect yes  
  10.  
  11. Wired Properties  
  12. Carrier on  
  13.  
  14. IPv4 Settings:  
  15. Address 172.16.146.140 
  16. Prefix 24 (255.255.255.0)  
  17. Gateway 172.16.146.2 
  18.  
  19. DNS 172.16.146.2 
  20.  

若是你想要關閉一個鏈接,你可使用諸如nmcli con down id <id>的東西, 這裏<id>是某個鏈接的ID。nmcli如今還不像ifconfig那樣靈活和功能完善,不過這僅僅是一個開始。

展望將來

毫無疑問,NetworkManager還沒有完成,或許永遠也不可能完成。總有新的設備須要支持,新的功能須要增長。另外,NetworkManager在讓許多用戶在使用主流、標準的網絡配置時變得簡便,但未必適應那些不常見的配置。

好比,頗有可能在0.8.2或者之後版本中出現的功能有 網絡接口bonding 和爲一個以太網接口 同時分配一個PPPoE地址和本地地址。

無論怎麼說,NetworkManager已經成爲Linux桌面的一項殺手級功能。若是你未曾想過管理家裏,辦公室和旅途中的各類網絡鏈接是多麼的複雜,那麼你能夠感謝NetworkManager,是它讓你的生活變得更加輕鬆。

相關文章
相關標籤/搜索