Linux基础(43)之网络状态查看工具ss命令

Linux基础(43)之网络状态查看工具ss命令

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

ss 命令是一个网络状态查看工具,类似与前面提到的 netstat 的作用。只是当主机上存在非常多的连接时,ss 命令的速度可能是 netstat 命令的好几倍,即 ss 命令的效率更高。
ss 命令的使用格式如下:

ss [options] [ FILTER ]
    options:常用选项
        -t:tcp 协议相关;
        -u:udp 协议相关;
        -w:裸套接字相关;
        -x:unix socket 相关;
        -l:listen 状态的连接;
        -a:所有;
        -n:数字格式;
        -p:相关程序及 PID;
        -e:扩展的信息;
        -m:内存用量;
        -o:显示计时器信息;
    FILTER:用来指定过滤条件;
        [ state TCP-STATE ] [ EXPRESSION ]:
            state:指定 tcp 连接有限状态机的状态,如 established;
            EXPRESSION:
                dport = :<PORT>:指定源端口;
                sport = :<PORT>:指定目标端口;
                src <addr>:匹配本地地址;
                dst <sddr>:匹配远程地址;

TCP 的有限状态机(tcp finite state machine)指的是 TCP 的状态一定是在几个状态间转换,常见状态有如下:

  • LISTEN:监听;
  • ESTABALISHED:已建立、正在通信中的连接;
  • SYN_SENT:三次握手的第一次;
  • SYN_RECV:对方收到信息;
  • CLOSEED:断开、已关闭;

例 1:显示所有 tcp 连接。

[root@zze ~]# ss -ta

例 2:列出所有处于监听状态的连接。

[root@zze ~]# ss -ta

例 3:显示所有状态为 established 的 HTTP 连接。

[root@zze ~]# ss -o state established '( dport = :http or sport = :http )'

例 4:列举出处于 FIN-WAIT-1 状态的源端口为 80 或者 443,目标网络为 193.233.7/24 所有 tcp 套接字。

[root@zze ~]# ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/linux-base-43.html

Buy me a cup of coffee ☕.