netstat命令和ss命令

目录

一、netstat命令

 

输出介绍

常用命令参数

用法:

二、ss命令

常用命令参数

三、跟踪数据包命令

四、域名解析

设置主机DNS地址的三种方式


一、netstat命令

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

 

输出介绍

netstat命令和ss命令_第1张图片

netstat的输出结果可以分为两个部分

1、Active Internet connections 有源TCP连接,其中"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

2、Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
 

Proto:显示连接使用的协议。

RefCnt:表示连接到本套接口上的进程号。

Types:显示套接口的类型。

State:显示套接口当前的状态。

Path:表示连接到套接口的其它进程使用的路径名。

常用命令参数

 -n          | 以数字的形式显示相关的主机地址、端口等信息                   |

 -r          | 显示路由表信息                                               |

 -a          | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) |

 -l          | 显示处于监听(Listening)状态的网络连接及端口信息。          |

 -t          | 查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。 |

-u          | 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。 |

 -p          | 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限 

用法

①通常使用“-anpt”或“-anpu”组合选项,以数字形式显示当前系统中所有的 TCP 和UDP连接信息,同时显示对应的进程信息

②配合管道符grep过滤出特定的记录

[root@ky17 bao]# netstat -anpt |grep sshd         查看sshd端口的网络连接状态
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      8970/sshd           
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      9675/sshd: bao@pts/ 
tcp        0     52 192.168.247.17:22       192.168.247.1:56584     ESTABLISHED 9673/sshd: bao [pri 
tcp6       0      0 :::22                   :::*                    LISTEN      8970/sshd           
tcp6       0      0 ::1:6010                :::*                    LISTEN      9675/sshd: bao@pts/ 

[root@ky17 bao]# netstat -ant |wc -l        直接统计tcp数量监听的数量
16

二、ss命令

ss 是 Socket Statistics 的缩写,也可以查看网络的状态。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。

套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。

Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连进程。

常用命令参数

-h:--help 通过该选项获取更多的使用帮助。 
-V:--version 显示软件的版本号。 
-t:--tcp 显示 TCP 协议的 sockets。 
-u:--udp 显示 UDP 协议的 sockets。 
-n:--numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh",只会显示22  。
-l:--listening 只显示处于监听状态的端口。  
-p:--processes 显示监听端口的进程。 
-a: --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接。 
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。
-o 选项可用于显示计时器信息

-w 用于字符串精确匹配

[root@ky17 bao]# ss -tn | grep -w 22          查看22端口的连接状态
ESTAB      0      52     192.168.247.17:22                 192.168.247.1:61035     
[root@ky17 bao]# ss -tnl sport le 500          查看端口号小于500的端口信息
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128               *:111                           *:*                  
LISTEN     0      5      192.168.122.1:53                            *:*                  
LISTEN     0      128               *:22                            *:*                  
LISTEN     0      100       127.0.0.1:25                            *:*                  
LISTEN     0      128              :::111                          :::*                  
LISTEN     0      128              :::22                           :::*                  
LISTEN     0      100             ::1:25                           :::*                  
[root@ky17 bao]# ss -tnl sport ge 500           查看端口号大于500的端口信息
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128               *:6000                          *:*                  
LISTEN     0      128       127.0.0.1:631                           *:*                  
LISTEN     0      128       127.0.0.1:6010                          *:*                  
LISTEN     0      128              :::6000                         :::*                  
LISTEN     0      128             ::1:631                          :::*                  
LISTEN     0      128             ::1:6010                         :::*  

三、跟踪数据包命令

跟踪数据包的路由途径:traceroute
若服务器上没有 traceroute 命令,可通过 yum 方式安装 traceroute 软件包
traceroute 命令可以用于测试从当前主机到目的主机之间经过了哪些网络结点,并显示各中间结点的连接状态(响应时间)。对于无法响应的结点,连接状态将显示为“*”

traceroute + 目标IP

[root@ky17 bao]# traceroute 127.0.0.1
traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
 1  localhost (127.0.0.1)  0.061 ms  0.009 ms  0.006 ms

四、域名解析

nslookup + DNS服务器地址 (如百度)

[root@ky17 bao]# nslookup www.baidu.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
www.a.shifen.com	canonical name = www.wshifen.com.
Name:	www.wshifen.com
Address: 103.235.46.39

设置主机DNS地址的三种方式

vi /etc/resolv.conf 
search localdomain 
nameserver 202.106.0.20 
nameserver 202.106.148.1
resolv.conf 文件中的“search localdomain”行用来设置默认的搜索域(域名扩展名)。 
例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。
一行一个DNS,最多配置三个DNS

/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做 的修改将会立刻生效。Linux 操作系统中最多可以指定 3 个(第 3 个以后的将被忽略)不同 的 DNS 服务器地址,优先使用第一个 DNS 服务器。

本地主机映射文件
文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询。


在/etc/hosts 文件中添加“119.75.218.70 www.baidu.com”的映射记录,则当访问网站 www.baidu.com 时,将会直接向 IP 地址 119.75.218.70 发送 Web 请求,省略了向 DNS
 

你可能感兴趣的:(网络,p2p,tcp/ip)