Linux查看网络连接情况ss,Linux网络状态工具netstat和ss使用详解

Netstat简介

Netstat可用于列出系统所有的网络套接字连接信息,包括处于监听状态的套接字信息。

语法

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--

listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--

extend|-e]] [--program|-p]

常用选项

-t: tcp协议相关;

-u: udp协议相关;

-w: raw socket ,原始套接字是一个特殊的套接字类型,它的创建方式跟TCP/UDP创建方法几乎是一摸一样;

-l: 处于监听状态;

-a: 所有状态;

-n: 以数字显示IP和端口,禁止DNS反向查询;

-e:扩展格式;

-p: 显示相关进程及PID;

-s: 列出所有网络协议的统计信息;

-r:列出路由信息;

-i:列出网络接口信息;

-e:显示附加信息,配合其他选项使用;

-c:持续显示信息,每秒刷新一次,配合其他选项使用;

-g:显示IPv4和IPv6的多播组成员关系信息。

常用组合

显示所有的tcp连接,并以数字的方式显示。

[[email protected] ~]#netstat -tan

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

tcp 0 0 192.168.1xx.1:53 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN

tcp 0 52 192.168.1xx.130:22 192.168.1xx.1:56747 ESTABLISHED

tcp 0 0 192.168.1xx.130:22 192.168.1xx.1:56909 ESTABLISHED

tcp 0 0 192.168.1xx.130:22 192.168.1xx.1:52053 ESTABLISHED

tcp6 0 0 :::111 :::* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:631 :::* LISTEN

显示所有的udp连接信息。

[[email protected] ~]#netstat -uan

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 0.0.0.0:5353 0.0.0.0:*

udp 0 0 0.0.0.0:25506 0.0.0.0:*

udp 0 0 192.168.122.1:53 0.0.0.0:*

udp 0 0 0.0.0.0:67 0.0.0.0:*

udp 0 0 0.0.0.0:68 0.0.0.0:*

udp 0 0 0.0.0.0:53379 0.0.0.0:*

udp6 0 0 :::23086 :::*

只显示处于监听状态的tcp连接。

[[email protected] ~]#netstat -tnl

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN

tcp6 0 0 :::111 :::* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:631 :::* LISTEN

只显示处于监听状态的udp连接。

[[email protected] ~]#netstat -unl

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 0.0.0.0:5353 0.0.0.0:*

udp 0 0 0.0.0.0:25506 0.0.0.0:*

udp 0 0 192.168.122.1:53 0.0.0.0:*

udp 0 0 0.0.0.0:67 0.0.0.0:*

udp 0 0 0.0.0.0:68 0.0.0.0:*

udp 0 0 0.0.0.0:53379 0.0.0.0:*

udp6 0 0 :::23086 :::*

列出所有tcp连接的信息,以扩展格式显示。

[[email protected] ~]#netstat -tnle

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State User Inode

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 15472

tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 0 22226

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 21045

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 0 21400

tcp6 0 0 :::111 :::* LISTEN 0 15471

tcp6 0 0 :::22 :::* LISTEN 0 21054

tcp6 0 0 ::1:631 :::* LISTEN 0 21399

列出所有tcp连接的信息,并显示其相关的进行和PID(进程号)。

[[email protected] ~]#netstat -tnlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd

tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2136/dnsmasq

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1200/sshd

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 946/cupsd

tcp6 0 0 :::111 :::* LISTEN 1/systemd

tcp6 0 0 :::22 :::* LISTEN 1200/sshd

tcp6 0 0 ::1:631 :::* LISTEN 946/cupsd

持续显示所有的tcp连接。

[[email protected] ~]#netstat -tanc

显示路由表和使用route -n 列出的信息相同.

[[email protected] ~]#netstat -rn

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

0.0.0.0 192.168.166.1 0.0.0.0 UG 0 0 0 eth0

0.0.0.0 172.17.0.1 0.0.0.0 UG 0 0 0 eth1

172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1

192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

192.168.166.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

ss简介

