ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

目录

  1. ip link
    1. 查看当前所有的网络接口的状态
    2. 启动接口
    3. 删除接口
  2. ip addr
    1. 查看所有网络接口的mac地址和ip地址等
    2. 查看指定网络接口的mac地址和ip地址等
    3. 增加ip
    4. 删除ip
    5. 清空指定网卡的所有ip
  3. ip addrlabel
    1. 添加别名
    2. 删除别名
  4. ip route
    1. 查看所有路由信息
    2. 添加路由
    3. 删除路由
    4. 刷新路由缓存
    5. 路由表
  5. ip rule
    1. 查看路由策略规则
    2. 删除路由策略规则
  6. ip neigh
  7. ip netns
    1. 查看所有网络命名空间
    2. 进入网络命名空间
  8. options
    1. -V -version
    2. -h
    3. -s -stats -statistics
    4. -d
    5. -l
    6. -f -family
    7. -4
    8. -6
    9. -0
    10. -I
    11. -o -oneline
    12. -n -netns
    13. -r -resolve
    14. -t
    15. -a -all
    16. -rc -rcvbuf(size)

ip

ip-link

查看当前所有的网络接口的状态

1
ip link

启动接口

1
ip link set qg-3127fe33-2f up

删除接口

1
ip link delete qg-3127fe33-2f

ip addr

ip-addr

查看所有网络接口的mac地址和ip地址等

1
ip addr

查看指定网络接口的mac地址和ip地址等

1
ip addr show [device]

ip-addr-show

作用域(scope)

  1. global 全局可用,即两个接口进来的数据我都可以响应。是默认状态。
  2. link 仅链接可用,进来的数据只有直接相连的那个接口能够响应。
  3. host 本机可用,即只能自己访问。

增加ip

1
ip addr add [ip]/[netmask] dev [interface]

删除ip

1
ip addr del [ip]/[netmask] dev [interface]

清空指定网卡的所有ip

1
ip addr flush dev [interface]

使用命令的方式增肌或者删除ip,都是临时的,如果重启network服务,那么操作就会失效。

ip addrlabel

ip-addrlabel

添加别名

1
ip addr add [ip]/[netmask] dev [interface] label [name]

相当于给网卡多绑定了一个ip。

删除别名

1
ip addr del [ip]/[netmask] dev [interface] label [name]

使用命令设置别名,重启服务就会失效。

ip route

ip-route

查看所有路由信息

1
ip route

ip-route

添加路由

  1. 添加到达目标主机的路由

    1
    ip route add [host] via [gateway]
  2. 添加到达网络的路由

    1
    ip route add [network]/[netmask] via [gateway]
  3. 添加默认路由

    1
    ip route add default via [gateway]

删除路由

1
2
ip route del [network]/[netmask]
ip route del default via [gateway]

刷新路由缓存

创建完路由若需要立即生效。

1
ip route flush table [id]

使用命令的方式增加或者删除路由,都是临时的,如果重启network服务,那么操作就会失效。

路由表

查看路由表

1
2
ip route [list|show] table [table-id]
ip route [list|show] table [table-name]

Linux系统中,可以定义从1~252个路由表,其中,系统维护了4个路由表。

  1. 0表。系统保留表。
  2. 253表。default table没什么特别指定的默认路由都会放在该表。
  3. 254表。main table没指明路由表的所有路由都放在该表。
  4. 255表。locale table保存了本地接口地址,广播地址、NAT地址,由系统维护,用户不得更改。

添加路由

1
2
ip route add default via [ip] table [id]
ip route add [network]/[netmask] via [gateway] table [id]

删除路由

1
2
ip route del default table [id]
ip route del [network]/[netmask] table [id]

ip rule

ip-rule

查看路由策略规则

1
ip rule

ip-rule

在Linux系统启动时,内核会为路由策略数据库配置三条缺省的规则。

  1. 0 匹配任何条件 查询路由表local(ID 255)
    路由表local是一个特殊的路由表,包含对本地和广播地址的高优先级控制路由。
    rule 0非常特殊不能被删除或者覆盖。

  2. 32766 匹配任何条件 查询路由表main(ID 254)
    路由表main是一个通常的表,包含所有的无策略路由。系统管理员可以删除或者使用另外的规则覆盖这条规则。

  3. 32767 匹配任何条件 查询路由表default(ID 253)
    路由表default是一个空表,它是为一些后续处理保留的。对于前面的缺省策略没有匹配到的数据包,系统使用这个策略进行处理,这个规则也可以删除。

规则指向路由表,多个规则可以引用一个路由表,而某些路由表可以没有策略指向它。

如果系统管理员删除了指向某个路由表的所有规则,这个表就没有用了,但是仍然存在,直到里面的所有路由都被删除,它才会消失。

删除路由策略规则

1
ip rule del [ip]/[netmask] from table [id]

ip neigh

ip-neigh

查看接入所在局域网的设备的mac地址。

1
ip neigh

ip-neigh

ip netns

ip-netns

查看所有网络命名空间

1
ip netns

ip-netns

进入网络命名空间

1
ip netns exec [name] [command]

options

-V -version

输出ip命令的版本并退出。

-h

输出帮助信息。

-s -stats -statistics

输出更多信息。

-d

输出详细信息。

-l

指定IP地址刷新逻辑将尝试的最大循环次数,默认是10.

-f -family

指定要使用的协议族。协议可以是一个inet、intet6、bridge、ipx、dnet或者link。

-4

是-family inet的简写。

-6

是-family inet6的简写。

-0

是-family link的简写。

-I

是-family ipx的简写。

-o -oneline

单行输出。

-n -netns

交换机的IP到指定的网络空间netns。

-r -resolve

使用系统名称解析来打印DNS名称而不是主机地址。

-t

使用监视器选项时显示当前时间。

-a -all

对所有的对象执行指定的命令,这取决于命令是否支持这个选项。

-rc -rcvbuf(size)

设置Netlink套接字接收缓冲区的大小设置,默认为1MB。

ss -lnt

lsof -p