ITPub博客

首页 > > > 手动还是自动?浅析 ifconfig & ifup & ifdown

手动还是自动?浅析 ifconfig & ifup & ifdown

作者:u_453e1a12781dea 时间:2016-03-21 17:42:50 0 删除 编辑

这三个指令的用途都是在启动网路介面,不过, ifup 与 ifdown 仅能就 /etc/sysconfig/network-scripts 内的 ifcfg-ethX (X 为数字) 进行启动或关闭的动作,并不能直接修改网路参数,除非手动调整 ifcfg-ethX 档案才行。至于 ifconfig 则可以直接手动给予某个介面 IP 或调整其网路参数!底下我们就分别来谈一谈!


ifconfig


ifconfig 主要是可以手动的启动、观察与修改网路介面的相关参数,可以修改的参数很多啊,包括 IP 参数以及 MTU 等等都可以修改,他的语法如下:


[root@www ~]# ifconfig {interface} {up|down}  <== 观察与启动介面

[root@www ~]# ifconfig interface {options}    <== 设定与修改介面

选项与参数:

interface:网路卡介面代号,包括 eth0, eth1, ppp0 等等

options  :可以接的参数,包括如下:

    up, down :启动 (up) 或关闭 (down) 该网路介面(不涉及任何参数)

    mtu      :可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte)

    netmask  :就是子遮罩网路;

    broadcast:就是广播位址啊!


# 范例一:观察所有的网路介面(直接输入 ifconfig)


