网络配置的两种方式
Ubuntu下修改网络配置有两种方式:图形界面方式(network-manager)和修改/etc/network/interfaces
但是如果两种方式的网络设置不同,就会产生冲突,即:network-manager与/etc/network/interfaces文件冲突。

Server版本
在Ubuntu Server版本中,因为只存有命令行模式,所以要想进行网络参数设置,只能通过修改配置文件 /etc/network/interfaces 。具体设置方法如下:
(1) Ubuntu Server 修改 IP地址
打开 /etc/network/interfaces:
    sudo vim /etc/network/interfaces
加入以下语句:
    auto eth0
    iface eth0 inet static
        addressxxx.xxx.xxx.xxx      #IP地址
        netmask xxx.xxx.xxx.xxx #子网掩码
        gateway xxx.xxx.xxx.xxx #网关
(2) Ubuntu Server 修改 DNS
打开 /etc/resolv.conf
    sudo vim /etc/resolv.conf
改为如下内容:
    search localdomain #如果本Server为DNS服务器,可以加上这一句,如果不是,可以不加
    nameserver 172.16.3.4 #希望修改成的DNS
    nameserver 172.16.3.3 #希望修改成的DNS
(3) Ubuntu Server 重启网络
在rc.local里加入这个重启网络配置的命令:
    sudo /etc/init.d/networking restart

Desktop版本
在Desktop版本中,除了可以修改 /etc/network/interfaces
来进行配置以外;还可以直接在network-manager中配置。通过interfaces
修改的方法参照Server版本。network-manager的配置和直观,按照提示一步一步操作即可,如下图。有兴趣的朋友,可以自行Google
或者Baidu。

network-manager和/etc/network/interfaces冲突
如果修改了interfaces ,又配置了network-manager(简称nm),你就会发现出现了一些莫名其妙的问题:
1:interfaces 和 nm 中的网络设置不一样,系统实际的IP是哪个?
2:有时候莫名其妙的,界面右上角的网络连接图标就丢失了。
3:明明在nm中配置了正确的网络设置,为什么就上不了网呢?

其实,我们要知道 interfaces 和 nm 之间的关系,这些问题就不难解释了。

network-manager和/etc/network/interfaces的关系
1:当系统内无第三方网络管理工具(如 nm)时,系统默认使用 interfaces 文件内的参数进行网络配置。
2:当系统内安装了 nm 之后,nm 默认接管了系统的网络配置,使用 nm 自己的网络配置参数来进行配置。
3:但若用户在安装 nm 之后(Desktop版本默认安装了nm),自己又手动修改了 interfaces 文件,
      那 nm 就自动停止对系统网络的管理,系统改使用 interfaces 文件内的参数进行网络配置。
      此时,再去修改 nm 内的参数,不影响系统实际的网络配置。
      若要让 nm 内的配置生效,必须重新启用nm 接管系统的网络配置。

现在知道了两者之间的工作关系,再看上面的三个问题:
1:要看nm是否接管,如果没有接管,系统实际的IP设置以 interfaces 中的为准。反之,以 nm 中的为准。
2:当 nm 停止接管的时候,网络连接图标就丢失了。
3:同样是接管的问题。
     如果用户希望在Desktop版本中,直接使用 interfaces 进行网络配置,那最好删除 network-manager 。

network-manager重新接管
如果在出现上述问题之后,希望能继续使用 nm 来进行网络配置,则需要进行如下操作:
sudo service network-managerstop                                        #停止 nm 服务
sudo rm/var/lib/NetworkManager/NetworkManager.state       #移除 nm 的状态文件
sudo gedit /etc/NetworkManager/nm-system-settings.conf     #打开 nm 的配置文件
## 里面有一行:managed=true
## 如果你手工改过 /etc/network/interfaces ,nm 会自己把这行改成:managed=false
## 将 false 修改成 true
sudo service network-manager start

