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

一、ifconfig

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

  1. [root@linux ~]# ifconfig {interface} {up|down} <== 观察与启动接口
  2. [root@linux ~]# ifconfig interface {options} <== 设置与修改接口
  3. 参数:
  4. Interface,网卡接口代号,包括 eth0eth1ppp0
  5. Options,可以接的参数,包括如下:
  6. Updown,启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)
  7. mtu,可以设置不同的 MTU 数值,例如MTU 1500 (单位为 byte)
  8. netmask,就是子屏蔽网络
  9. broadcast,就是广播地址
  10. 范例:
  11. 范例一:观察所有的网络接口(直接输入 ifconfig)
  12. [root@linux ~]# ifconfig
  13. eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
  14. inet addr:192.168.10.100 Bcast:192.168.10.255
  15. Mask:255.255.255.0
  16. inet6 addr: fe80::20f:eaff:fe73:682/64 Scope:Link
  17. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  18. RX packets:3439 errors:0 dropped:0 overruns:0 frame:0
  19. TX packets:2735 errors:0 dropped:0 overruns:0 carrier:0
  20. collisions:0 txqueuelen:1000
  21. RX bytes:646935 (631.7 KiB) TX bytes:562313 (549.1 KiB)
  22. Interrupt:209 Memory:fb000000-0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

  一般来说,直接输入 ifconfig 就会列出目前已经被启动的卡,不论这个卡是否有设置 IP,都会被显示出来。而如果是输入 ifconfig eth0,则会显示出这个接口的相关数据,而不管该接口是否启动。所以,如果你想要知道某个网卡的 Hardware Address,直接输入“ifconfig "网络接口代号"”即可。至于上述代码中出现的各项数据是这样的(数据排列由上而下、由左而右)。

  • eth0:网卡的代号,也有 lo 这个 loopback。
  • HWaddr:网卡的硬件地址,习惯称为 MAC。
  • inet addr:IPv4 的 IP 地址,后续的 Bcase、Mask 分别代表的是 Broadcast 与 Netmask。
  • inet6 addr:是 IPv6 的版本的 IP,我们没有使用,所以略过。
  • RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets 代表数据包数、errors 代表数据包发生错误的数量、dropped 代表数据包由于有问题而遭丢弃的数量等。
  • TX:与 RX 相反,为网络由启动到目前为止的传送情况。
  • collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。
  • txqueuelen:代表用来传输数据的缓冲区的储存长度。
  • RX Bytes、TX Bytes:总传送、接收的字节总量。
  • Interrupt、Memory:网卡硬件的数据,IRQ 岔断与内存地址。

      通过观察上述的资料,大致上可以了解到你的网络情况,尤其是 RX、TX 内的 error 数量,以及是否发生严重的 collision 情况,都是需要注意的。

  1. 范例二:暂时修改网络接口
  2. [root@linux ~]# ifconfig eth0 192.168.100.100
  3. # 如果不加任何其他参数,则系统会依照该 IP 所在的 class 范围,
  4. # 自动地计算出 netmask 以及 network, broadcast 等 IP 参数
  5. [root@linux ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \
  6. > mtu 8000
  7. # 设置网络接口,同时设置 MTU 的数值
  8. [root@linux ~]# ifconfig eth0 MTU 9000
  9. # 仅修改该接口的 MTU 数值,其他的保持不动
  10. [root@linux ~]# ifconfig eth0:0 192.168.50.50
  11. # 仔细看那个接口, eth0:0 。那就是在该网络接口上,再仿真一个网络接口,
  12. # 亦即是在一个网卡上面设置多个 IP 的意思啦
  13. [root@linux ~]# ifconfig
  14. eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
  15. inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0
  16. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  17. RX packets:3669 errors:0 dropped:0 overruns:0 frame:0
  18. TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0
  19. collisions:0 txqueuelen:1000
  20. RX bytes:667547 (651.9 KiB) TX bytes:584799 (571.0 KiB)
  21. Interrupt:209 Memory:fb000000-0
  22. eth0:0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
  23. inet addr:192.168.200.2 Bcast:192.168.200.255 Mask:255.255.255.0
  24. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  25. Interrupt:209 Memory:fb000000-0
  26. # 仔细看,是否与硬件有关的信息都相同。没错。因为是同一个网卡。
  27. [root@linux ~]# ifconfig eth0:0 down
  28. # 关掉 eth0:0 这个接口。如果想要启动 eth1 ,并且不设置任何网络参数
  29. # ifconfig eth1 up 就可以实现
  30. [root@linux ~]# /etc/init.d/network restart
  31. # 刚刚设置的数据全部失效,会以 ifcfg-ethx 的设置为主
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

  使用 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 来实现了。


  1. [root@linux ~]# ifup {interface}
  2. [root@linux ~]# ifdown {interface}
  3. [root@linux ~]# ifup eth0
  • 1
  • 2
  • 3
  • 4
  • 5

  ifup 与 ifdown 真是太简单了。这两个程序其实是 script 而已,它会直接到 /etc/ sysconfig/network-scripts 目录下搜索对应的配置文件,例如 ifup eth0,它会找出 ifcfg-eth0 这个文件的内容,然后加以设置。关于 ifcfg-eth0 的设置请参考下面的说明。 
  不过,由于这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定 ifcfg-ethx 是否真的存在于正确的目录内,否则会启动失败。另外,如果以 ifconfig eth0 来设置或者是修改了网络接口后,就无法再以 ifdown eth0 的方式来关闭了。因为 ifdown 会分析比较目前的网络参数与 ifcfg-eth0 是否相符,不符的话,就会放弃这次操作。因此,使用 ifconfig 修改完毕后,应该要以 ifconfig eth0 down 才能够关闭该接口。

三、配置 ifcfg-eth0

  网络接口配置文件 ifcfg-eth0 在 /etc/sysconfig/network-script 在这个目录下面,存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0 是默认的第一个网络接口,如果机器中有多网络接口,那么名字就将依此类推 ifcfg-eth1、ifcfg-eth2、ifcfg-eth3 …… 
  配置项目说明(形式:设定项=值):

  • DEVICE     接口名(设备,网卡)
  • USERCTL    [yes|no](非root用户是否可以控制该设备)
  • BOOTPROTO  IP 的配置方法 [none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
  • HWADDR    MAC地址
  • ONBOOT    系统启动的时候网络接口是否有效(yes/no)
  • TYPE      网络类型(通常是Ethemet)
  • NETMASK    网络掩码
  • IPADDR     IP地址
  • IPV6INIT     IPV6是否有效(yes/no)
  • GATEWAY    默认网关IP地址
  • BROADCAST   广播地址
  • NETWORK    网络地址

      例如,可以设置成这样:

  1. DEVICE=eth0
  2. BOOTPROTO=static
  3. BROADCAST=192.168.1.255
  4. HWADDR=00:0C:2x:6x:0x:xx
  5. IPADDR=192.168.1.23
  6. NETMASK=255.255.255.0
  7. NETWORK=192.168.1.0
  8. ONBOOT=yes
  9. TYPE=Ethernet

Linux网络命令——ifconfig、ifup、ifdown的更多相关文章

  1. Linux网络管理——Linux网络命令

    3. Linux网络命令 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB&quo ...

  2. 初中级DBA必需要学会的9个Linux网络命令,看看你有哪些还没用过

    笔者不久前写了一篇文章<做DBA必须学会,不会会死的11个Linux基本命令>,博文地址为:http://blog.csdn.net/ljunjie82/article/details/4 ...

  3. 你必须了解的基础的 Linux 网络命令

    Linux 基础网络命令列表 我在计算机网络课程上使用 FreeBSD,不过这些 UNIX 命令应该也能在 Linux 上同样工作. 连通性 ping <host>:发送 ICMP ech ...

  4. 基础的 Linux 网络命令,你值得拥有

    导读 有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集.在 It's FOSS 我们并非每天都谈论 Linux 的"命令行方面 ...

  5. Linux 基础——常用的Linux网络命令

    一.学Linux网络命令有什么好处 网络的出现,我们的生活更方便了,处理事情的效率也越来越高,也可以看到全世界文化的差异.同时我们接受新事物的信息越来越来强,新事物的信息也越来越来多.网络对于我们尔等 ...

  6. LINUX网络之ifconfig命令与ping

    ifconfig命令 网络配置 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息 ...

  7. 请收好 Linux 网络命令集锦

    看着kali linux上百个网络命令,我陷入了沉思.专业的网络命令实在是太多了,如果要罗列,上千个也是有的.个人不是渗透测试工作者,大部分功能只知皮毛.所以本文是非常浅显的技术总结,仅聚焦工作中常用 ...

  8. Linux网络命令与脚本使用

    作为系统管理员,经常需要诊断和解决网络问题,而配置.监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分.这里总结一下常用与Linux网络管理的命令 ...

  9. Linux网络命令详解

    命令write,功能是给指定用户发信息(接收信息的用户要处于登录状态,相当于QQ的私聊),例如:用户xbb给用户liuyifei发消息:I want to eat together!(发送消息以CRT ...

随机推荐

  1. 从入门到自闭之Python解释器安装

    Python解释器的安装 1 下载 ​ 下载地址:https://www.python.org 选择windows平台的链接进行下载 https://www.python.org/downloads/ ...

  2. Python学习3——列表和元组

    一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...

  3. vue页面顺序规范

    // html模板<template>    <div>因联vue页面规范</div></template><script>   // 模块 ...

  4. MangoDB CSharp Driver

    1.引用MongoDB for C# Driver 从网上下载C#访问MongoDB的驱动,得到两个DLL: MongoDB.Driver.dll MongoDB.Bson.dll 将它们引用到项目中 ...

  5. Java Web-Cookie和Session

    Java Web-Cookie和Session 会话 会话的概念 一次会话是指浏览器从浏览器第一次给服务器发送请求建立到其中一方断开结束会话的一个过程.它包含多次请求和响应. 会话是用来在一次会话的范 ...

  6. 多线程之thread和runnable

    Runnanle方式可以避免Thread由于单继承特性带来的缺陷. Runnable代码可以被多个线程(thread实例)共享,适用于多个线程处理同一资源的情况. 线程的生命周期:创建,就绪,阻塞,运 ...

  7. c# 将datatable中的数据保存到excel文件中

    using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Lin ...

  8. asp.net mvc5 DataBase First下model校验问题(MetadataType使用)

    最近学习asp.net mvc5,使用   asp.net mvc5+EF6+AutoFac做个小Demo,其中是先设计的数据库表,就直接选择了EF的DataBase First(三种开发模式分别是c ...

  9. 2.Bacula Server端安装配置

    1.  Bacula Server端安装配置 1.1.  Bacula Server端安装 1.1.1.  安装bacula依赖包 For Centos6: yum install -y mysql ...

  10. 利用Pycharm部署同步更新Django项目文件

    利用Pycharm部署同步更新Django项目文件 这里使用同步更新的前提是你已经在服务器上上传了你的Django项目文件. 在"工具(Tools)"菜单中找到"部署(D ...