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就会显示一些相似于下面的输出:
- - Device: eth0 -----------------------------------------------------------------
- Type 802-3-ethernet
- Driver pcnet32
- State connected
- Default no
- HW Address 00:0C:29:C3:87:30
- Capabilities:
- Carrier Detect yes
- Wired Properties
- Carrier on
- IPv4 Settings:
- Address 172.16.146.140
- Prefix 24 (255.255.255.0)
- Gateway 172.16.146.2
- DNS 172.16.146.2
若是你想要关闭一个链接,你可使用诸如nmcli con down id <id>的东西, 这里<id>是某个链接的ID。nmcli如今还不像ifconfig那样灵活和功能完善,不过这仅仅是一个开始。
展望将来
毫无疑问,NetworkManager还没有完成,或许永远也不可能完成。总有新的设备须要支持,新的功能须要增长。另外,NetworkManager在让许多用户在使用主流、标准的网络配置时变得简便,但未必适应那些不常见的配置。
好比,颇有可能在0.8.2或者之后版本中出现的功能有 网络接口bonding 和为一个以太网接口 同时分配一个PPPoE地址和本地地址。
无论怎么说,NetworkManager已经成为Linux桌面的一项杀手级功能。若是你未曾想过管理家里,办公室和旅途中的各类网络链接是多么的复杂,那么你能够感谢NetworkManager,是它让你的生活变得更加轻松。