[root@www ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:71:85:BD

          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2555 errors:0 dropped:0 overruns:0 frame:0

          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:239892 (234.2 KiB)  TX bytes:11153 (10.8 KiB)


一般来说,直接输入 ifconfig 就会列出目前已经被启动的卡,不论这个卡是否有给予 IP,都会被显示出来。而如果是输入 ifconfig eth0,则仅会秀出这张介面的相关资料, 而不管该介面是否有启动。所以如果你想要知道某张网路卡的 Hardware Address,直接输入『 ifconfig "网路介面代号" 』即可喔! ^_^!至于上表出现的各项资料是这样的(资料排列由上而下、由左而右):


eth0:就是网路卡的代号,也有 lo 这个 loopback ;


HWaddr:就是网路卡的硬体位址,俗称的 MAC 是也;


inet addr:IPv4 的 IP 位址,后续的 Bcast, Mask 分别代表的是 Broadcast 与 netmask 喔!


inet6 addr:是 IPv6 的版本的 IP ,我们没有使用,所以略过;


MTU:就是第二章谈到的 MTU 啊!


RX:那一行代表的是网路由启动到目前为止的封包接收情况, packets 代表封包数、errors 代表封包发生错误的数量、 dropped 代表封包由于有问题而遭丢弃的数量等等


TX:与 RX 相反,为网路由启动到目前为止的传送情况;


collisions:代表封包碰撞的情况,如果发生太多次, 表示你的网路状况不太好;


txqueuelen:代表用来传输资料的缓衝区的储存长度;


RX bytes, TX bytes:总接收、传送的位元组总量

透过观察上述的资料,大致上可以瞭解到你的网路情况,尤其是那个 RX, TX 内的 error 数量, 以及是否发生严重的 collision 情况,都是需要注意的喔! ^_^


# 范例二:暂时修改网路介面,给予 eth0 一个 192.168.100.100/24 的参数


[root@www ~]# ifconfig eth0 192.168.100.100

# 如果不加任何其他参数,则系统会依照该 IP 所在的 class 范围,自动的计算出

# netmask 以及 network, broadcast 等 IP 参数,若想改其他参数则:


[root@www ~]# ifconfig eth0 192.168.100.100 \

> netmask 255.255.255.128 mtu 8000 

# 设定不同参数的网路介面,同时设定 MTU 的数值!


[root@www ~]# ifconfig eth0 mtu 9000

# 仅修改该介面的 MTU 数值,其他的保持不动!


[root@www ~]# ifconfig eth0:0 192.168.50.50

# 仔细看那个介面是 eth0:0 喔!那就是在该实体网卡上,再模拟一个网路介面,

# 亦即是在一张网路卡上面设定多个 IP 的意思啦!


[root@www ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:71:85:BD

          inet addr:192.168.100.100  Bcast:192.168.100.127  Mask:255.255.255.128

          inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1

          RX packets:2555 errors:0 dropped:0 overruns:0 frame:0

          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:239892 (234.2 KiB)  TX bytes:11153 (10.8 KiB)


eth0:0    Link encap:Ethernet  HWaddr 08:00:27:71:85:BD

          inet addr:192.168.50.50  Bcast:192.168.50.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1

# 仔细看,是否与硬体有关的资讯都相同啊!没错!因为是同一张网卡嘛!

# 那如果想要将刚刚建立的那张 eth0:0 关闭就好,不影响原有的 eth0 呢?


[root@www ~]# ifconfig eth0:0 down

# 关掉 eth0:0 这个介面。那如果想用预设值启动 eth1:『ifconfig eth1 up』即可达成


# 范例三:将手动的处理全部取消,使用原有的设定值重建网路参数:

[root@www ~]# /etc/init.d/network restart

# 刚刚设定的资料全部失效,会以 ifcfg-ethX 的设定为主!


使用 ifconfig 可以暂时手动来设定或修改某个介面卡的相关功能,并且也可以透过 eth0:0 这种虚拟的网路介面来设定好一张网路卡上面的多个 IP 喔!手动的方式真是简单啊!并且设定错误也不打紧,因为我们可以利用 /etc/init.d/network restart 来重新启动整个网路介面,那麽之前手动的设定资料会全部都失效喔!另外, 要启动某个网路介面,但又不让他具有 IP 参数时,直接给他 ifconfig eth0 up 即可! 这个动作经常在无线网卡当中会进行,因为我们必须要启动无线网卡让他去侦测 AP 存在与否啊!


ifup, ifdown


即时的手动修改一些网路介面惨数,可以利用 ifconfig 来达成,如果是要直接以设定档, 亦即是在 /etc/sysconfig/network-scripts 裡面的 ifcfg-ethx 等档案的设定惨数来启动的话, 那就得要透过 ifdown 或 ifup 来达成了。


[root@www ~]# ifup   {interface}

[root@www ~]# ifdown {interface}

[root@www ~]# ifup eth0


ifup 与 ifdown 真是太间单了!这两支程式其实是 script 而已,他会直接到 /etc/sysconfig/network-scripts 目录下搜寻对应的设定档,例如 ifup eth0 时,他会找出 ifcfg-eth0 这个档案的内容,然后来加以设定。 


不过,由于这两支程式主要是搜寻设定档 (ifcfg-ethx) 来进行启动与关闭的, 所以在使用前请确定 ifcfg-ethx 是否真的存在于正确的目录内,否则会启动失败喔! 另外,如果以 ifconfig eth0 .... 来设定或者是修改了网路介面后, 那就无法再以 ifdown eth0 的方式来关闭了!因为 ifdown 会分析比对目前的网路惨数与 ifcfg-eth0 是否相符,不符的话,就会放弃该次动作。因此,使用 ifconfig 修改完毕后,应该要以 ifconfig eth0 down 才能够关闭该介面喔!


文章来源:http://linux.vbird.org/linux_server/0140networkcommand.php


终极折扣进行时!盛宴,不容错过!



作为国内数据库与大数据领域最大规模的技术盛宴,2016第七届中国数据库技术大会(DTCC)将于2016年5月12日-14日召开。

大会云集了国内外顶尖专家,共同探讨MySQL、智能数据平台、数据治理、大数据创业、大数据深度学习等领域的前瞻性热点话题与技术,为数据库人群、大数据从业人员、广大互联网人士及行业相关人士提供最具价值的交流平台。

最后折扣期!4月20日前,订购DTCC大会门票可享8.8折优惠!团购更有折上折!

报名参会可直接点击阅读原文。

更多详情可访问DTCC 2016官网:
http://dtcc.it168.com/




原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    1982
  • 访问量
    17919