network-manager与interfaces冲突的更多相关文章

  1. [转]network-manager与interfaces冲突

      [转]network-manager与interfaces冲突   http://blog.sina.com.cn/s/blog_48a45b9501010681.html   网络配置的两种方式 ...

  2. 解决面板里没有network manager图标的问题 ,也就是在桌面环境下,没有那个网络图标

    在安装好了桌面之后,竟然发现没有那个连接网络的图标,本来想连接无限网络.可是.......如果去手动命令行下去配置这个连接wifi有些麻烦,所以我还是去找解决办法了 我执行了一条命令就解决了 gcon ...

  3. A start job is running for Network Manager wait online (29s / no limit) 等待30s解决办法

    电脑安装openSUSE42.3和 Ubuntu16.04 双系统,当电脑插上网线后开机会出现A start job is running for Network Manager wait onlin ...

  4. NetworkManager的坑(如何让network manager不去管理网络端口)

    在CentOS上,有时你需要停止并禁用 NetworkManager.但这样做了之后,其实NetworkManager还在影响着你的端口. 比如你有端口配置如下: [root@compute02 ~] ...

  5. Python编写的Linux网络设置脚本,Debian Wheezy上测试通过

    hon编写的Linux网络设置脚本,Debian Wheezy上测试通过       阿里百川梦想创业大赛,500万创投寻找最赞的APP 技术细节参见Linux网络设置高级指南 注意事项参见程序注释 ...

  6. ubuntu安装pppoeconf后与networkmanager冲突

    使用pppoeconf拨号后,Network Manager显示设备未托管的解决办法: 在终端中输入以下命令,来配置网络连接管理文件: sudo gedit /etc/NetworkManager/n ...

  7. Setup network on centos 7

    How to Setup network on centos 7     After installing Centos 7, You may not able to connect network ...

  8. Configure network bonding on RHEL (Red Hat Enterprise Linux)

    Question: Recently I have to use the RHEL and need to config the network with a few NICs. Here comes ...

  9. Connection Manager简称connman

    ConnMan    Connection Manager简称connman,connman是使用d-bus做为进程间通信机制来管理Linux网络链接的一种软件.在connman的d-bus接口中,有 ...

随机推荐

  1. windows系统npm如何升级自身

    其实使用npm升级各种插件是很方便的,比如我想升级express框架,使用如下命令 npm update express 如果你的express是全局安装,则 npm update -g expres ...

  2. python时间函数

    import time print time.time() print time.localtime() fm = '%Y-%m-%d %H:%M:%S' YMD = time.strftime(fm ...

  3. php 记住密码自动登录

    当我们登录网站管理后台的时候,会有提示说记住登录状态,记住我等这样的提示,这个选项有什么用呢?如果选中了记登录状态后,下次在浏览这个网站后 台时就不用在填写用户名和密码了,在去登录了.下面写了一小代码 ...

  4. C语言学习second--C语言基础学习

    1.标准C语言 C语言诞生于20世纪70年代,年龄比我们自己还要大,期间产生了很多标准,但是各种编译器对标准的支持不尽相同. ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语 ...

  5. Google机器学习笔记 4-5-6 分类器

    转载请注明作者:梦里风林 Google Machine Learning Recipes 4 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen ...

  6. python操作 redis-list

    #!/usr/bin/python #!coding: utf-8 import redis if __name__=="__main__": try: conn=redis.St ...

  7. MySQL索引背后的数据结构及最左原则

    MySQL索引原理 ##索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql.如果没有索引,那么你可能 ...

  8. CentOS7 lamp安装 centoOS6 lamp

    快速lamp安装 How To Install Linux, Apache, MySQL, PHP (LAMP) stack On CentOS 7 Introduction A "LAMP ...

  9. flex-linkbutton

    LinkButton 控件是没有边框的 Button 控件,当用户将鼠标移动到该控件位置时,其内容将加亮显示.这些特征通常借助包含在浏览器页面中的 HTML 链接进行展示.为使 LinkButton ...

  10. 模板应用--UI线程与worker线程同步 模仿c# invoke

    由之前的一篇博文 <UI线程与worker线程><UI线程与worker线程>引出,UI线程与worker线程“串行化”在win32上实现是多么没有节操的事情,代码编写麻烦不说 ...