Tips: CLI 下控制 NetworkManager

想象一下这么一个场景:某次更新有某些包装漏了,结果重启后进不了图形系统,只好切换到终端下,把软件包补齐。这时候需要先配置下网络。现在都 2013 年了,难道配置网络这种事情还要靠 ifconfig 、 route 这些玩意手动来做吗?

显然不用。图形界面下我们有方便好用的 NetworkManager (当然,好用的前提是你不会碰到一些特别奇怪的网络环境),其实 CLI 下一样有,那就是 nmcli 。

nmcli 的用法是非常简单的。要激活一个链接,可以按以下步骤进行:

$ LC_ALL=C nmcli con

输入这行命令可以显示出系统中当前存在的链接配置,按照 ID 、UUID 、类型和上次使用时间的顺序给出。例如:

NAME                      UUID                                   TYPE              TIMESTAMP-REAL
CMCC                      5cc416b9-ff72-4fb3-b596-d40c25666c9f   802-11-wireless   Tue Nov 13 15:48:54 2012
HZAU                      dc2f69b4-d401-421c-b9cf-0938895af769   pppoe             Wed Feb 20 00:34:17 2013
uboot                     af43cf43-1bd0-4c5a-a5cb-df052535eb96   802-3-ethernet    Mon Mar 25 14:05:13 2013
Default                   8f5ad6f4-f82b-45fb-89a9-65b0fd2d1d46   802-3-ethernet    Wed Apr 10 00:36:39 2013
HUST_WIRELESS_5.8G        9358c2ca-1df4-4d3f-a864-12a5c7b4336b   802-11-wireless   Mon Dec  3 19:35:14 2012
HUST_WIRELESS             7e7d2cac-b04f-4264-93c8-afa6ad6554f0   802-11-wireless   Mon Dec  3 14:31:27 2012
HUST                      ef90d46a-7a29-4134-8c3b-994844841e54   802-3-ethernet    Wed Apr 10 09:52:21 2013

其中 Default 就是自动配置了,会先尝试 DHCP ,如果失败则分配 169.254.0.0/16 这样的 link-local 地址。其余的项目都是用户在图形界面下的 NetworkManager 里面添加的,可以根据需要自行选用激活。例如,这里我要用到的配置 ID 为“ HUST ”,它将自动配置好我科校园网的 IP 、网关和 DNS 。

由于 VT 不支持中文,所以在命令前加上了“ LC_ALL=C ”来防止 nmcli 输出无法显示的中文字符。

$ LC_ALL=C nmcli con up id HUST

这条命令会激活“ HUST ”配置文件。其输出一般如下:

Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/0

值得注意的是,执行 nmcli 并不需要特权。

一般也就会用到这两条。如果对配置 ID 比较熟悉的话,第一条也可以省掉了。激活新的链接一般不需要手动断开旧的。

nmcli 的更多用法可以用“ nmcli -h ”或者“ man nmcli ”来获得。

发表评论

电子邮件地址不会被公开。 必填项已用*标注