Linux里面有两套管理网络连接的方案1:
- /etc/network/interfaces(/etc/init.d/networking)
- Network-Manager
这两套方案是冲突的,不能同时共存。
第一个方案适用于没有X的环境,如:服务器;或者那些完全不需要改动连接的场合。
第二套方案使用于有桌面的环境,特别是笔记本,搬来搬去,网络连接情况随时会变的。
-------------
他们两个为了避免冲突,又能共享配置,就有了下面的解决方案:
- 当Network-Manager发现/etc/network/interfaces被改动的时候,则关闭自己(显示为未托管),除非managed设置成true。
- 当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 add eth0=eth0
to /run/network/ifstate
to 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/下面。