1、IP命令简介
ip
命令在Linux系统中与ifconfig
类似,但它的功能更为强大,并旨在取代后者。使用ip命令,只需一个命令,就可以轻松地执行一些网络管理任务,相较于ifconfig更加便捷。ifconfig是net-tools
中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2
套件里提供了许多增强功能的命令,其中就包括ip命令。
ip命令的使用方式更加简洁明了,可以方便地查看和管理网络接口、路由表、过滤器等网络配置。它还可以用于配置静态IP地址、DNS服务器、网关等网络参数。相比之下,ifconfig的使用方式则较为繁琐,需要多个命令才能完成相同的任务。因此,我建议使用ip命令来进行网络管理任务,因为它更加简单、强大和易于维护。
2、IP命令语法
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT 为常用对象,值可以是以下几种:
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }
常用对象的取值含义如下:
- link:网络设备
- address:设备上的协议(IP或IPv6)地址
- addrlabel:协议地址选择的标签配置
- route:路由表条目
- rule:路由策略数据库中的规则
OPTIONS 为常用选项,值可以是以下几种:
OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }
常用选项的取值含义如下:
- -V:显示命令的版本信息;
- -s:输出更详细的信息;
- -f:强制使用指定的协议族;
- -4:指定使用的网络层协议是IPv4协议;
- -6:指定使用的网络层协议是IPv6协议;
- -0:输出信息每条记录输出一行,即使内容较多也不换行显示;
- -r:显示主机时,不使用IP地址,而使用主机的域名。
- help 为该命令的帮助信息。
3、IP命令使用实例
#显示网络接口信息
ip link show
#开启网卡
ip link set eth0 up
#关闭网卡
ip link set eth0 down
#开启网卡的混合模式
ip link set eth0 promisc on
#关闭网卡的混个模式
ip link set eth0 promisc offi
#设置网卡队列长度
ip link set eth0 txqueuelen 1200
#设置网卡最大传输单元
ip link set eth0 mtu 1400
#显示网卡IP信息
ip addr show
#设置eth0网卡IP地址192.168.0.1
ip addr add 192.168.0.1/24 dev eth0
#删除eth0网卡IP地址
ip addr del 192.168.0.1/24 dev eth0
#显示系统路由
ip route show
#设置系统默认路由
ip route add default via 192.168.1.254
#查看路由信息
ip route list
#设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0
#设置默认网关为192.168.0.254
ip route add default via 192.168.0.254 dev eth0
#删除192.168.4.0网段的网关
ip route del 192.168.4.0/24
#删除默认路由
ip route del default
#删除路由
ip route delete 192.168.1.0/24 dev eth0
#显示网络设备的运行状态
ip link list
#显示详细的设备信息
ip -s link list
#显示核心路由表
ip route list
#显示邻居表
ip neigh list
#获取主机所有网络接口
ip link | grep -E '^[0-9]' | awk -F: '{print $2}'