Linux运维:如何使用ss代替netstat命令

文章目录

[隐藏]

  • netstat 的用法
  • ss 的用法

在运维和管理Linux服务器的时候,我们最常用的就是netstat命令,我常用这个命令来查看当前服务器上有哪些进程正在侦听端口,主要用来诊断网络服务的工作状态。当然如果想代运维服务器,可以联系景安网络。

不过,最近有一次安装好一个 Ubuntu 发型版,发现默认没有netstat命令,觉得非常奇怪,自己手动安装后,发现 man pages 提示,netstat命令已经是deprecated 了,建议使用 ss 命令代替。

netstat 的用法

netstat 有许多许多参数,我一般就用一种组合,以至于后来已经想不起来为什么是这几个参数了:

netstat -npl  

得到的结果是这样的:

Active Internet connections (only servers)  Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      655/systemd-resolve  tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      890/sshd  tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      30790/cupsd  tcp        0      0 0.0.0.0:18025           0.0.0.0:*               LISTEN      890/sshd  tcp6       0      0 :::22                   :::*                    LISTEN      890/sshd  tcp6       0      0 ::1:631                 :::*                    LISTEN      30790/cupsd  tcp6       0      0 :::9090                 :::*                    LISTEN      15415/./prometheus  tcp6       0      0 :::18025                :::*                    LISTEN      890/sshd  udp        0      0 127.0.0.53:53           0.0.0.0:*                           655/systemd-resolve  udp        0      0 0.0.0.0:631             0.0.0.0:*                           30792/cups-browsed  udp        0      0 0.0.0.0:5353            0.0.0.0:*                           757/avahi-daemon: r  udp        0      0 0.0.0.0:42360           0.0.0.0:*                           757/avahi-daemon: r  udp6       0      0 :::58232                :::*                                757/avahi-daemon: r  udp6       0      0 :::5353                 :::*                                757/avahi-daemon: r  Active UNIX domain sockets (only servers)  Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path  unix  2      [ ACC ]     STREAM     LISTENING     35116    1304/gnome-session-  @/tmp/.ICE-unix/1304  unix  2      [ ACC ]     SEQPACKET  LISTENING     1448     1/init               /run/udev/control  unix  2      [ ACC ]     STREAM     LISTENING     34277    1270/systemd         /run/user/1000/systemd/private  unix  2      [ ACC ]     STREAM     LISTENING     34282    1270/systemd         /run/user/1000/gnupg/S.gpg-agent.ssh  unix  2      [ ACC ]     STREAM     LISTENING     33510    1270/systemd         /run/user/1000/gnupg/S.gpg-agent  unix  2      [ ACC ]     STREAM     LISTENING     33511    1270/systemd         /run/user/1000/pulse/native  unix  2      [ ACC ]     STREAM     LISTENING     33512    1270/systemd         /run/user/1000/gnupg/S.gpg-agent.extra  

最常用的就是这个命令组合,展示的结果有两个段落,第一个段落展示的是 TCP/UDP 协议的侦听情况,第二个段落展示的是 socks 文件的侦听情况。参数 n 的意思是展示数字格式的 IP 地址,不然会展示主机名称或者是域名,参数 p 的意思显示进程的名字(有时候显示不出来),l 的意思,是关注处于 LISTENING 状态的 socket。

通过如上命令,我们看到了系统所有打开的 socket,如果你启动一种网络服务也好,自己开发一个网络服务打开端口也好,通过这个命令都应该能看到自己打开的端口,如果看不到,应该就是没有能够正确打开端口,要好好查询是什么原因。所以这是一个很好用的调试命令。

ss 的用法

上面介绍了 netstat 的最最基本的一种用法,其他用法当然还有很多,但是先略过不表,如果想使用 ss 命令来代替 netstat 的话,我们怎样达到类似的效果呢?

ss -atlp  

这是我自己摸索的一个参数组合,目前我背诵得还不是很流利,每次还需要看一下文档:

State          Recv-Q           Send-Q                      Local Address:Port                       Peer Address:Port  LISTEN         0                128                         127.0.0.53%lo:domain                          0.0.0.0:*              users:(("systemd-resolve",psshd",pcupsd",pid=30790,fd=7))  LISTEN         0                128                               0.0.0.0:18025                 &  

原文出处:zzidc -> https://vps.zzidc.com/linux/2374.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » Linux运维:如何使用ss代替netstat命令