Linux系统使用ss命令查看端口状态 | 您所在的位置:网站首页 › linux查询端口状态 › Linux系统使用ss命令查看端口状态 |
Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 状态之间的关系 3.ss的使用 3.1 使用示例 3.2 过滤 3.2.1 状态过滤 3.2.2 通过family过滤 3.2.3 使用地址和端口过滤 3.3 常用组合 1.可用工具 逐渐淘汰的 netstat 命令在 net-tools 软件包里(多年没有维护;效率很低) 逐渐成为主流的 ss 命令在 iproute2 软件包里(对常用网络命令做了改进和优化)ArchLinux已弃用"net-tools",转而使用"iproute2" 弃用命令 > 替换命令arp > ip nifconfig > ip a, ip link, ip -snetstat > ss, ip route, ip -s linkroute > ip route详见:https://www.cnblogs.com/sztom/articles/10764994.html 不推荐使用的Linux网络命令及其替代品 2.ss帮助$ ss -h -h, --help this message 帮助信息 -V, --version output version information 输出版本信息 -n, --numeric don't resolve service names 不解析服务名称 -r, --resolve resolve host names 解析主机名 -a, --all display all sockets 显示所有套接字 -l, --listening display listening sockets 显示侦听套接字 -o, --options show timer information 显示计时器信息 -e, --extended show detailed socket information 显示详细的套接字信息 -m, --memory show socket memory usage 显示套接字内存使用量 -p, --processes show process using socket 显示使用socket的进程信息 -i, --info show internal TCP information 显示内部TCP信息 --tipcinfo show internal tipc socket information 显示内部tipc套接字信息 -s, --summary show socket usage summary show socket使用摘要 --tos show tos and priority information 显示tos和优先级信息 -b, --bpf show bpf filter socket information 显示bpf过滤器套接字信息 -E, --events continually display sockets as they are destroyed 在它们被摧毁时不断显示套接字 -Z, --context display process SELinux security contexts 显示进程SELinux安全上下文 -z, --contexts display process and socket SELinux security contexts 显示进程和套接字SELinux安全上下文 -N, --net switch to the specified network namespace name 切换到指定的网络命名空间名称 -4, --ipv4 display only IP version 4 sockets 只显示ipv4的套接字; -6, --ipv6 display only IP version 6 sockets 只显示ipv6的套接字; -0, --packet display PACKET sockets 显示PACKET套接字 -t, --tcp display only TCP sockets 仅显示TCP套接字 -S, --sctp display only SCTP sockets 仅显示SCTP套接字 -u, --udp display only UDP sockets 仅显示UDP套接字 -d, --dccp display only DCCP sockets 仅显示DCCP套接字 -w, --raw display only RAW sockets 仅显示RAW套接字 -x, --unix display only Unix domain sockets 仅显示Unix域套接字 --tipc display only TIPC sockets 仅显示TIPC套接字 --vsock display only vsock sockets 仅显示vsock套接字 -f, --family=FAMILY display sockets of type FAMILY 显示FAMILY类型的套接字 FAMILY := {inet|inet6|link|unix|netlink|vsock|tipc|help} -K, --kill forcibly close sockets, display what was closed 强行关闭套接字,显示已关闭的内容 -H, --no-header Suppress header line 抑制标题行 -A, --query=QUERY, --socket=QUERY QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink|vsock_tipc}[,QUERY] -D, --diag=FILE Dump raw information about TCP sockets to FILE 将有关TCP套接字的原始信息转储到FILE -F, --filter=FILE read filter information from FILE 从FILE中读取过滤器信息 FILTER := [ state STATE-FILTER ] [ EXPRESSION ] STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES} TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listening|closing} connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing} synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing} bucket := {syn-recv|time-wait} big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listening|closing} 2.1 选项分类说明这2个选项(-n, -r)不能同时使用 -n, --numeric don't resolve service names 不解析服务名称 -r, --resolve resolve host names 解析主机名 统计摘要 -s, --summary show socket usage summary show socket使用摘要 显示全部 -a, --all display all sockets 显示所有套接字 仅显示部分 -l, --listening display listening sockets 显示侦听套接字 -4, --ipv4 display only IP version 4 sockets 只显示ipv4的套接字; -6, --ipv6 display only IP version 6 sockets 只显示ipv6的套接字; -0, --packet display PACKET sockets 显示PACKET套接字 -t, --tcp display only TCP sockets 仅显示TCP套接字 -S, --sctp display only SCTP sockets 仅显示SCTP套接字 -u, --udp display only UDP sockets 仅显示UDP套接字 -d, --dccp display only DCCP sockets 仅显示DCCP套接字 -w, --raw display only RAW sockets 仅显示RAW套接字 -x, --unix display only Unix domain sockets 仅显示Unix域套接字 其他更多信息 -p, --processes show process using socket 显示使用socket的进程信息 -o, --options show timer information 显示计时器信息 -e, --extended show detailed socket information 显示详细的套接字信息 -m, --memory show socket memory usage 显示套接字内存使用量 -i, --info show internal TCP information 显示内部TCP信息 2.2 过滤选项 family-f, --family=FAMILY display sockets of type FAMILY 显示FAMILY类型的套接字 FAMILY := {inet|inet6|link|unix|netlink|vsock|tipc|help} 2.3 过滤选项 statestate : {all|connected|synchronized|bucket|big|TCP-STATES} TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listening|closing} connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing} synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing} bucket := {syn-recv|time-wait} big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listening|closing} 2.4 状态之间的关系
详细内容请看原文:https://blog.51cto.com/net881004/2164020
图1:客户端和服务器建立连接的挥手过程原理图
图2:TCP状态转移图
图3:关闭部分的状态转移图
如果不添加选项 ss 命令默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接: $ ss Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp ESTAB 0 0 192.168.31.177:38885 60.227.167.98:24932 tcp ESTAB 0 0 192.168.31.177:35846 89.42.31.211:polestar tcp CLOSE-WAIT 32 0 127.0.0.1:59638 127.0.0.1:socks tcp CLOSE-WAIT 1 0 127.0.0.1:59612 127.0.0.1:socks tcp FIN-WAIT-2 0 0 127.0.0.1:socks 127.0.0.1:59606 tcp ESTAB 0 0 192.168.31.177:34970 89.42.31.211:polestar 3.1 使用示例显示每个协议的摘要统计信息。 $ ss -s Total: 916 TCP: 75 (estab 15, closed 26, orphaned 4, timewait 18) Transport Total IP IPv6 RAW 1 1 0 UDP 14 13 1 TCP 49 48 1 INET 64 62 2 FRAG 0 0 0 查看所有套接字: ss -a $ ss |wc -l 901 $ ss -a |wc -l //898 State 1 CLOSE-WAIT 2 ESTAB 749 FIN-WAIT-2 2 LAST-ACK 1 LISTEN 32 TIME-WAIT 2 UNCONN 110 合计 结果 898 显示侦听套接字,列出所有打开的网络连接端口, ss -l或 --listening $ ss -l |wc -l //147 显示数字地址,而不是尝试确定符号主机,端口或用户名(跳过DNS转换)ss -n或--numeric $ ss -n 显示符号主机,端口或用户名,而不是数字表示。Netstat默认执行此操作。ss -r或--resolve $ ss -r 显示进程ID(PID)和每个套接字所属程序的名称。 $ ss -p 包括与网络计时器相关的信息。ss -o或--options $ ss -o 显示更高级别的细节。ss -e或--extended $ ss -e Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp ESTAB 0 0 192.168.31.177:34970 89.42.31.211:polestar uid:1001 ino:3316553 sk:750 tcp ESTAB 0 0 127.0.0.1:59570 127.0.0.1:socks timer:(keepalive,38sec,0) uid:1001 ino:3335889 sk:76a 3.2 过滤 3.2.1 状态过滤$ ss state syn-recv 有如下选项可用,后面的数字是本机当前按状态查询的行数 |wc -l syn-sent 发送同步信号 syn-recv 接收同步信号 established 建立连接 fin-wait-{1,2} 等待 完成 2 time-wait 等待时间 2 closed 关闭 111 Close-wait 等待关闭 2 Last-ack 最后确认 listening 坚听 32 closing 关闭 1 all : 所有以上10种状态 connected : 除了 listening and closed 的剩所有状态(8种状态) synchronized :所有 connected 除了 syn-sent (7种状态) bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.(2种状态) big : 和bucket相反.(8种状态)
$ ss state all |wc -l 1036 $ ss state connected |wc -l 889 $ ss state synchronized |wc -l 904 $ ss state bucket |wc -l 18 $ ss state big |wc -l 1023 $ ss state listening |wc -l 34 3.2.2 通过family过滤{inet|inet6|link|unix|netlink|vsock|tipc|help} $ ss -f inet $ ss -f inet |wc -l 33 $ ss -f link |wc -l 6 $ ss -f unix |wc -l 851 $ ss -f netlink |wc -l 62 $ ss -f vsock |wc -l 3.2.3 使用地址和端口过滤可以通过 dst/src/dport/sprot 语法来过滤连接的来源和目标,来源端口和目标端口。 匹配本地地址和端口号 $ ss src 192.168.31.177 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp ESTAB 0 0 192.168.31.177:60412 89.42.31.211:polestar tcp ESTAB 0 0 192.168.31.177:51972 58.250.136.56:http-alt tcp LAST-ACK 0 1 192.168.31.177:57926 220.194.95.148:https 匹配远程地址和端口号 $ ss dst 89.42.31.211 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp ESTAB 0 0 192.168.31.177:60476 89.42.31.211:polestar tcp ESTAB 0 0 192.168.31.177:60452 89.42.31.211:polestar $ ss dst 192.168.31.113:http $ ss dst 192.168.31.113:80 端口过滤 $ ss dport OP PORT $ ss sport OP PORT 操作符OP 可以代表以下任意一个: = ge 大于或等于某个端口号 == eq 等于某个端口号 != ne 不等于某个端口号 > gt 大于某个端口号 < lt 小于某个端口号 $ ss -tunl sport lt 50 $ ss -tunl sport \< 50 3.3 常用组合查看主机监听的端口,本地IP地址及tcp数字端口号(t:tcp; n:数字显示;l监听) $ ss -tnl 显示名称,比如上面的127.0.0.1:53显示为tigger:domain; 端口22显示为ssh等。 $ ss -tlr $ ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.1:1080 0.0.0.0:* LISTEN 0 5 0.0.0.0:8999 0.0.0.0:* LISTEN 0 5 [::]:8999 [::]:* $ ss -trl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 localhost:socks 0.0.0.0:* LISTEN 0 5 0.0.0.0:bctp 0.0.0.0:* LISTEN 0 5 [::]:bctp [::]:* 加上p,显示pid $ ss -tlrp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 localhost:socks 0.0.0.0:* users:(("sslocal",pid=1123,fd=3)) LISTEN 0 5 0.0.0.0:bctp 0.0.0.0:* users:(("qbittorrent",pid=618,fd=29)) LISTEN 0 5 [::]:bctp [::]:* users:(("qbittorrent",pid=618,fd=28)) 所有的tcp连接 ss -tan State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.1:1080 0.0.0.0:* LISTEN 0 5 0.0.0.0:8999 0.0.0.0:* TIME-WAIT 0 0 127.0.0.1:1080 127.0.0.1:32874 TIME-WAIT 0 0 127.0.0.1:1080 127.0.0.1:32890 ESTAB 0 0 127.0.0.1:1080 127.0.0.1:32910 ESTAB 0 0 192.168.31.177:37342 89.42.31.211:1060 ESTAB 0 0 127.0.0.1:32898 127.0.0.1:1080 CLOSE-WAIT 0 0 192.168.31.177:57108 58.250.136.56:8080 ESTAB 0 0 127.0.0.1:1080 127.0.0.1:32894 ESTAB 0 0 192.168.31.177:37330 89.42.31.211:1060 ESTAB 0 0 127.0.0.1:1080 127.0.0.1:32902 ESTAB 0 0 127.0.0.1:32894 127.0.0.1:1080 ESTAB 0 0 192.168.31.177:37334 89.42.31.211:1060 ESTAB 0 0 127.0.0.1:32906 127.0.0.1:1080 ESTAB 0 0 127.0.0.1:32910 127.0.0.1:1080 ESTAB 0 0 127.0.0.1:1080 127.0.0.1:32898 ESTAB 0 0 192.168.31.177:49443 60.227.167.98:24932 ESTAB 0 0 192.168.31.177:37346 89.42.31.211:1060 ESTAB 0 0 127.0.0.1:1080 127.0.0.1:32906 ESTAB 0 0 192.168.31.177:37338 89.42.31.211:1060 ESTAB 0 0 127.0.0.1:32902 127.0.0.1:1080 LISTEN 0 5 [::]:8999 [::]:* 查看所有tcp,udp,数字显示,显示pid $ ss -tuanp 查看所有tcp,udp,名称显示,显示pid $ ss -tuarp
其他命令: 'nc' means 'netcat', not 'netconsole'. Install gnu-netcat and try again. https://wiki.archlinux.org/index.php/Netconsole https://wiki.archlinux.org/index.php/Network_tools#Netcat https://en.wikipedia.org/wiki/Netcat https://www.archlinux.org/packages/?name=socat
|
CopyRight 2018-2019 实验室设备网 版权所有 |