Linux里面有两套管理网络连接的方案1:

  1. /etc/network/interfaces(/etc/init.d/networking)
  2. Network-Manager

这两套方案是冲突的,不能同时共存。
第一个方案适用于没有X的环境,如:服务器;或者那些完全不需要改动连接的场合。
第二套方案使用于有桌面的环境,特别是笔记本,搬来搬去,网络连接情况随时会变的。
-------------
他们两个为了避免冲突,又能共享配置,就有了下面的解决方案:

  1. 当Network-Manager发现/etc/network/interfaces被改动的时候,则关闭自己(显示为未托管),除非managed设置成true。
  2. 当managed设置成true时,/etc/network/interfaces,则不生效。

从上面这个帖子的介绍,让我想起了之前在重启网卡的时候,使用

$sudo ifdown eht0 && sudo ifup eth0
或者如下两条指令:
$sudo ifdown eth0
ifdown: interface eth0 not configured.  
$sudo ifup eth0
RTNETLINK answers: File exists.
Failed to bring up eth0.

始终不成功。
当时也参考了StackOverflow上的一个帖子 , 如果ifdown/ifup出错,可以试试如下解决方案(但未生效):
To addeth0=eth0to/run/network/ifstateto get it to recognize the interface and configure it properly.

然后就尝试使用

$sudo ifconfig  eth0  down
$sudo ifconfig  eth0  up

就可以了。
也就是说我的系统用的是第一种方式,第二种方式的指令我这里不生效。

但有一点没弄清楚的是,我尝试重启网卡,但没有成功,只能重启电脑。提示如下(我的系统是ubuntu14.04 LTS):

$sudo /etc/init.d/networking restart  
stop: Job Failed while stopping
start: Job is already running: netwroking

如有大侠知道原因或解决方法的,还请告知一下。谢谢!!

这篇博文 对比介绍了 ifup/ifdown ethX 和 ifconfig ehtX up/down的区别:

  • 相同点:【启用】和【禁止】网卡
    ifup ethX 和 ifconfig ethX up 用来启用网卡设备
    ifdown ethX 和 ifconfig ethX down 用来禁用网卡设备
  • 区别1:命令与脚本——本身属性的差别
    ifconfig: 设定网络参数时使用的指令
    ifup / ifdown: 设定网络参数时使用的脚本

    【脚本方式】 如:ifup/ifdown ethX(X表示网卡编号)
    ifup eth0     使用ifup脚本来启用网络接口eth0 。
    ifdown eth0   使用ifdown脚本禁止网络接口eth0 。
    
    【指令方式】 如:ifconfig ethX up/down(X表示网卡编号)
    ifconfig eth0 up    使用ifconfig命令启动网络接口eth0 。
    ifconfig eth0 down 使用ifconfig命令禁止网络接口eth0 。
  • 区别2:手动修改与自动配置
    ifconfig 是手动修改网络接口参数。
    ifup / ifdown 是修改配置文件里面的参数。

    ifup 与 ifdown 脚本是以 /etc/sysconfig/network-scripts/ifcfg-ethX文件来进行激活的!它会直接在/etc/sysconfig/network-scripts目录下搜索对应的配置文件(ifcfg-ethX),修改文件里面的参数。例如,对于网卡eth0来说,它会找到ifcfg-eth0这个文件,然后对文件的内容加以设置和修改。
    所以在使用ifup/ifdown前,首先要确认ifcfg-ethX文件是否存在于正确的目录内,如果不存在则会启动或关闭失败,也就是说ifup和ifdown除了存在 ethX这个实体网卡之外,还要存在ifcfg-ethX文件才行。

  • 区别3:关闭网卡时的区别
    如果用了ifconfig 修改或设置网络接口参数,那么就无法用ifdown ethX方式来关闭。
    这是因为ifdown会分析目前网络接口参数是否与文件ifcfg-ethX的配置参数是否一致,不一致的话,就会放弃操作。因此用ifconfig修改完后,需要用ifconfig ethX down 才能关闭该接口。

    ifconfig ethX up/down 可以使用ifup / ifdown ethX来替代。但是使用ifup / ifdown脚本【启用】或【禁用】特定的网络接口比直接使用ifconfig命令要好一些,这是因为脚本可以认真查看并处理与某一个特定接口有关的所有参数和相关功能。

