Liunx命令之ip命令

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。

IO

语法

1
ip [OPTIONS] OBJECT { COMMAND | help }

OBJECT 为常用对象,值可以是以下几种:

1
OBJECT={ link | address | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }

常用对象的取值含义如下:

  • link: 网络设备
  • address: 设备上的协议地址(IP/IP6)【一般简写为addr/a】
  • addrlabel: 协议地址选择的标签配置
  • route: 路由表条目
  • rule: 路由策略数据库中的规则
  • neighbor: arp相关

OPTIONS 为常用选项,值可以是以下几种:

1
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 为该命令的帮助信息。

IO

IO

常用命令

IP地址管理

  • 显示IP地址
    • ip a
    • ip address show
    • ip addr show dev eth0
    • ip a sh eth0
  • 增加/删除地址
    • ip address add 192.0.2.1/24 dev eth0
    • ip addr del 192.0.2.2/24 dev eth0
  • 显示接口统计
    • ip -s link ls eth0

网卡和链路配置

  • 显示链路
    • ip link show
    • ip link sh eth0
  • 修改接口状态
    • ip link set eth0 up
    • ip link set eth0 down

路由表管理

  • 显示路由表
    • ip route
    • ip ro show dev eth0
  • 增加新路由
    • ip route add 10.2.2.128/27 dev eth0
  • 增加默认路由
    • ip route add default via 192.168.1.1
  • 修改默认路由
    • ip route chg default via 192.168.1.1
  • 删除默认路由
    • ip route del default

隧道配置

  • 显示隧道
    • ip tunnel show
  • 显示隧道统计
    • ip -s tunnel ls eth0
  • 增加删除GRE隧道
    • ip tunnel add eth0 mode gre local 10.1.1.1 remote 20.2.2.1 ttl 255
    • ip tunnel del eth0
  • 添加IPIP隧道
    • ip tunl a eth0 mode ipip local 10.1.1.1 remote 20.2.2.1 ttl 255

邻居和arp表管理

  • 查看arp表
    • ip neigh show
  • 手工增加删除arp项
    • ip neighbor add 10.2.2.2 dev eth0
    • ip neighbor del 10.2.2.1 dev eth0

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ip link show  # 显示网络接口信息
ip link show eth0 # 显示网络接口eth0信息
ip link set eth0 up # 开启网络接口eth0
ip link set eth0 down # 关闭网络接口eth0
ip link list # 显示网络接口的运行状态
ip -s link list # 显示更加详细的设备信息
ip route list # 显示核心路由表
ip route show # 查看路由表,作用类似于`route -n`
ip link | grep -E '^[0-9]' | awk -F: '{print $2}' # 获取主机所有网络接口
ip addr add 192.168.0.128/24 dev eth0 # 给网络接口配置IP
ip addr del 192.168.0.128/24 dev etho # 删除网络接口
ip neighbor show # 查看arp表信息
ip neighbor show dev eth0 #看具体接口下的arp缓存条目
ip neighbor show 192.168.0.0/24 # 看具体某个网段的arp缓存条目
ip neighbor flush dev eth0 # arp刷新
有用就打赏一下作者吧!