在命令行在进行多网络管理是源于我的一个特殊需求,但是由于种种原因,又不想换回network那种老方式去管理网络.
先说说这个特殊需求:
在笔记本上运行Ubuntu(虚拟机),系统带一个网站项目,因为既要在办公室和家里能同时通过外网调试项目,所以也集成了花生壳.在这种情况下因为家里和办公室的网络环境不一样,所以在Ubuntu用NetworkMangager做了两个配置文件,一个Office配置,一个Home配置,每次换环境时,在桌面用鼠标进行网络配置的切换.
当前的问题时,这个项目的的开发进入了另一个阶段,为了让其它开发人员也能访问,也要考虑节约内存的前提下,从虚拟机调低了Ubuntu的内存值,以后从命令行进行网络管理.
那么问题就来了,
1.两个配置文件都指定的静态Ip地址,所以NetworkManager会认为两个配置文件都可以用,不会通过智能检测进行网络切换;
2.在命令行下如何进行NetworkManager的手工切换.
你可能会说,把网络环境统一一下,家里和办公室的配置都可以用一个IP访问不就得了.这样一来,办公室去更换网络配置,肯定会影响其他同事,家里的更换网络环境,其它设备也要跟着换(手机,电视,盒子..)也是很麻烦的事情.
因为刚入手Ubuntu环境,高手应该有更好的办法,所以请高手勿喷:
先来看看NetworkManager的使用帮助:
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-t[erse] terse output
-p[retty] pretty output
-m[ode] tabular|multiline output mode
-f[ields]
-e[scape] yes|no escape columns separators in values
-n[ocheck] don't check nmcli and NetworkManager versions
-v[ersion] show program version
-h[elp] print this help
OBJECT
nm NetworkManager's status
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
再来看看我的配置:
dinofish@ubuntu:~$ nmcli c
名称 UUID 类型 真实时间戳
Home 626e0ddd-c03d-4138-8b67-13284c6427f6 802-3-ethernet 2014年08月04日 星期一 01时34分55秒
Office 2de58f26-884d-43e9-a451-0ccb68892637 802-3-ethernet 2014年08月04日 星期一 01时15分34秒
一个Home配置一个Office配置
那么每次进行切换时,只需要运行如下命令即可:
dinofish@ubuntu:~$ nmcli c up id Office
或者
dinofish@ubuntu:~$ nmcli c up id Home