什么是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. node.js + express 初体验【hello world】

    [node.js]  一个神奇的XX 呵呵 :) 不知道怎么形容他才好! [express] 是node.js 开发web应用程序的框架 开发环境:XP 大家共同进步吧 :) 一:前期准备: 1:下载 ...

  2. C# 转义字符 '\'反斜杠

    在代码中经常用到表示路径的字符串,如何正确转换反斜杠? 如要将"C:\123"转换成"C:\\123" 如何转换? 方法: string str="C ...

  3. 智能家居入门DIY——【五、执行命令】

    前面几篇介绍了ESP8266使用AT命令来连接WIFI实现一系列功能.这一篇介绍一下使用Wemos D1 Wifi来进行开发,当然也可以用常见的8针ESP8266来完成(只是需要按网上的方法将Ardu ...

  4. [模板]ST表浅析

    ST表,稀疏表,用于求解经典的RMQ问题.即区间最值问题. Problem: 给定n个数和q个询问,对于给定的每个询问有l,r,求区间[l,r]的最大值.. Solution: 主要思想是倍增和区间d ...

  5. hadoop-2.7.1:Error: Cannot find configuration directory: /etc/hadoop

    本文转载自:http://blog.csdn.net/huangshanchun/article/details/49533433 安装hadoop参考:http://blog.csdn.net/hi ...

  6. JS截取字符串常用方法详细整理&&MYSQL

    截取字符串的使用比较广泛,有很多中方法,本文粗略的整理了一些,感兴趣的额朋友可以才参考下 使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分 ...

  7. jdbc练习demo

    //连接云端服务器数据库工具类 public class TestJDBCUtil { public static String driver="com.mysql.jdbc.Driver& ...

  8. C++指针的长度

    每台计算机都有字长,指明指针数据的标称大小----来自深入理解计算机系统 每台计算机的字长指明了它的虚拟空间大小.比如32位的机器,虚拟空间地址为0~2^w-1程序最多访问2^w个字节 对于32位程序 ...

  9. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  10. sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中

    假设有一场景1001.unity,,manifest文件如下: ManifestFileVersion: 0CRC: 425184873Hashes: AssetFileHash: serialize ...