L64.linux命令每日一练 -- 第十章 Linux网络管理命令 -- ifconfig和ifup

10.1 ifconfig:配置或显示网络接口信息

10.1.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ ifconfig命令用于配置网卡IP地址等网络参数或显示当前网络的接口状态,其类似于Windows下的ipconfig命令,这两个命令很容易混淆,读者需要区分一下。此外,ifconfig命令在配置网卡信息时必须以root用户的身份来执行。

​ 如果系统中没有ifconfig命令,那就需要安装一下,安装命令为yum -y install net-tools。

【语法格式】

ifconfig [interface] [option]
ifconfig [网络接口] [选项]

说明:

​ 1)在ifconfig命令及后面的网络接口和选项里,每个元素直接都至少要有一个空格。

​ 2)interface为网络接口名,Linux下的网络接口名类似于eth0、eth1和lo等,分别表示第1块网卡、第2块网卡和回环接口。这是个可选项,如果不添加此选项,则显示系统中所有的网卡信息;如果添加此选项,则显示指定的网卡信息。

​ 3)使用ifconfig命令配置网卡信息仅会临时生效,重启网络或服务器配置就会生效。

【选项说明】

​ 表10-1针对该命令的参数选项进行了说明。

​ 表10-1 ifconfig命令的参数选项及说明

在这里插入图片描述

10.1.2 使用范例

​ **范例10-1:**显示当前系统开启的所有网络接口信息。

