沉默的Linux网管利器NetworkManager

运维 系统运维
在Linux中有一个从未被歌颂过,但是却必不可少的软件:NetworkManager。早期的NetworkManager用起来非常痛苦,但现在它已经成为了一个强大的工具。最新的0.8.1版很快可以在Fedora 13中看到,带来了很多改进。

Firefox 和OpenOffice之类的应用软件占据了所有的光辉,因为它们看得见摸得着,是自由桌面的基石型应用。但那些静静地运行在后台,默默地完成它们工作的程序呢,是不是除非碰到bug之外就直接被忽略掉?其中这样一个重要而未被歌颂过,但Linux用户却不可缺少的软件就是NetworkManager。

什么是NetworkManager?

NetworkManager由几个部分组成:一个管理系统网络连接、并且将其状态通过D-BUS进行报告的后台服务,以及一个允许用户管理网络连接的客户端程序。开发NetworkManager的初衷是简化网络连接的工作,让桌面本身和其他应用程序能感知网络。

绝大部分用户不必关心NetworkManager的后台服务,他们只通过GUI的applets来管理网络连接。对于GNOME和Xfce那就是nm-applet工具,而对于KDE用户来说就是KNetworkManager了。

许多Linux用户不记得,甚至根本不曾认识到在早期Linux里面管理网络连接时的那种折腾与痛苦。尤其是对于笔记本用户这种需要连接到两个甚至更多网 络的情况。虽然早期版本的NetworkManager用起来也是一种痛苦(那个时候曾经有个外号叫NetworkMangler,即网络磨肉机),不过现在它已经成为了一个强大的工具,让管理网络不再痛苦。

比如说吧,我记得两年前我把我的Verizon无线EV-DO卡装入openSUSE 11.0的时候,NetworkManager根本不需要任何设置。它识别了这张卡,并且出现在GNOME工具栏的下拉菜单里面,唯一须要进行的操作就是 点击“连接”。这是这些年来我碰到的最简单的配置无线网卡的方式。

不过总是有需要改进的地方,因此NetworkManager也在继续发展。即将到来的0.8.1版本已经可以在Fedora 13中找到,带来了许许多多的改进和新功能。

0.8.1的新功能

***版本的NetworkManager包括了许多新的特征,其中绝大部分都跟支持更多的的网络设备有关。移动用户将会很喜欢这个版本,因为0.8.1增加了用于GSM、UMTS和CDMA卡等移动宽带设备ModemManager的支持。使用ModemManager也有新的功能,比如信号强度显示和选择2G/3G模式的功能。***(当然并不止这些),你还可以关掉漫游功能以避免产生额外的连接费用。

0.8.1还支持使用蓝牙,不仅支持个人区域网络(PAN)上网,也支持老的蓝牙拨号网络(DUN)协议。所有(或者说最多)支持的设备可以在wiki上找到。

如果你是为数不多的使用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,是它让你的生活变得更加轻松。

【编辑推荐】

  1. 七大实用命令行工具 玩转Linux网络配置
  2. 系统崩溃 十款Linux救援工具任你挑
  3. Linux管理员不可不知的五大命令+工具
责任编辑:yangsai 来源: linuxplanet.com
相关推荐

2010-04-16 12:08:20

2010-12-21 17:00:49

网康上网行为管理网络管理

2012-05-07 16:20:17

云网管美信

2015-11-24 10:46:06

LinuxNetworkManasystemd-net

2014-06-19 14:23:00

千兆交换机华三

2010-08-12 14:20:49

Cobbler

2011-04-26 09:52:15

LinuxPDF

2011-11-14 09:17:14

Linux运维ClusterShel

2023-12-10 21:35:45

Linux服务器日志分析

2019-02-11 14:50:21

Linux分区命令

2010-05-10 15:14:13

inotifyLinux文件系统

2021-05-11 11:11:04

NetworkManaWireGuard虚拟私有网络

2011-09-02 13:32:20

CG水晶石

2009-04-20 16:35:07

三省原则网管摩卡软件

2009-11-09 09:45:19

网管员

2010-11-18 22:42:10

Oracle服务器虚拟化VMware

2011-06-23 10:01:47

.NET

2010-03-24 15:40:39

网管运维管理摩卡软件

2012-10-19 13:50:40

Linux管理效率技巧

2014-03-17 11:52:31

友盟APP
点赞
收藏

51CTO技术栈公众号