ifup和ifdown这两个脚本通常放在/etc/sysconfig/network-scripts/或者/etc/network/下面。



Reference:

NetworkManager 显示有线网络设备未托管

ifup/ifdown ethX 和 ifconfig ehtX up/down的区别

  1. https://forum.ubuntu.com.cn/viewtopic.php?f=116&t=198297#p1260801 ↩

Ubuntu中的两套网络连接管理方式的更多相关文章

  1. 为什么在Ubuntu Docker容器中没有ifconfig?

    使用基本的ubuntu:12.04,ifconfig在容器中不可用,虽然ip命令可用,但为什么会这样?以及如何在容器中获取ifconfig?您可以使用apt-getinstallnet-tools安装ifconfig.根据我的测试,ifconfig包含在ubuntu:14.04中.

  2. ubuntu – 为什么我可以监听ifconfig未列出的IP?

    我将手放在遗留系统上,我正在尝试了解它的架构.似乎有监听IP的服务没有出现在ifconfig输出中:如果我有IP监听IP1.2.3.4,它可以在外面访问:.这使我得出结论,没有NAT.但是,ifconfig为什么不列出IP?我见过ifconfig没有显示分配给接口的所有地址的情况,但是可以看到ipaddr.

  3. Ubuntu-18.04 LTS嵌入式linux开发环境搭建

    ubuntu-18.04LTS于2018年4月26号正式发布,很多网友早就迫不及待下载下来安装了,同时也在博客分享了自己的安装体验,分desktop和server的文章,写得稍微简单了一些。然后本人就试试使用VMware-workstation-full-14.1.2来重新安装ubuntu-18.04LTS,一切顺利。图-35接下来我们先熟悉ubuntu-18.04LTS的界面,左下角那9个点就是:ShowApplications,点击它,熟悉它。

  4. ubuntu找不到ifconfig

    刚装完系统,使用ifconfig会出现找不到命令的问题。

  5. CentOs7.4 网卡启动:Job for network.service failed

    终于找到了彻底解决网卡报错的方法。请关闭虚拟机的selinux和NetworkManager功能。重新添加一个新的。如果不一致在新网卡配置文件中改成ifconfig的mac地址。由于系统字符识别原因新生成的网卡配置文件可能是ifcfg***1结尾的文件。然后删除ifcfg###13.配置新网卡的内容servicenetworkrestart查看是否还有错误。正常情况下错误消失。

  6. centos 没有ifconfig

    结果表明我们的/sbin目录下并没有ifconfig命令,所以我们的结论是:我们的CentOS里边是没有安装ifconf。我们的解决办法是:yum安装ifconfig这个命令包。命令:yumsearchifconfig通过yumsearch这个命令我们发现ifconfig这个命令是在net-tools.x86_64这个包里,接下来我们安装这个包就行了,命令:yuminstallnet-tools.x86_64安装完成后,再次使用ifconfig-a命令就可以查看到所有的网卡了。

  7. CentOS 7.4.1708系统虚拟机安装配置图解教程

    开始安装BeginInstallation进入下面的界面选择-用户设置USERSETTINGS-ROOT密码,进入下面的界面设置Root密码如果密码长度少于5位,会提示要按“完成”两次来确认,设置完毕后点击Done。#保存退出保存并退出重启网卡再次通过ifconfig查看网卡相关信息时,网卡ens33就显示有ip等相关信息现通过ping命令检查,可以ping通外网。

  8. CentOs 找不到ifconfig 命令的解决办法

    ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等命令,这时候你进入终端,运行ifconfig命令就会出错这是我们首先会想到是不是环境变量里没有ifconfig命令的路径,因为ifconfig是在/sbin路径下的,以root用户登录才可以运行,可是我们上边是以root用户登录的啊,

  9. CentOS 7下 ifconfig command not found

  10. windows – 在许多机器上将所有网卡更改为自动/自动

    由于网络设备的变化,我可能需要将一堆机器NIC设置回自动协商.什么是自动化的最佳方法?我在想通过组策略或SCCM推出一个Autoit编译的exe.如果您有示例,请发布您的脚本.我不确定我所打的所有系统都会有相同的NIC,所以将所有已知卡重置为auto的东西都会很棒.谢谢!

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部