[root@centos7 ~]# ifconfig	#显示系统中所有的网卡信息。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.201  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::4122:b9af:997b:a6ff  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:7a  txqueuelen 1000  (Ethernet)
        RX packets 61  bytes 6721 (6.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 77  bytes 9697 (9.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ 对于上面的命令结果,eth0表示第1块网卡,第2块网卡为eth1,依此类推;lo表示回环接口。

​ 下面以eth0的结果作进一步说明。

​ 第1行:eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500,eth0表示第1块网卡,UP:表示“接口已启用”,BROADCAST :表示“主机支持广播”,RUNNING:表示“接口在工作中”,MULTICAST:表示“主机支持多播”,MTU:1500(最大传输单元):1500字节。

​ 第2行:inet 10.0.0.201 netmask 255.255.255.0 broadcast 10.0.0.255,inet :网卡的IP地址,netmask :网络掩码,broadcast :广播地址。

​ 第3行:inet6 fe80::4122:b9af:997b:a6ff prefixlen 64 scopeid 0x20<link>,网卡的IPv6地址。

​ 第4行:ether 00:0c:29:23:c8:7a txqueuelen 1000 (Ethernet),连接类型:Ethernet (以太网) HWaddr (硬件mac地址), txqueuelen (网卡设置的传送队列长度)。

​ 第5行:RX packets 61 bytes 6721 (6.5 KiB),RX packets 接收时,正确的数据包数;RX bytes 接收的数据量。

​ 第6行:RX errors 0 dropped 0 overruns 0 frame 0,RX errors 接收时,产生错误的数据包数;RX dropped 接收时,丢弃的数据包数;RX overruns 接收时,由于速度过快而丢失的数据包数;RX frame 接收时,发生frame错误而丢失的数据包数。

​ 第7行:TX packets 77 bytes 9697 (9.4 KiB),TX packets 发送时,正确的数据包数;TX bytes 发送的数据量。

​ 第8行:TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0,TX errors 发送时,产生错误的数据包数;TX dropped 发送时,丢弃的数据包数;TX overruns 发送时,由于速度过快而丢失的数据包数;TX carrier 发送时,发生carrier错误而丢失的数据包数;collisions 冲突信息包的数目。

[root@centos6 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A3:21:26  
          inet addr:10.0.0.202  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fea3:2126/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1386 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:132183 (129.0 KiB)  TX bytes:126439 (123.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

​ 对于上面的命令结果,eth0表示第1块网卡,第2块网卡为eth1,依此类推;lo表示回环接口。

​ 下面以eth0的结果作进一步说明。

​ 第1行:显示连接类型为Ethernet(以太网),HWaddr表示应急的MAC地址。

​ 第2行:依次显示网络的IP地址(inet addr)、广播地址(Bcast)和子网掩码(Mask)。

​ 第3行:IPv6地址的配置信息,由于没有使用IPv6地址,因此这里没有IP地址显示。

​ 第4行:“UP”代表网卡的开启状态,“RUNNING”代表网卡上的网线处于连接状态,“MULTICAST”代表支持组播,“MTU:1500”表示最大传输单元为1500字节。

​ 第5、6行:显示网卡接收、发送数据包的统计信息。

​ 第7行:collisions 冲突信息包的数目, txqueuelen (网卡设置的传送队列长度)。

​ 第8行:显示网卡接收、发送数据字节数的统计信息。

​ **范例10-2:**显示指定网卡的信息。

[root@centos7 ~]# ifconfig eth0		#命令接上网卡名可以指定显示该网卡的信息。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.201  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::4122:b9af:997b:a6ff  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:7a  txqueuelen 1000  (Ethernet)
        RX packets 46  bytes 5591 (5.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 56  bytes 7366 (7.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ **范例10-3:**启动/关闭指定网卡。

​ 在虚拟机添加一块新网卡eth1,使用ifconfig -a选项来查看:

[root@centos7 ~]# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.201  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::4122:b9af:997b:a6ff  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:7a  txqueuelen 1000  (Ethernet)
        RX packets 71  bytes 8163 (7.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 63  bytes 9490 (9.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500	#开启和关闭的网卡在这里的显示是不一样的。
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::c4d9:3620:3b63:df4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 19  bytes 1708 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13  bytes 1838 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ 接下来启动eth1网卡的命令如下所示:

[root@centos7 ~]# ifconfig eth1 up	#在网卡名称后面接上up表示启动网卡。
[root@centos7 ~]# ifconfig eth1 
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::c4d9:3620:3b63:df4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 20  bytes 1768 (1.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13  bytes 1838 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ 关闭eth1网卡的方法如下所示:

[root@centos7 ~]# ifconfig eth1 down	#在网卡名称后面接上down表示关闭网卡。
[root@centos7 ~]# ifconfig eth1
eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 21  bytes 1828 (1.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13  bytes 1838 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ **范例10-4:**为网卡配置IP地址。

[root@centos7 ~]# ifconfig eth1	#查看eth0网卡的IP地址信息为10.0.0.2。
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::c4d9:3620:3b63:df4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 5  bytes 582 (582.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 1364 (1.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


[root@centos7 ~]# ifconfig eth1 192.168.120.56	#直接在需要配置的网卡后面接上IP地址。

​ 现在你的客户机已经掉线来,下面的结果需要到虚拟机窗口中进行查看了。

[root@centos7 ~]# ifconfig eth1	#查看eth0网卡的IP地址信息为192.168.120.56。
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.120.56  netmask 255.255.255.0  broadcast 192.168.120.255
        inet6 fe80::c4d9:3620:3b63:df4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 5  bytes 582 (582.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 1364 (1.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ **提示:**工作中不能这样修改IP地址,否则有可能会连接不上服务器。

​ **范例10-5:**为网卡配置别名IP的例子。

[root@centos7 ~]# ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::c4d9:3620:3b63:df4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 5  bytes 582 (582.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 1364 (1.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

#网卡的别名格式为eth0:0,eth0:1,eth0:2 ...
[root@centos7 ~]# ifconfig eth1:0 10.0.0.3 netmask 255.255.255.0 up
#语法格式:别名 IP地址 子网掩码 激活网卡。
[root@centos7 ~]# ifconfig eth1:0 
eth1:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.3  netmask 255.255.255.0  broadcast 10.0.0.255
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)

[root@centos7 ~]# ifconfig eth1:1 10.0.0.4/24 up 	#添加第二个IP别名,10.0.0.4/24这种写法和10.0.0.4 netmaksk 255.255.255.0的效果是一样的,24是子网掩码255.255.255.0的另一种表现形式。
[root@centos7 ~]# ifconfig eth1:1 
eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.4  netmask 255.255.255.0  broadcast 10.0.0.255
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)

​ **范例10-6:**修改网卡MAC地址的例子。

[root@centos7 ~]# ifconfig eth1 hw ether 00:AA:BB:CC:DD:EE	#修改MAC地址的关键词hw(设置MAC地址)ether(网络设备类型)。
[root@centos7 ~]# ifconfig eth1 
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::c4d9:3620:3b63:df4  prefixlen 64  scopeid 0x20<link>
        ether 00:aa:bb:cc:dd:ee  txqueuelen 1000  (Ethernet)	#修改后的网卡MAC地址。
        RX packets 17  bytes 1302 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 54  bytes 12224 (11.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

​ 在网卡重启或机器重启之后,用ifconfig命令配置的网卡信息就不存在了。要想将上述配置信息永远地存储在服务器里,需要修改网卡的配置文件,如表10-2所示。

​ 表10-2网卡、网卡标识及其对应的物理配置文件

在这里插入图片描述

10.2 ifup:激活网络接口

10.2.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ ifup命令用于激活指定的网络接口。ipup命令其实是一个Shell脚本,有Shell基础的读者可以使用which命令来找到这个脚本并读一读。ifup命令可读取配置文件/etc/sysconfig/network和/etc/sysconfig/network-scripts/ifcfg-<configuration>对网络接口进行相应的操作。

【语法格式】

ifup [iface]
ifup [网络接口]

​ **说明:**在ifup命令及后面的网络接口里,每个元素直接都至少要有一个空格。

10.2.2 使用范例

​ **范例10-7:**激活网络接口。

​ 注意:要操作此例子,最好进入虚拟机界面进行,否则,SSH客户端可能会中断。

[root@centos6 ~]# ifup eth0		#激活网络接口eth0,因为eth0已经开始运行,所以提示如下。
RTNETLINK answers: File exists
[root@centos6 ~]# ifup eth1
/sbin/ifup: configuration for eth1 not found.
Usage: ifup <device name>	#激活网络接口eth1,报错,找不到eth2的配置文件。

[root@centos6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
[root@centos6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=10.0.0.202
NETMASK=255.255.255.0
DNS2=114.114.114.114
GATEWAY=10.0.0.254
DNS1=8.8.8.8
USERCTL=no
PEERDNS=yes
IPV6INIT=no
:wq
[root@centos6 ~]# service network restart
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: Determining if ip address 10.0.0.5 is already in use for device eth1...
                                                           [确定]
弹出界面 eth1: RTNETLINK answers: File exists
                                                           [确定]

[root@centos6 ~]# ifconfig eth1		#eth1网卡已激活。
eth1      Link encap:Ethernet  HWaddr 00:0C:29:A3:21:30  
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fea3:2130/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
[root@centos7 ~]# ifup eth0
[root@centos7 ~]# ifup eth1
/usr/sbin/ifup: configuration for eth1 not found.
Usage: ifup <configuration>
[root@centos7 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
[root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
#UUID*=b21930c4-a2db-47e7-acfa-a2d9072882ed
DEVICE=eth1
ONBOOT=yes
IPADDR=10.0.0.2
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5
IPV6_PRIVACY=no
:wq                                                 
[root@centos7 ~]# systemctl restart network
[root@centos7 ~]# ifup eth1
[root@centos7 ~]# ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::1531:1daa:12be:dfc9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:23:c8:84  txqueuelen 1000  (Ethernet)
        RX packets 13  bytes 1346 (1.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 31  bytes 2948 (2.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/126202798