11.4 网络属性配置之 ip 系列命令
网络属性配置之 ip 系列命令

本节我们来介绍 Linux 网络属性配置的第二组系列命令 ip 命令。ip 命令是 Linux 的"新贵",相比于 ifcfg 它们更加的高效。ip 系列包括如下几个命令
- ip 命令: 有众多子命令,拥有配置网络地址,网络接口属性,路由等多种功 能
 - ss 命令: netstat 命令的优化版,用于查看网络连接状态
 
1. ip
ip [ OPTIONS ] OBJECT { COMMAND | help }
- 作用: show / manipulate routing, devices, policy routing and tunnels.
 OBJECT: 作用对象link: 网络接口属性addr: 网络地址route: 路由netns: 网络命名空间
COMMAND: 每个作用对象上的可用子命令help: 是一个通用子命令,用于显示特定作用对象的可用命令- 注意: OBJECT可简写,各OBJECT的子命令也可简写;
 
通过上面的展示可以看出,ip 将网络地址,路由,网络接口等划分成了一个个独立的对象,每个独立的对象拥有特定的子命令来对其进行管理和配置。
1.1 ip link
ip link: network device configuration,是用来配置网络设备的子命令,可用于管理网络接口的各种属性。其常用子命令如下
ip link set
ip link set [dev] NAME options
- 作用: 更改网络接口属性
 [dev] NAME:指明要管理的设备,dev关键字可省略- 参数:
up|down:,up 表示启用,down 表示关闭;multicast on|off:启用或禁用多播功能;name NAME:重命名接口mtu NUMBER:设置MTU的大小,以太网默认为1500;netns PID:ns为namespace,用于将接口移动到指定的网络名称空间
 
 | 
 | 
ip link show|list
ip link show|list options
- 作用: 显示网络接口属性
 - 参数:
[dev] NAME:指明要显示的接口,dev关键字可省略;up: 仅仅显示启用状态的接口设备
 
ip link help
ip link help
- 作用: 显示 ip link 简要使用帮助
 
1.2 ip netns
ip netns:manage network namespaces. 用于管理网络命名空间。网络命名空间在虚拟化中具有重要作用,我们会在虚拟化重新介绍 ip netns 的使用,此处仅作了解即可
ip netns COMMAND:
ip netns list:列出所有的netnsip netns add NAME:创建指定的netnsip netns del NAME:删除指定的netnsip netns exec NAME IP_COMMAND- 作用: 在指定的netns中运行命令
 - NAME: 表示指定的命名空间
 - IP_COMMAND: 任何可使用的 ip 命令
 
 | 
 | 
1.3 ip address
ip address:protocol address management. 用于管理网络地址,作用类似于 ifconfig 命令
ip addr add
ip addr add IP  dev IFACE IFADDR
- 作用: 为网络接口添加 IP 地址
 - 参数:
IP: ip/netmaskdev IFACE: 指定网络接口
 - IFADDR: 为地址的添加的额外属性
label NAME:为额外添加的地址指明接口别名;broadcast ADDRESS:广播地址;会根据IP和NETMASK自动计算得到,一般无需指明scope SCOPE_VALUE:指明网络接口的作用域了解即可global:全局可用;link:接口可用;host:仅本机可用;
 
 | 
 | 
ip addr delete
ip addr add IP  dev IFACE
- 作用: 删除网络接口的 IP 地址,delete 可简写成 del
 - 参数:
IP: 指明要删除的 ip/netmaskdev IFACE: 指定网络接口
 
 | 
 | 
ip addr show
ip addr show|list options
- 作用: 显示网络接口地址详细信息
 - 选项:
[dev] IFACE: 显示特定接口的地址,默认显示所有接口label PATTERN: 显示指定模式别名的接口
 
ip addr flush
ip addr flush  dev IFACE options
- 作用: 清空网络设备的IP地址,不支持简写
 - 选项:
label PATTERN: 删除指定模式别名的接口
 
 | 
 | 
1.4 ip route
ip route routing table management,路由表管理
ip route add
ip route {add|change|replace} TARGET via GW  options
- 作用: add,change,replace 使用方式类似
- add: 添加路由条目,可根据路由信息自动判断是主机路由还是网络路由
 - change: 更改路由
 - replace: 更改或添加路由
 
 - 参数:
TARGET: 主机路由即 IP,网络路由即 NETWORK/MASKvia GW: 网关或路由的下一跳
 - 选项:
dev IFACE: 指明从哪个网络接口发送报文src SOURCE_IP: dev 指明的网卡存在多个地址时,指定出口IP
 
 | 
 | 
ip route delete
ip route delete TARGET [via GW]
- 作用: 删除路由条目
 - 参数:
TARGET: 主机路由即 IP,网络路由即 NETWORK/MASK[via GW]: 如果 TARGET 能唯一指明路由条目则无需指明网管
 - eg: 
ip route del 192.168.1.0/24 
ip route show
ip route show options
- 作用: 查看路由条目
 - 选项:
TARGET: 显示特定路由条目[dev] IFACE: 查看特定网卡的路由条目via PREFIX: 查看特定网关的路由条目
 
ip route flush
ip route flush options
- 作用: 清空路由条目
 - 选项:
prefix/mask: 删除特定前缀的路由条目[dev] IFACE: 查看网卡的路由条目via PREFIX: 删除特定网关的路由
 
 | 
 | 
ip route get
ip route get TARGET [via GW]
- 作用: 获取一条特定的路由信息
 
 | 
 | 
2. ss命令:
ss  [options]  [ FILTER ]
- 作用:类似于 netstat,用于查看网络连接状态
 - 类 netstat 选项:
-t:TCP协议的相关连接-u:UDP相关的连接-w:raw socket相关的连接-x:unix socket 相关-l:监听状态的连接-a:所有状态的连接-n:数字格式-p:相关的程序及其PID-e:扩展格式信息
 - 特有选项:
-m:内存用量-o:计时器信息
 - FILTER: ss 用于筛选的表达式
- 格式: 
[ state TCP-STATE ] [ EXPRESSION ] - TCP-STATE:
LISTEN:监听ESTABLISEHD:建立的连接FIN_WAIT_1:FIN_WAIT_2:SYN_SENT:SYN_RECV:CLOSED:
 - EXPRESSION:
dport = 目标端口号sport = 源端口号- eg:
'( dport = :22 or sport = :22 )'- 每个部分都必须有空格隔开 
 
 - 格式: 
 
 | 
 |