Linux中的ifconfig命令
"ifconfig"这个词代表接口配置。
IFCONFIG用于Linux和UNIX系统以调试,配置和管理来自终端的网络接口。
使用ifconfig命令可以分配IP地址和网络掩码,显示网络配置(包括广播地址,MAC地址,MTU),启用或者禁用接口。
在本教程中,我们了解IfConfig命令以及如何在网络接口上设置不同的参数。
ifconfig命令语法
让我们检查ifconfig命令语法
ifconfig [...OPTIONS] [INTERFACE]
我们将在以下部分中解释Ifconfig命令的不同选项。
1)显示所有网络接口信息
如果在没有任何选项的情况下运行ifconfig命令,则它将为我们提供符合UP状态的所有接口的状态。
从输出中,我们可以找到分配的IP地址以及许多其他接口详细信息。
以下输出显示IfConfig,没有任何选项:
$sudo ifconfig eth0 Link encap:Ethernet HWaddr 44:87:FC:A4:C5:DD inet addr:192.168.1.30 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::4687:fcff:fef4:458d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6053915 errors:0 dropped:11 overruns:0 frame:0 TX packets:757638 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:794654447 (757.8 MiB) TX bytes:2415435778 (2.2 GiB) Interrupt:17 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:16436 Metric:1 RX packets:3298 errors:0 dropped:0 overruns:0 frame:0 TX packets:3298 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:245808 (240.0 KiB) TX bytes:245808 (240.0 KiB)
如果要查看所有接口信息(包括状态上和向下),那么我们必须使用-a
选项。
$sudo ifconfig -a
我们可以使用以下命令查看特定接口(例如Eth0)详细信息:
$sudo ifconfig eth0
显示一个简短的列表使用-s
选项。
$sudo ifconfig -s Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 221107 0 0 0 310175 0 0 0 BMRU lo 65536 0 0 0 0 0 0 0 0 LRU
注意:如果查找绑定到该接口的MAC地址,则可以从IFCONFIG输出找到。
2)启用或者禁用网络接口
有关故障排除或者调试某些系统管理员必须启用或者禁用该接口。
以下命令显示启用和禁用特定接口。
要启用Interface eth0运行以下命令:
$sudo ifconfig eth0 up
要禁用界面eth0运行以下命令:
$sudo ifconfig eth0 down
3)将IP地址和网络掩码分配给网络接口
要将IP地址分配给接口(eth0),请使用IP地址后跟特定的接口名称。
以下命令将IP地址'192.168.1.30'设置为"eth0"。
第二个命令将NetMask'255.255.255.0'设置为"eth0"界面。
$sudo ifconfig eth0 192.168.1.30 $sudo ifconfig eth0 netmask 255.255.255.0
我们可以使用一个命令设置IP地址和NetMask。
以下示例使用NetMask的IP地址'192.168.1.30'配置eth0 .255.255.255.0'。
$sudo ifconfig eth0 192.168.1.30 netmask 255.255.255.0
如果我们希望在界面上设置播放IP,请使用"IFCOFIG ETH0 Broadcast 192.168.1.32"如下所示:
$sudo ifconfig eth0 broadcast 192.168.1.32
4)将IPv6地址设置为网络接口
要将IPv6地址添加到接口(Etho)使用以下Syntx:
ifconfig inet6 add ipv6address>/prefixlength
例如,
$sudo ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64
5)如何启用ARP协议
ARP代表地址解析协议,它用于将网络层地址分辨到链路层地址。
要在eth0接口上启用ARP,请使用以下命令:
$sudo ifconfig eth0 arp
6)如何禁用ARP协议
要在ETH0接口上禁用ARP,我们必须在"ARP"选项之前添加连字符("-""。
$sudo ifconfig eth0 -arp
7)更改接口的MAC地址
要更改MAC地址,我们应该首先禁用接口(NIC),并确保硬件供应商支持此功能。
更改MAC地址的替代命令是IP命令和"Macchanger"实用程序。
以下命令将使用选项HW Other
更改接口(eth0)的MAC地址。
$sudo ifconfig eth0 down $sudo ifconfig eth0 hw ether 22:67:df:1c:11:4f $sudo ifconfig eth0 up
8)如何启用混杂模式
在混杂模式中是一种操作模式,其中可以由网络适配器接收和读取发送的每个数据分组。
PROMISC模式主要是通过TCPDUMP命令或者Wireshark监视网卡流量。
以下命令集eth0以混杂模式:
$sudo ifconfig eth0 promisc
禁用混杂模式使用-PROMISC
如下:
$sudo ifconfig eth0 -promisc
9)改变MTU
MTU代表最大传输单元,它是最大数据块的大小可以作为单个单元传输,默认值为1500,我们可以将其更改为以下示例
$sudo ifconfig eth0 mtu 1700
10)将别名添加到网络接口
我们可以使用ifconfig命令创建称为别名的其他逻辑网络接口。
以下命令集别名界面(eth0:0)和新的IP地址(192.168.1.31)。
$sudo ifconfig eth0:0 192.168.1.31
我们可以通过删除界面删除别名,如下所示:
$sudo ifconfig eth0:0 down