Linux用户的ifconfig实用程序

时间:2020-03-21 11:45:10  来源:igfitidea点击:

Ifconfig代表“接口配置 Interface Configuration”。
它是Linux机器的实用程序,用于在Unix/Linux机器中配置,分配,添加,删除,控制和查询网络接口。

普通的Linux用户使用IFCONFIG命令为接口分配IP地址和网络掩码,或者禁用或者启用给定的接口。

让我们看看Linux管理员或者linux geek如何通过此简单命令获得乐趣。

今天的theitroad将解释力量,ifconfig命令的真正实力。

1.显示网络设备和配置以及所有网络设置

[root@satish ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1B:B9:B3:BD:4F 
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST 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:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:201 Base address:0xc00

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:9439 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9439 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5524963 (5.2 MiB)  TX bytes:5524963 (5.2 MiB)

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:106.219.181.163  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8444 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8991 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:7785191 (7.4 MiB)  TX bytes:1164790 (1.1 MiB)

说明:在这里我们可以清楚地看到ifconfig命令的输出。
它显示了网络接口的信息。

eth0:是我的以太网卡

lo:是回送地址

ppp0:点对点协议。

2.如何显示所有网络接口的信息

[root@satish ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:1B:B9:B3:BD:4F 
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST 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:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:201 Base address:0xc00

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:10033 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10033 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5555990 (5.2 MiB)  TX bytes:5555990 (5.2 MiB)

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:106.219.181.163  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8468 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9090 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:7787427 (7.4 MiB)  TX bytes:1170752 (1.1 MiB)

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)

注意:现在,在Linux世界中,如今ip命令越来越受人们的青睐,当我们浏览ip命令的手册页时,我们会发现它更加简单,并且还具有执行此操作的能力,这也有些棘手。

让我们看看如何在Linux中通过ip命令查看网络设备和配置。

[root@satish ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:1b:b9:b3:bd:4f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
3: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
4: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 3
    link/ppp
    inet 106.219.181.163 peer 10.64.64.64/32 scope global ppp0

Ip还有一个命令来显示有关网络配置和设备的更多信息

[root@satish ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:1b:b9:b3:bd:4f brd ff:ff:ff:ff:ff:ff
3: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
4: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 3
    link/ppp

3.查看特定接口的网络配置

[root@satish ~]# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol 
          inet addr:106.219.181.163  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8980 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9758 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:8289652 (7.9 MiB)  TX bytes:1240309 (1.1 MiB)

4.如何启用网络接口

#ifup eth0
#ifconfig eth0 up

5.如何禁用网络接口

#ifconfig eth0 down

或者

#ifdown eth0

6,如何为网络接口分配IP

#ifconfig eth0 192.168.1.1
#ip address add 192.168.1.1 dev eth0

7.如何将Netmask分配给网络接口

#ifconfig eth0 netmask 255.255.255.0

8,如何删除一个IP地址

#ip addr del 192.168.1.1/24 dev eth0

9.如何在单个命令行中分配所有内容(IP地址,网络掩码和网络连接)。

#ifconfig eth0 netmask 255.255.255.0 up

10.如何为网络接口分配广播地址

#ifconfig eth0 broadcast 192.168.1.255

注意:广播地址是一种32位地址模式,其中所有主机位均为“ 1”

11,如何一次分配所有IP地址,网络掩码和广播地址

#ifconfig etho 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255

12.如何更改网络接口卡的Mac地址

#ifconfig eth0 hw ether FF:GG:HH:II:JJ:KK

13.如何向网络接口添加新的别名

#ifconfig eth0:0 192.168.1.100

14.如何查看或者验证网络接口上是否设置了新别名

[root@satish ~]# ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:1B:B9:B3:BD:4F 
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          Interrupt:201 Base address:0xc00

15,如何删除别名网络

#ifconfig eth0:0 down

16.如何更改网络接口的最大传输单元(MTU)

#ifconfig mtu 1000

17.如何启用混杂模式

#ifconfig eth0 promisc

18,如何禁用混杂模式

#ifconfig eth0 -promisc

什么是混杂模式?

答:混杂模式用于接受流经NIC(网络接口卡)的所有数据包

如今,大多数黑客和网络捕获工具都使用这种模式来捕获和分析流经网络接口卡的数据包。

在普通模式下会发生什么?

在正常模式下,每当NIC接收到一个数据包时,它都会验证该数据包是否属于其自身。
如果不是这样,它将正常丢弃数据包,而在混杂模式下则不是这样。

如何获得外部IP地址?

[root@localhost ~]# curl ifconfig.me
106.223.44.33
[root@localhost ~]#