什么是netstat

    在Linux系统中输入 man netstat,显示的结果如下所示:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

    从上面可以看出netstat命令的主要功能为:

  • 显示网络连接信息
  • 显示路由表信息
  • 显示网卡统计信息
  • 显示无效的连接信息
  • 显示组播成员信息

   当我们看完介绍往下的时候,会看到如下的提示信息:

This program is obsolete.  Replacement for netstat is ss.  Replacement for netstat -r is ip route.  Replacement for netstat -i is ip  -s  link.
Replacement for netstat -g is ip maddr.

    从上面这段话可以看到netstat已经不再维护被ssip命令所代替了。详细代替命令如下所示:

ss命令

    ss是Socket Statistics的缩写,是用于统计socket信息。几乎所有的Linux系统都会默认包含netstat命令,但并非所有的系统都会默认包含ss命令。netstat是net-tool的成员,而ss是iproute2的成员,如果出现无法使用ss命令时,可以使用

yum -y install iproute iproute-doc

进行安装。iproute2是一套可以支持IPv4/IPv6网络且用于管理TCP/UDP/IP网络的软件包,因此iproute2几乎可以代替net-tool的软件包。以下是对比结果:

用途 net-tool iproute2
地址和链路配置 ifconfig ip addr ,ip link
路由表 route ip route
arp表 arp ip neigh
VLAN vconfig ip link
隧道 iptunnel ip tunnel
组播 ipmaddr ip maddr
统计 netstat ss

基本语法

ss [选项] [参数]

常用选项参数如下所示:

选项 说明
-h,--help 显示帮助信息
-V,--version 显示版本信息
-n,--numeric 以数字形式显示,不解析服务名称
-r,--resolve 解析主机名称和端口
-a,--all 显示所有信息,包含监听和非监听的信息
-l,--listening 仅显示监听信息
-o,--options 显示计时器信息
-e,--extended 显示详细的Socket信息
-m,--memore 显示Socket的内存使用信息
-p,--processes 显示使用Socket的进程信息
-i,--info 显示TCP内部信息
-s,--summary 显示Socket的使用概况
-4,--ipv4 仅显示ipv4的Socket信息
-6,--ipv4 仅显示ipv6的Socket信息
-t,--tcp 仅显示TCP的Socket信息
-u,--udp 仅显示UDP的Socket信息
-d,--dccp 仅显示DCCP的Socket信息
-w,--raw 仅显示RAW的Socket信息
-s,--sctp 仅显示SCTP的Socket信息
-K,--kill 尝试强制关闭Socket

示例

1.查看当前服务器的网络连接信息

当服务器有大量的Socket连接时,可以用来做宏观统计

2.查看所有打开的网络端口

ip命令

    ip命令用来显示或配置Linux主机的路由、网络设备、策略路由和隧道。

基本语法

ip [选项] 对象 {命令 | 帮助}

常用选项参数如下所示:

选项 说明
-V,--Version 显示版本信息
-h,--human 以易于读取的方式输出信息
-s,--statistics 显示详细的统计信息
-f,--family 指定使用的协议类型,协议类型主要有:inet,inet6,bridge,ipx, dnet,mpls,link ,如果未指定协议类型,则系统根据后面的参数自行决定所采用的协议类型
-4 --family inet的简写
-6 --family inet6的简写
-B --family bridge的简写
-0 --family link的简写
-o,--oneline 每条记录单独一行输出
-r,--resolve 查询DNS解析系统,使用主机名代替主机IP地址
-c,--color 对显示的信息进行颜色标识
-t,--timestamp 增加时间戳
-ts,--tshort 与-t参数类似,以短时间形式显示
-iec 以易于读取的形式显示速率信息,如1Ki=1024

    对象是要管理或获取信息的对象,常用的对象如下所示:

对象 说明
address 设备上的协议(IPv4/IPv6)地址
l2tp IP上面的隧道(L2TPv3)
link 网络设备
maddress 多播地址
mroute 多播路由缓冲条目
route 路由表条目
rule 路由规则
tcp_metrics/tcpmetrics tcp转发优先级
tunnel IP上的隧道

   命令是用于指定对象上的操作行为,常见的命令如下所示:

命令 说明
add 增加操作
del 删除操作
show/list 显示操作
如果命令用户没有指定,则系统会自动指定操作行为,如show或list

示例

1.添加IP地址:

ip addr add 192.168.8.8/24 dev ens0

2.显示IP地址

ip addr show

ip addr list

ip addr

3.删除IP地址

ip addr del 192.168.8.8/24 dev ens0

4.启用/禁用网卡

启用网卡
ip link set ens0 up
禁用网卡
ip link set ens0 down

5.显示路由信息

ip route show

6.增加路由信息

ip route add 192.168.8.8/24 via 192.168.8.1
via 192.168.8.1 后面是网关

7.设定网卡仅转发

ip route add 192.168.8.8 dev ens0

8.删除路由

ip route del 192.168.8.8/24 via 192.168.8.1
ip route del 192.168.8.8 dev ens0

9.指定默认网关

ip route add default via 192.168.8.1

