Ubuntu16.04网络配置
背景
- Platform: X64
- OS: Ubuntu16.04 Desktop
过程
以前在嵌入式Linux中,一直是通过/etc/network/interfaces
来配置静态IP。
在Ubuntu的Desktop版本一直使用图形界面配置的静态IP。
这次没接显示器,想通过命令行来配置,然后cat /etc/network/interfaces
,发现不对,以前配置的静态IP根本不在里面,里面只有Loopback:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
后面发现Ubuntu16.04的Desktop版本里,图形界面配置是通过第三方网络管理工具NetworkManager
进行配置的。也可以通过interfaces
进行配置,但是两者不能同时配置,会冲突出现一些莫名其妙的问题。
其实,只要弄清楚interfaces和 nm之间的关系,这些问题就不难解释了。
首先,当系统内没有第三方网络管理工具(比如nm)时,系统默认使用nterfaces文件内的参数进行网络配置。
接着,当系统内安装了nm之后,nm默认接管了系统的网络配置,使用nm自己的网络配置参数来进行配置。
但是,如果用户在安装nm之后(Desktop版本默认安装了nm),自己手动修改了interfaces 文件,那nm 就自动停止对系统网络的管理,系统改使用interfaces 文件内的参数进行网络配置。
此时,再去修改nm 内的参数,不影响系统实际的网络配置。若要让nm 内的配置生效,必须重新启用nm 接管系统的网络配置。
为了与图形界面配置同步一致,不影响图形界面配置,打算不使用interfaces
进行配置,但NetworkManager
的配置在哪呢?
找了下,对,就在sudo cat /etc/NetworkManager/system-connections/xxx
,xxx是你现在正在使用的网络连接的名字,即在图形界面看到的那个名字。
修改[ipv4]
的部分:
[ipv4]
address1=192.168.5.14/24,192.168.5.1
dns=192.168.5.1;
dns-search=
method=manual
然后重启机器生效。