Linux 基础教程 27-ss和ip命令
什么是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已经不再维护被ss和ip命令所代替了。详细代替命令如下所示:
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命令的更多相关文章
- 嵌入式LINUX基础教程 第2版
嵌入式LINUX基础教程 第2版 目录 第1章 入门 11.1 为什么选择Linux 11.2 嵌入式Linux现状 21.3 开源和GPL 21.4 标准及相关组织 31.4.1 Linux标准基 ...
- Linux 基础教程 44-history命令
什么是history 在Linux系统日积月累的使用中,我们会输入很多命令.而在我们想重复上一个命令时,通过使用方向键向上翻就可以查看我们已经输入和使用过的命令.那大家有没有想过这个命令保存在 ...
- Linux 基础教程 43-su和sudo命令
在使用Linux系统中,有时候还需要做身份切换,这是为什么? 使用普通账号:系统日常操作的好习惯 虽然使用root对系统进行各种操作不受权限等方面的限制,但却存在重大的安全隐患,假如有人不 ...
- Linux 基础教程 37-进程命令
pidof 我们知道每个小孩一出生就会一个全国唯一的编号来对其进行标识,用于以后上学,办社保等,就是我们的身份证号.那么在Linux系统中,用来管理运行程序的标识叫做PID,就是大家熟知的进程 ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux基础教程
Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands 基本的Linux ...
- Linux 基础教程 32-解压缩命令
将文件压缩后对提升数据传输效率,降低传输带宽,管理备份数据都有非常重要的功能,因此文件压缩解压技能就成为必备技能.相对于Windows中的文件解压缩工具百花争艳,在Linux中的解压缩工具则要 ...
- Linux 基础教程 30-tcpdump命令-2
在上一节讲了一些tcpdump常用功能,本期我们继续学习tcpdump后续功能. 流量过滤 tcpdump不仅支持单个过滤表达式过滤,也还支持多个过滤表达式.但需要注意的是传入的过滤表 ...
- Linux 基础教程 29-tcpdump命令-1
什么是tcpdump 在Linux中输入命令man tcpdump给出的定义如下所示: tcpdump - 转储网络上的数据流 是不是感觉很懵?我们用通俗.形象.学术的表达方式来全方位描述tc ...
随机推荐
- 【monkeyrunner】monkeyrunner脚本录制和回放
脚本录制 1.连接你已经打开调试模式的ANDROID设备或模拟器,输入adb devices 2.运行录制脚本.在cmd窗口输入 monkeyrunner recorder.py #recorder. ...
- String..lastIndexOf(".") 返回-1的思考
String s = tableName.substring(tableName.lastIndexOf(".") + 1); 如果有tableName有'.',那么返回正确的截取 ...
- QT 控制LED实验
1.实验准备 在PC 机D:盘下创建文件夹qt-led,将光盘qt_led_exp 文件夹下的images 文件夹拷贝到E:盘下qt-led 文件夹qt-led 内 2.新建工程 新建一个Empty ...
- POJ 1258 Agri-Net (prim水题)
Agri-Net Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) Total Subm ...
- linux下今天遇到的问题
之前由于测试需要,必须用mysql5.7的客户端, 现在由于产品完善,开始支持5.6,所以需要装5.6的客户端做测试,考虑到手工测试的效率及不可重复性,准备自动化执行原来的用例. 老的用例是用MySQ ...
- [转]使用Android-Studio 开发Android 程序
界面主题可以从这里下载:http://color-themes.com/ 杂七杂八(包含Android-Studio 自身):http://www.androiddevtools.cn/ genymo ...
- CSS布局模型学习
转自:http://www.cnblogs.com/erliang/p/4092192.html CSS布局模型学习 参考链接慕课网:HTML+CSS基础课程 知识基础 1. 样式 内联 嵌入 外 ...
- canvas绘制文本
canvas绘制文本 属性和方法 font = value 设置字体 textAlign = value 设置字体对齐方式 start, end, left, right, center textBa ...
- uva-11234-表达式
后缀表达式,使用队列计算,要求计算的结果一样,输出队列的输入串 表达式转二叉树,层次序遍历,先右孩子,然后字符串反转输出 #include <iostream> #include < ...
- django2.0数据展示流程
之前刚刚实现了数据添加的流程,那么数据展示是怎么回事 1 先在 views.py 中定义函数 增加获取数据的方式 from django.shortcuts import render from bl ...