ifconfig简称“接口配置”实用程序,用于Unix/Linux操作系统中的系统/网络管理,通过命令行界面或系统配置脚本来配置、管理和查询网络接口参数。“ ifconfig ”命令用于显示当前网络配置信息、设置网络接口的 IP 地址、网络掩码或广播地址、为网络接口创建别名、设置硬件地址以及启用或禁用网络接口。
在本文中,主要介绍15个有用的“ ifconfig ”命令及其实际示例,这可能对你在Linux系统中管理和配置网络接口非常有帮助。
注意:在大多数现代Linux发行版中,网络命令ifconfig已被弃用并被ip命令取代。
1、列出Linux中的网络接口
不带参数的“ ifconfig ”命令将显示所有活动网络接口配置详细信息,包括为其分配的IP地址、网络掩码和其它相关信息。
ifconfig
示例输出:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 198.12.80.139 netmask 255.255.255.192 broadcast 198.12.80.191 inet6 fe80::216:3cff:fef5:533d prefixlen 64 scopeid 0x20<link> ether 00:16:3c:f5:53:3d txqueuelen 1000 (Ethernet) RX packets 254313424 bytes 25155528667 (23.4 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 13431622 bytes 10007990478 (9.3 GiB) 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 97076 bytes 127641269 (121.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 97076 bytes 127641269 (121.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.1.1 P-t-P:10.1.1.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 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:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
2、显示所有网络接口信息
以下带有-a
参数的ifconfig命令将显示服务器上所有活动或非活动网络接口的信息,它显示eth0、lo、sat0和tun0的结果:
# ifconfig -a eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 198.12.80.139 netmask 255.255.255.192 broadcast 198.12.80.191 inet6 fe80::216:3cff:fef5:533d prefixlen 64 scopeid 0x20<link> ether 00:16:3c:f5:53:3d txqueuelen 1000 (Ethernet) RX packets 254337649 bytes 25160807526 (23.4 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 13441187 bytes 10011928684 (9.3 GiB) 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 97076 bytes 127641269 (121.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 97076 bytes 127641269 (121.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 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) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.1.1 P-t-P:10.1.1.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 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:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
3、查看特定接口的网络设置
使用接口名称 ( eth0 ) 作为“ ifconfig ”命令的参数将显示特定网络接口的详细信息:
# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 198.12.80.139 netmask 255.255.255.192 broadcast 198.12.80.191 inet6 fe80::216:3cff:fef5:533d prefixlen 64 scopeid 0x20<link> ether 00:16:3c:f5:53:3d txqueuelen 1000 (Ethernet) RX packets 254356121 bytes 25164873980 (23.4 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 13449314 bytes 10014975055 (9.3 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
4、启用网络接口
带有接口名称 ( eth0 ) 的“ up ”或“ ifup ”标志会激活网络接口(如果它不是非活动状态)并允许发送和接收信息。例如,“ ifconfig eth0 up ”或“ ifup eth0 ”将激活eth0接口。
# ifconfig eth0 up 或者 # ifup eth0
5、禁用网络接口
带有接口名称 ( eth0 ) 的“ down ”或“ ifdown ”标志会停用指定的网络接口。例如,如果eth0接口处于非活动状态,则“ ifconfig eth0 down ”或“ ifdown eth0 ”命令将停用该接口。
# ifconfig eth0 down 或者 # ifdown eth0
6、为网络接口分配IP地址
要将IP地址分配给特定接口,请使用以下命令以及要设置的接口名称 ( eth0 ) 和IP地址。例如,“ ifconfig eth0 172.16.25.25 ”会将IP地址设置为接口eth0。
# ifconfig eth0 172.16.25.25
7、为网络接口分配网络掩码
使用带有“ netmask ”参数和接口名称(eth0 )的“ ifconfig ”命令,可以为给定接口定义网络掩码。例如,“ ifconfig eth0 netmask 255.255.255.224 ”会将网络掩码设置为给定接口eth0。
[root@tecmint ~]# ifconfig eth0 netmask 255.255.255.224
8、将广播分配给网络接口
将“ broadcast ”参数与接口名称一起使用将为给定接口设置广播地址。例如,“ ifconfig eth0 Broadcast 172.16.25.6 ”命令将广播地址设置为接口eth0。
# ifconfig eth0 broadcast 172.16.25.6
9、为网络接口分配IP、网络掩码和广播
要使用“ ifconfig ”命令以及下面给出的所有参数一次性分配IP地址、网络掩码地址和广播地址:
# ifconfig eth0 172.16.25.25 netmask 255.255.255.224 broadcast 172.16.25.6
10、更改网络接口的MTU
“ mtu ”参数设置接口的最大传输单元,它允许你设置在接口上传输的数据包的限制大小。MTU能够在一次事务中处理接口的最大数量的八位字节。例如,“ ifconfig eth0 mtu 1000 ”会将最大传输单元设置为给定的集合(即1000)。注意,并非所有网络接口都支持MTU设置。
# ifconfig eth0 mtu 1000
11、启用混杂模式
在正常模式下,当网卡收到数据包时,它会验证该数据包是否属于自己。如果不是,它会正常丢弃数据包,但在混杂模式下用于接受流经网卡的所有数据包。当今的网络工具使用混杂模式来捕获和分析流经网络接口的数据包。要设置混杂模式,请使用以下命令:
# ifconfig eth0 promisc
12、禁用混杂模式
要禁用混杂模式,请使用“ -promisc ”开关将网络接口恢复到正常模式:
# ifconfig eth0 -promisc
13、向网络接口添加新别名
ifconfig实用程序允许使用别名功能配置其它网络接口。要添加eth0的别名网络接口,请使用以下命令。请注意,别名网络地址位于同一子网掩码中。例如,如果eth0网络IP地址是172.16.25.25,则别名IP地址必须是172.16.25.27。
# ifconfig eth0:0 172.16.25.27
接下来,使用“ ifconfig eth0:0 ”命令验证新创建的别名网络接口地址:
# ifconfig eth0:0 eth0:0 Link encap:Ethernet HWaddr 00:01:6C:99:14:68 inet addr:172.16.25.27 Bcast:172.16.25.6 Mask:255.255.255.240 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:17
14、删除网络接口的别名
如果不再需要别名网络接口或者配置不正确,可以使用以下命令将其删除:
# ifconfig eth0:0 down
15、更改网络接口的MAC地址
要更改eth0网络接口的MAC(媒体访问控制)地址,请使用以下带有参数“ hw ether ”的命令,具体如下:
# ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF
这些是在Linux中配置网络接口的最有用的命令,有关ifconfig命令的更多信息和用法,请使用终端上的“ man ifconfig ”等联机帮助页。另外,也可以查看下面的一些其它网络实用程序。
其它网络实用程序
- nmcli – 用于控制NetworkManager和报告网络信息的命令行客户端。
- Tcmpdump – 是一个用于监控网络流量的命令行数据包捕获和分析工具。
- Netstat – 是一个开源命令行网络监控工具,用于监控传入和传出的网络数据包流量。
- ss(socket stats) – 在Linux系统上打印网络套接字相关信息的工具。
- Wireshark – 是一种开源网络协议分析器,用于解决网络相关问题。
- Munin – 是一个基于 Web 的网络和系统监控应用程序,用于使用rrdtool以图表形式显示结果。
- Cacti – 是一个完整的基于网络的监控和图形应用程序,用于网络监控。
要获取上述任何工具的更多信息和选项,请通过在命令提示符下输入“ man toolname ”来查看手册页。例如,要获取“ netstat”工具的信息,请使用命令“ man netstat ”。