ss是Socker Statistics的缩写,是一款非常适用、快速、跟踪显示的网络套接字的新工具。它和netstat显示的内容类似,但它比netstat更加强大。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。而用ss可以快速、有效的执行并得到结果。ss利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。

语法格式

ss [OPTION]... [FILTER]

常用选项

-t: tcp协议相关;

-u: udp协议相关;

-w: 裸套接字相关;

-x: unix sock相关;

-l: listen状态的连接;

-a: 显示所有sockets信息;

-n: 数字格式;

-p: 相关的程序及PID;

-e: 扩展的信息;

-m:内存用量;

-o:计时器信息;

-s:显示当前sockets的统计信息的摘要;

-i:显示系统内部tcp连接;

-r:解析主机名;

-4:仅显示IPv4的sockets连接;

-6:仅显示IPv6的sockets连接;

常用选项示例

[[email protected] ~]#ss -an #列出所有的sockets连接。

[[email protected] ~]#ss -tnl #列出和tcp相关的sockets连接。

[[email protected] ~]#ss -unl #列出和udp相关的sockets连接。

匹配过滤本机ip地址和端口

[[email protected] ~]#ss src :22 #匹配本机端口为22的连接

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

tcp ESTAB 0 0 192.168.xxx.xxx:ssh 192.168.166.1:63892

tcp ESTAB 0 52 192.168.xxx.xxx:ssh 192.168.166.1:63076

[[email protected] ~]#ss src :ssh #匹配所有ssh协议的连接

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

tcp ESTAB 0 0 192.168.166.137:ssh 192.168.166.1:63892

tcp ESTAB 0 52 192.168.166.137:ssh 192.168.166.1:63076

[[email protected] ~]#ss src 192.168.1.2:ssh #匹配单个IP地址的ssh协议连接

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

tcp ESTAB 0 0 192.168.166.137:ssh 192.168.166.1:63892

tcp ESTAB 0 52 192.168.166.137:ssh 192.168.166.1:63076

匹配过滤远程ip地址和端口

[[email protected] ~]#ss dst 119.75.213.61 #匹配单个远程IP的所有连接

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

tcp ESTAB 0 0 192.168.0.25:59484 119.75.213.61:http

[[email protected] ~]#ss dst 119.75.213.61:80 #只匹配单个IP地址的80端口

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

tcp ESTAB 0 0 192.168.0.25:59484 119.75.213.61:http

将本地或者远程端口和一个数比较

[[email protected] ~]# ss sport = :http

[[email protected] ~]# ss dport = :http

[[email protected] ~]# ss dport \> :1024

[[email protected] ~]# ss sport \> :1024

[[email protected] ~]# ss sport \< :32000

[[email protected] ~]# ss sport eq :22

[[email protected] ~]# ss dport != :22

使用state 过滤sockets信息

显示所有状态为established的http连接

[[email protected] ~]#ss -o state established '( dport = :smtp or sport = :http )'

Netid Recv-Q Send-Q Local Address:Port Peer Address:Port

显示处于 FIN-WAIT-1状态的源端口为 80或者 443,目标网络为 192.168.1/24所有 tcp套接字

ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 192.168.1/24

使用tcp连接的状态进行过滤

ss -4 state FILTER-NAME-HERE

ss -6 state FILTER-NAME-HERE

FILTER-NAME-HERE 可用状态:

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

closing

all #所有以上状态。

connected #除了listen and closed的所有状态。

synchronized #所有已连接的状态除了syn-sent。

bucket #显示状态为maintained as minisockets,如:time-wait和syn-recv。

big #和bucket相反。

[[email protected] ~]#ss -4 state closed

Netid Recv-Q Send-Q Local Address:Port Peer Address:Port

udp 0 0 *:mdns *:*

udp 0 0 *:25506 *:*

udp 0 0 192.168.xxx.1:domain *:*

udp 0 0 *%virbr0:bootps *:*

udp 0 0 *:bootpc *:*

udp 0 0 *:53379 *:*

你可能感兴趣的:(Linux查看网络连接情况ss)