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 ...
随机推荐
- MyEclipse 代码里的中文字太小设置方法
General>Appearance>Colors and Fonts>Basic>Text Font >Edit 把脚本字符改成“中欧字符”就可以了
- Oracle归档日志与非归档日志的切换及路径设置
--==================== -- Oracle 归档日志 --==================== Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的 ...
- vue-router和锚点冲突问题
传统的锚点定位会与vue-router中的路由设置存在冲突,都是使用'#'进行的,所以这里使用一直方法来模拟锚点跳转,并使用tween.js达到动态的过度效果 不使用原生锚点,使用这种方式解决 imp ...
- Java-Runoob-高级教程-实例-环境设置实例:1.Java 实例 – 如何编译一个Java 文件?
ylbtech-Java-Runoob-高级教程-实例-环境设置实例:1.Java 实例 – 如何编译一个Java 文件? 1.返回顶部 1. Java 实例 - 如何编译 Java 文件 Java ...
- [win10]遇坑指南
好多不好用的地方,现在解决的差不多了,把经验分享一下,也方便自己下一次重装 win10 时不再进坑. 1. 输入法:https://zhidao.baidu.com/question/45942172 ...
- [html][javascript]父子窗体传值
父窗体 <script type="text/javascript"> newwindow = window.open("b1.html",&quo ...
- JMS消息模型
消息机制: 系统之间通信的中介,作为一台单独的服务器部署,大多数使用多个系统之间协作,是系统解耦的常见解决方案. 基于CS架构 作用:多个系统之间解耦,项目可以分开开发,满足显示的高可用(也可以说是异 ...
- linux 单网卡来绑定多IP实现多网段访问以及多网卡绑定单IP实现负载均衡
ifconfig eth0 hw AA:BB:CC:DD:EE:FF
- Requests抓取火车票数据
1.数据接口 https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-08-01&from_ ...
- java普通类、抽象类、接口、面向对象理解
1.面向对象编程: 面向对象编程的语言不止java一种,还有: simula 67(第一个面向对象语言,支持单继承和一定含义的多态和部分动态绑定): Smalltalk(第一个支持动态类型的语言,支持 ...