ss VS netstat 解析

netstat

  • 显示网络连接信息
  • 显示路由信息
  • 显示接口统计信息
  • 显示组播成员信息

仔细阅读 man netstat 会发现 这样一句话: 

This program is obsolete.

原来netstat,官方已经不再更新了,已经被ss和ip命令所取代。

ss 命令是一个用来查看socker信息的命令用来获取socker统计信息,ss优势在于它能够显示更多更详细的有关网络连接状态的信息,比netstat更快速、更高效。 

当服务器socker连接数量变大时,无论是使用netstat还是直接读取/proc/net/tcp文件,执行速度都会非常慢,当服务器维持的连接达到上万个的时候,使用ss 是最明智的选择。

ss 高效率的秘诀:它利用了TCP协议栈中的tcp_diag模块,tcp_diag是一个用于分析统计的模块。可以获得Linux内核中的第一手信息,这就确保了ss的快捷高效。如果系统中没有tcp_diag模块,ss也可以正常的运行,只是运行速度稍慢,但仍然比netstat快不少。

例如服务器维持着3万个socker连接,此时需要管理员计算当前服务器的总连接数。

可以看出利用了tcp_diag模块,ss命令效率更快。

几乎所有的Linux系统都会默认包含netstat命令,但并非所有的系统都会默认包含ss命令。

netstat 命令是net-tools软件包中的一员: 

[root@test ~]# rpm -q net-tools
net-tools-2.0-0.22.20131004git.el7.x86_64

ss命令是iproute2软件包中的一员:

[root@test ~]# rpm -qf /usr/sbin/ss
iproute-3.10.0-87.el7.x86_64

如果系统中无法找到ss命令,那么可能是没有安装iproute2造成的,安装的方法:

yum -y install iproute iproute-doc

iproute2 这是一套可以支持ipv4/ipv6 网络的用于管理TCP/UDP/IP网络的软件包,这套工具由Stephen Hemminger负责维护和升级。


  ss 选项统计

  • ss 选项并不算太多,除去非功能选项(-h/-v)外,ss共有22个选项。
  • 每个选项都是既支持短选项(-s)也支持长选项(--summary)。

1、查看当前服务器的网络连接统计

 

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

[root@test ~]# ss -l
Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
nl     UNCONN     0      0      rtnl:kernel                 *                     
nl     UNCONN     0      0      rtnl:641729279              *                     
nl     UNCONN     0      0      rtnl:641729279              *

..........................................................................................

使用 -pl 参数,还会列出具体的程序名称,例如:

[root@test ~]# ss -pl | grep sshd
u_dgr  UNCONN     0      0       * 22236        * 8464                   users:(("sshd",pid=1428,fd=4))
tcp    LISTEN     0      128     *:ssh                 *:*                        users:(("sshd",pid=1091,fd=3))
tcp    LISTEN     0      128    :::ssh                  :::*                       users:(("sshd",pid=1091,fd=4))

3、查看一台服务器上的socker连接,使用 -a 选项可以列出所有的网络连接。

  • 查看TCP socker ,就用 -ta 选项,-t表示TCP
  • 查看UDP socker ,就用-ua选项,-u表示UDP
  • 查看RAW socker, 就用-wa选项,-w表示RAW
  • 查看UNIX socker ,  就用-xa 选项,-x表示UNIX 

iproute2软件包,专注在网络配置(network configuration)和流量控制(traffic control)方面。

包括以下主要工具

  1. ip : 管理路由、设备、策略和隧道等
  2. ss : 展示系统套接字相关信息
  3. tc : 管理流量控制策略
  4. nstat : 用于网络统计
  5. bridge : 管理桥接地址和设备
  6. ifcfg : 进行 ip 管理,以替代ifconfig命令
  7. lnstat : 展示网络状态

为什么iproute2可以取代net-tools ,成为主流Linux发行版的标配?

很久之前,包含arp、ifconfig和route在内的net-tools工具集,是普遍存在于各类Linux发行版和UNIX操作系统之中的,而且大家用起来也很好,但是,Linux内核的2.2版本,对网络子系统进行了全面的重构,性能显著提升,全新的路由,过滤和分级策略是其他系统无法比拟的自从Linux内核发布V2.2版本之后,net-tools工具集就变得有些力不从心了,比如,它们无法支持GRE隧道技术,用户需要去寻找net-tools之外的工具才能实现一些新的网络配置策略,而iproute2则对GRE隧道等技术支持的非常好。

什么是GER隧道技术?

首先解释什么是隧道技术,隧道技术是一种"网络协议的数据包被封装在另一个网络协议的数据包中 以进行数据网络传输"的技术,这种技术其实也是VPN的技术基础和前提。

而GER技术,则是隧道技术中应用最为普遍和广泛的一个,它的全称为通用路由封装(Generic Routing Encapsulation),是由Net-Smiths和Cisco来主导设计的,它工作在网络层,目前已被绝大多数电信设备厂商所支持。

常用命令的新老对应关系展示出来

 

 

       ------------------------ 历经天华成此景,世间万事出艰辛!-------------------------


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值