详解ifconfig命令

Last Updated: 2023-08-02 13:20:05 Wednesday

-- TOC --

Linux环境查看接口信息的经典命令,ifconfig,它与另一个经典的netstat命令,同属于net-tools项目。

Windows下是ipconfig,虽然名字只差一个字母,但功能差别很大。

$ ifconfig -a        # show All interfaces
$ ifconfig <ifname>  # only ifname interface
$ ifconfig -s        # show Short info
$ ifconfig <ifname> -s 
$ sudo ifconfig <ifname> down
$ sudo ifconfig <ifname> up

可以通过先down后up的方式,来重新获取接口IP地址!

$ sudo ifconfig <ifname> arp  # open arp
$ sudo ifconfig <ifname> -arp # close arp
$ sudo ifconfig <ifname> mtu 1234

这个命令危险的地方在于,如果不小心忘记了mtu这3个字母,上面的命令也能配下去,接口的ip地址,mask,broadcast地址就会混乱,此时访问网络,极有可能出现network is unreachable。

$ sudo ifconfig <ifname> 192.168.16.105
$ sudo ifconfig <ifname> 192.168.16.105/24
$ sudo ifconfig <ifname> 192.168.1.56 netmask 255.255.255.0
$ sudo ifconfig <ifname> 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255

网上把这个技术细节成为,设置网卡别名,本质就是一个网口上绑定多个IP地址。

$ sudo ifconfig <ifname>:1 ip/mask  # default is up

此时,就能看到接口<ifname>:1,看起来的确是个别名。

删除别名,就是把它down掉:

$ sudo ifconfig <ifname>:1 down
$ sudo ifconfig eth0 down                        # 关闭网卡
$ sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE  # 修改MAC地址
$ sudo ifconfig eth0 up                          # 启动网卡
$ sudo ifconfig <ifname> promisc   # set promiscuous mode
$ sudo ifconfig <ifname> -promisc  # unset
$ sudo ifconfig ens33 promisc
$ ifconfig ens33 | grep -i promisc
ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500 

<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>里面有PROMISC,说明混杂模式设置成功。

本文链接:https://cs.pynote.net/net/202205171/

-- EOF --

-- MORE --