Linux中的ifconfig命令

时间:2020-03-05 15:28:32  来源:igfitidea点击:

"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