这三个指令的用途都是在启动网路介面,不过, 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



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