默认网关作用很简单明确,当一台主机找不到匹配的转发规则,则把数据转发给默认网关,由该网关进行处理。

10.删除默认网关

ip route del default

11.为不同的源IP指定路由选择

   当一个主机有多个网卡且配置了多个IP的时候,对于不同网卡产生的网络数据包,则需要根据其源IP地址选择不同的路由信息,如下所示:

ip route add 192.168.8.0/0 via 192.168.8.1 src 192.168.8.8

   上面这个命令的意思就是发到192.168.8.0/0网段的所有网络包,下一跳的路由器IP是192.168.8.1,包的源IP地址为:192.168.8.8

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

Linux 基础教程 27-ss和ip命令的更多相关文章

  1. 嵌入式LINUX基础教程 第2版

    嵌入式LINUX基础教程  第2版 目录 第1章 入门 11.1 为什么选择Linux 11.2 嵌入式Linux现状 21.3 开源和GPL 21.4 标准及相关组织 31.4.1 Linux标准基 ...

  2. Linux 基础教程 44-history命令

    什么是history     在Linux系统日积月累的使用中,我们会输入很多命令.而在我们想重复上一个命令时,通过使用方向键向上翻就可以查看我们已经输入和使用过的命令.那大家有没有想过这个命令保存在 ...

  3. Linux 基础教程 43-su和sudo命令

        在使用Linux系统中,有时候还需要做身份切换,这是为什么? 使用普通账号:系统日常操作的好习惯   虽然使用root对系统进行各种操作不受权限等方面的限制,但却存在重大的安全隐患,假如有人不 ...

  4. Linux 基础教程 37-进程命令

    pidof     我们知道每个小孩一出生就会一个全国唯一的编号来对其进行标识,用于以后上学,办社保等,就是我们的身份证号.那么在Linux系统中,用来管理运行程序的标识叫做PID,就是大家熟知的进程 ...

  5. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

  6. Linux基础教程

    Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands    基本的Linux ...

  7. Linux 基础教程 32-解压缩命令

        将文件压缩后对提升数据传输效率,降低传输带宽,管理备份数据都有非常重要的功能,因此文件压缩解压技能就成为必备技能.相对于Windows中的文件解压缩工具百花争艳,在Linux中的解压缩工具则要 ...

  8. Linux 基础教程 30-tcpdump命令-2

        在上一节讲了一些tcpdump常用功能,本期我们继续学习tcpdump后续功能. 流量过滤     tcpdump不仅支持单个过滤表达式过滤,也还支持多个过滤表达式.但需要注意的是传入的过滤表 ...

  9. Linux 基础教程 29-tcpdump命令-1

    什么是tcpdump     在Linux中输入命令man tcpdump给出的定义如下所示: tcpdump - 转储网络上的数据流 是不是感觉很懵?我们用通俗.形象.学术的表达方式来全方位描述tc ...

随机推荐

  1. 【monkeyrunner】monkeyrunner脚本录制和回放

    脚本录制 1.连接你已经打开调试模式的ANDROID设备或模拟器,输入adb devices 2.运行录制脚本.在cmd窗口输入 monkeyrunner recorder.py #recorder. ...

  2. String..lastIndexOf(".") 返回-1的思考

    String s = tableName.substring(tableName.lastIndexOf(".") + 1); 如果有tableName有'.',那么返回正确的截取 ...

  3. QT 控制LED实验

    1.实验准备 在PC 机D:盘下创建文件夹qt-led,将光盘qt_led_exp 文件夹下的images 文件夹拷贝到E:盘下qt-led 文件夹qt-led 内 2.新建工程 新建一个Empty ...

  4. POJ 1258 Agri-Net (prim水题)

    Agri-Net Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Total Subm ...

  5. linux下今天遇到的问题

    之前由于测试需要,必须用mysql5.7的客户端, 现在由于产品完善,开始支持5.6,所以需要装5.6的客户端做测试,考虑到手工测试的效率及不可重复性,准备自动化执行原来的用例. 老的用例是用MySQ ...

  6. [转]使用Android-Studio 开发Android 程序

    界面主题可以从这里下载:http://color-themes.com/ 杂七杂八(包含Android-Studio 自身):http://www.androiddevtools.cn/ genymo ...

  7. CSS布局模型学习

    转自:http://www.cnblogs.com/erliang/p/4092192.html CSS布局模型学习   参考链接慕课网:HTML+CSS基础课程 知识基础 1. 样式 内联 嵌入 外 ...

  8. canvas绘制文本

    canvas绘制文本 属性和方法 font = value 设置字体 textAlign = value 设置字体对齐方式 start, end, left, right, center textBa ...

  9. uva-11234-表达式

    后缀表达式,使用队列计算,要求计算的结果一样,输出队列的输入串 表达式转二叉树,层次序遍历,先右孩子,然后字符串反转输出 #include <iostream> #include < ...

  10. django2.0数据展示流程

    之前刚刚实现了数据添加的流程,那么数据展示是怎么回事 1 先在 views.py 中定义函数 增加获取数据的方式 from django.shortcuts import render from bl ...