在linux中,netstat命令告诉我们系统中活动套接字的信息.

据我所知,netstat使用/proc/net/tcp获取系统网络信息.

由于netstat人页面上说netstat已经过时,所以我们应该使用"ss".

NOTE
   This program is obsolete.  Replacement for netstat is ss.   Replacement
   for  netstat -r is ip route.  Replacement for netstat -i is ip -s link.
   Replacement for netstat -g is ip maddr.

我发现ss执行类似的功能,但它不使用

现在我很好奇ss如何获取系统网络套接字信息?

推荐答案

它使用Netlink直接从内核空间获取它们,Netlink使用classic 的sockets API.

Linux相关问答推荐

使用sed或awk映射自定义和任意函数

C++调试器如何知道如何在源代码和可执行文件之间映射行?

Ansible-删除两个注释之间的代码块(包括注释本身)

加载ELF64头文件为什么会导致分段错误?

如何在 gcc 搜索路径上防止多个版本的 Boost?

可以用openmp并行化内存分配删除吗? (c++)

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

从另一个文件中的大文件中查找行的最快方法

Linux 如何使用 PCID 的值?

使用带有 gnome-keyring 的 Git 凭证助手作为 Sudo 时出错

Stripping linux 共享库

通过写入 /dev/input/mice 来控制鼠标

将以前忽略的目录添加到 Git 存储库

如何列出附加到Linux中共享内存段的进程?

我可以在 Ubuntu 上使用 Homebrew 吗?

如何从任意 pthread_t 获取线程 ID?

使用inotify的正确方法是什么?

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

Anaconda:禁用提示更改

如何将文件夹中的文件列表发送到Linux中的txt文件