Linux iproute2 命令家族(ip / ss)

  • iproute 简介
  • ip 命令
    • 1、ip link
      • 1.1 up / down 和 multicast
      • 1.2 name
      • 1.3 mtu
      • 1.4 netns
      • 1.5 show
      • 1.6 help
    • 2、ip netns
    • 3、ip address
      • 3.1 ip address add
      • 3.2 ip address delete
      • 3.3 ip link show
      • 3.4 ip link flush
    • 4、ip route
    • 5、ip link set
  • ss 命令
    • 1、ss 语法格式
    • 2、TCP 常见状态

iproute 简介

iproute 与 内核是密切相关的,所以两者版本是一致的。

[root@LeeMumu ~]# rpm -qi iproute
Name        : iproute
Version     : 4.11.0
Release     : 14.el7_6.2
Architecture: x86_64
Install Date: Sun 28 Jul 2019 09:28:29 AM EDT
Group       : Applications/System
Size        : 1793061
License     : GPLv2+ and Public Domain
Signature   : RSA/SHA256, Mon 29 Apr 2019 11:45:09 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : iproute-4.11.0-14.el7_6.2.src.rpm
Build Date  : Wed 24 Apr 2019 10:03:34 AM EDT
Build Host  : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://kernel.org/pub/linux/utils/net/iproute2/
Summary     : Advanced IP routing and network device configuration tools
Description :
The iproute package contains networking utilities (ip and rtmon, for example)
which are designed to use the advanced networking capabilities of the Linux
kernel.
[root@LeeMumu ~]# uname -r
3.10.0-957.el7.x86_64
[root@LeeMumu ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

ip 命令

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

show / manipulate routing, devices, policy routing and tunnels

语法格式:

# ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route | netns  }注意: OBJECT可简写,各OBJECT的子命令也可简写

1、ip link

ip link: network device configuration

1.1 up / down 和 multicast

ip  link  set - change device attributesdev NAME (default)            # 指明要管理的设备,dev 关键字可省略up 和 down                    # 对接口进行up或downmulticast on 或 multicast off # 启用或禁用多播功能# ip link set tangtang multicast on

1.2 name

# ip  link  set name NAME:重命名接口# 重命名接口时,需要对接口进行down,才能进行操作# ip link set wlp2s0 name tangtang
RTNETLINK answers: Device or resource busy
# ip link set wlp2s0 down
# ip link set wlp2s0 name tangtang
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000link/ether e4:3a:6e:0a:9b:88 brd ff:ff:ff:ff:ff:ff
3: tangtang: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000link/ether d0:c5:d3:4e:25:71 brd ff:ff:ff:ff:ff:ff

1.3 mtu

# ip link set mtu NUMBER        # 设置 MTU 的大小,默认为1500# ip link set tangtang mtu 1300

1.4 netns

netns PID           # ns为namespace,用于将接口移动到指定的网络名称空间# ip netns add neo
# ip netns list
# ip link set tangtang netns neo

1.5 show

# ip  link  show  - display device attributes# 看二层设备的相关属性,和 IP 地址没关系

1.6 help

# ip  link  help -  显示简要使用帮助

2、ip netns

manage network namespaces# ip netns list                # 列出所有的 netns
# ip netns add NAME            # 创建指定的 netns
# ip netns del NAME            # 删除指定的 netns
# ip netns exec NAME COMMAND   # 在指定的 netns 中运行命令

3、ip address

3.1 ip address add

ip address add - add new protocol address
# ip  addr  add  IFADDR  dev  IFACE[label NAME]:为额外添加的地址指明接口别名指定接口别名后,使用 ifconfig -a 可以查看到所有的接口名称和IP地址不指定接口别名后,使用 ip addr list IFACE 进行查看[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到[scope SCOPE_VALUE]:global:全局可用link:接口可用host:仅本机可用
# ip addr add 10.0.0.1/8 dev tangtang
# ip addr add 10.0.0.2/8 dev tangtang
# ip addr add 10.0.0.3/8 dev tangtang label tangtang:0
# ip addr add 192.168.0.2/24 dev tangtang label tangtang:1                # ifconfig -a
tangtang: flags=4098<BROADCAST,MULTICAST>  mtu 1500                       inet 10.0.0.1  netmask 255.0.0.0  broadcast 0.0.0.0               ether d0:c5:d3:4e:25:71  txqueuelen 1000  (Ethernet)              RX packets 0  bytes 0 (0.0 B)                                     RX errors 0  dropped 0  overruns 0  frame 0                       TX packets 0  bytes 0 (0.0 B)                                     TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0        tangtang:0: flags=4098<BROADCAST,MULTICAST>  mtu 1500                     inet 10.0.0.3  netmask 255.0.0.0  broadcast 0.0.0.0               ether d0:c5:d3:4e:25:71  txqueuelen 1000  (Ethernet)              tangtang:1: flags=4098<BROADCAST,MULTICAST>  mtu 1500                     inet 192.168.0.2  netmask 255.255.255.0  broadcast 0.0.0.0        ether d0:c5:d3:4e:25:71  txqueuelen 1000  (Ethernet)              # ip addr list tangtang
3: tangtang: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether d0:c5:d3:4e:25:71 brd ff:ff:ff:ff:ff:ff                    inet 10.0.0.1/8 scope global tangtang                                 valid_lft forever preferred_lft forever                            inet 192.168.0.2/24 scope global tangtang:1                           valid_lft forever preferred_lft forever                            inet 10.0.0.2/8 scope global secondary tangtang                       valid_lft forever preferred_lft forever                            inet 10.0.0.3/8 scope global secondary tangtang:0                     valid_lft forever preferred_lft forever

3.2 ip address delete

delete protocol address
# ip addr  delete  IFADDR  dev  IFACE
# ip addr delete 10.0.0.3/8 dev tangtang

3.3 ip link show

look at protocol addresses# ip  addr   list  [IFACE]:显示接口的地址
# ip addr list tangtang
3: tangtang: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether d0:c5:d3:4e:25:71 brd ff:ff:ff:ff:ff:ff                    inet 10.0.0.1/8 scope global tangtang                                 valid_lft forever preferred_lft forever                            inet 192.168.0.2/24 scope global tangtang:1                           valid_lft forever preferred_lft forever                            inet 10.0.0.2/8 scope global secondary tangtang                       valid_lft forever preferred_lft forever

3.4 ip link flush

flush protocol addresses
# ip  addr  flush  dev  IFACE  清楚接口所有地址
# ip addr flush dev tangtang

4、ip route

routing table management# ip route add - add new route
# ip route change - change route
# ip route replace - change or add new one# ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]IFACE 有多个地址,在配置路由时,可以指定 SOURCE_IP GW 下一跳# ip route delete - delete routeip  route  del  TYPE PRIFIX # ip route show - list routesTYPE PRIFIX
# ip route flush - flush routing tables  # 清除路由/指定路由TYPE  PRIFIX# ip route get - get a single route      # 获取到达特定目的地址的路由条目ip  route  get  TYPE PRIFIX
# ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100## 配置带源地址的路由# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0## 前往目的网络 192.168.10.0/24 的下一跳是 192.168.5.100 ,接口是 eth0# ip route add default via GW
# ip route delete 192.168.1.0/24
# ip route get 192.168.0.0/24# ip route get 192.168.1.0/24
broadcast 192.168.1.0 dev ens33 src 192.168.1.9 cache <local,brd> # ip route add default via 192.168.1.2 dev eth0## 默认路由指向 192.168.1.2 ,接口是 eth0## 只要一个默认路由就 OK
[root@Tang-1 ~]# ip route show
default via 172.16.141.1 dev enp1s0 proto static metric 100
172.16.141.0/24 dev enp1s0 proto kernel scope link src 172.16.141.209 metric 100
[root@Tang-1 ~]# ip route list
default via 172.16.141.1 dev enp1s0 proto static metric 100
172.16.141.0/24 dev enp1s0 proto kernel scope link src 172.16.141.209 metric 100
[root@Tang-1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.141.1    0.0.0.0         UG    100    0        0 enp1s0
172.16.141.0    0.0.0.0         255.255.255.0   U     100    0        0 enp1s0

5、ip link set

# ip link set eth0 up## 启动 eth0 # ip link set eth0 down## 关闭 eth0# ip link set eth0 mtu 1000## 更改 MTU 的值为 1000 bytes.使用 ifconfig 也能更新网卡的 MTU
# ip link set eth0 name vbirdSIOCSIFNAME: Device or resource busy## 该设备目前是启动,应该先# ip link set eth0 down     mtu 900 qdisc pfifo_fast qlen 1000link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff## 网卡名称也可以进行改变,ifcfg-eth0 建议使用默认的接口名称# ip link set vbird name eth0 ## 设备的硬件相关信息,包括MTU、MAC及传输的模式等,都能在这里设置## address的项目后接的可是 MAC 而不是IP

ss 命令

iproute2 包附带的一个工具,用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

1、ss 语法格式

another utility to investigate sockets
ss  [options]  [ FILTER ]     OPTIONS:                        -t:TCP协议的相关连接       -u:UDP相关的连接           -w:raw socket相关的连接    -l:监听状态的连接          -a:所有状态的连接          -n:数字格式                -p:相关的程序及其PID       -e:扩展格式信息            -m:内存用量                -o:计时器信息              FILTER := [ state TCP-STATE ]  [ EXPRESSION ]实现状态过滤的功能EXPRESSION:dport = sport = 示例:'( dport = :22 or sport = :22)'
# ss  -tan  '(  dport = :22  or sport = :22  )'   注意空格
# ss  -tan  state  ESTABLISHED  只显示已连接状态的连接
[root@LeeMumu ~]# ss -tanp
State      Recv-Q Send-Q   Local Address:Port   Peer Address:Port
LISTEN     0      128                  *:22                *:*        users:(("sshd",pid=7017,fd=3))
LISTEN     0      100          127.0.0.1:25                *:*        users:(("master",pid=7148,fd=13))
ESTAB      0      52         192.168.1.9:22    192.168.1.199:64402    users:(("sshd",pid=7282,fd=3))
LISTEN     0      128                 :::22               :::*        users:(("sshd",pid=7017,fd=4))
LISTEN     0      100                ::1:25               :::*        users:(("master",pid=7148,fd=14))
[root@LeeMumu ~]# ss -tan
State      Recv-Q Send-Q   Local Address:Port   Peer Address:Port
LISTEN     0      128                  *:22                *:*
LISTEN     0      100          127.0.0.1:25                *:*
ESTAB      0      52         192.168.1.9:22    192.168.1.199:64402
LISTEN     0      128                 :::22               :::*
LISTEN     0      100                ::1:25               :::*

2、TCP 常见状态

TCP FSM:LISTEN         # 监听ESTABLISEHD    # 建立的连接FIN_WAIT_1     # 等待断开连接FIN_WAIT_2     # 确认断开连接SYN_SENT       # 发送SYN_RECV       # 接收CLOSED         # 关闭
[root@LeeMumu ~]# ss  -tan  '(  dport = :22  or sport = :22  )'
State      Recv-Q Send-Q        Local Address:Port             Peer Address:Port
LISTEN     0      128                       *:22                          *:*
ESTAB      0      52              192.168.1.9:22              192.168.1.199:64402
LISTEN     0      128                      :::22                         :::*

Linux iproute2 命令家族(ip / ss)相关推荐

  1. Linux 基础命令:IP 路由操作 -ip命令

    转自Linux爱好者:Linux 基础命令:IP 路由操作 Table of Contents ip 1.语法 2.选项列表 3.ip link---网络设备配置 4.ip address---协议地 ...

  2. Linux之命令改ip

    从8.10开始,系统配置ip就比较复杂.原因是有个network-manager 管理软件来管理ip,虽使ip配置简单化了,但不是有效的配置.来自底层的配置才是王道. 首先需要删除network-ma ...

  3. linux常用命令:ip 命令

    ip命令用来显示或操纵Linux主机的路由.网络设备.策略路由和隧道,是Linux下较新的功能强大的网络配置工具.ip命令完全可以替代ifconfig命令,而且功能还比ifconfig命令强大 htt ...

  4. linux常用命令及ip地址更改

    1.linux系统的常用命令 1>输入命令的窗口(终端) 打开终端:ctrl + alt + t peter@ubuntu:   ~    $ | | | 用户名 主机名  当前位置(路径)   ...

  5. L67.linux命令每日一练 -- 第十章 Linux网络管理命令 -- netstat和ss

    10.7 netstat:查看网络状态 10.7.1 命令详解 ​ [命令星级] ★★★★★ ​ [功能说明] ​ netstat命令用于显示本机网络的连接状态.运行端口和路由表等信息. ​ [语法格 ...

  6. linux使用命令设置IP,DNS,网关

    临时修改 root # ifconfig eth0 192.168.1.10                                           #设置ip root # route ...

  7. linux命令取ip,linux下命令取IP地址的多种方法

    经常会遇到在命令行取ip地址,或写脚本引用ip地址,需要使用命令取出来:下面的方法根据实际情况调整 下面的命令环境为centos6.6系统:[root@localhost ~]# ifconfig e ...

  8. Linux arping命令测试IP地址冲突

    arping命令可以用来测试局域网各个主机之间的连通性,测试局域网中某个特定的IP地址是否已经被占用,进而可以有效检测局域网内的IP地址冲突问题. 如下图示例:arping -c 3 -f -D *. ...

  9. linux ifconfig命令配置ip地址

    linxu下网卡命名规律:eth0,eth1. 第一块以太网 第二块lo为环回接口,它的IP地址固定为127.0.0.1,掩码8位.它代表你的机器本身.                  ifconf ...

  10. linux下的网络管理命令,常用linux网络管理命令(下)

    常用linux网络管理命令(下) ip:更改或显示路由.IP.协议等信息 ip link:接口管理 show [DEVICE]:显示网卡接口信息 set [DEVICE] [up | down]:开启 ...

最新文章

  1. 今日头条女程序员加班加到不来大姨妈,凌晨十二点半回家的她竟然还被老板吐槽不投入!妹子抑郁大哭!...
  2. 怎么调试多线程代码_IDEA的这几个调试的骚操作,用了都说爽!
  3. CodeForces - 1058D D. Vasya and Triangle
  4. 栈和队列:1.栈(Stack)
  5. 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
  6. 【jQuery笔记Part1】01-jQuery简介集成
  7. 阿里云、天津开启多项合作,区域经济大脑落地津南
  8. ASP.NET域集成AD身份验证
  9. AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(二)
  10. 基于WEB的达内学子书城/商城源代码
  11. 数据增强_炼丹笔记三:数据增强
  12. 网页换肤--setAttribute - css
  13. 一般网站建设大概需要多少钱?
  14. 基于JSP的班级聚会网站
  15. 【新东郊商城】周年店庆 关注微信,转发微博抽奖品!玩赚乐不停
  16. Dubbo-06 20190320
  17. c语言中 “=”和”==“的区别
  18. 174道 JavaScript 面试题,助你查漏补缺
  19. 计算机电源带不起来,电源板带不起负载维修思路总结
  20. 高等数学学习笔记——第三十四讲——函数的单调性与凹凸性(凹凸性)

热门文章

  1. ALFA机器视觉深度学习外观检测软件——无需算法编程的机器视觉检测软件
  2. 使用fiddler绕过“请在微信客户端打开链接”
  3. word引用 html文件路径,Word怎么引用网页文档
  4. 天池学习赛:保险反欺诈预测(附代码)
  5. 10大习惯让你变年轻
  6. 最近,京东AR又爆出哪般神奇?
  7. 如何讲好一个故事 - by锤子手机活动策划负责人草威
  8. 什么是一维表 什么是二维表
  9. std::result_of用法
  10. Pseudo Labelling