Answers:
在@
可能表明在召开的插座abstract namespace
,其不属于文件系统中的文件。
从报价Linux的编程接口由迈克尔·凯里斯克:
57.6 Linux抽象套接字命名空间
所谓的抽象名称空间是一种特定于Linux的功能,它使我们能够将UNIX域套接字绑定到一个名称,而无需在文件系统中创建该名称。这提供了一些潜在的优势:
- 我们无需担心与文件系统中现有名称可能发生冲突。
- 使用完套接字后,不必取消链接套接字路径名的操作。关闭套接字后,抽象名称将自动删除。
- 我们不需要为套接字创建文件系统路径名。在chroot环境中,或者如果我们没有文件系统的写访问权,这可能很有用。
要创建抽象绑定,我们将sun_path字段的第一个字节指定 为空字节(\ 0)。[...]
显示引线null byte
以表示这种类型的插座可能很困难,因此这可能是引线@
符号的原因。
按照 man 7 unix
- abstract:抽象套接字地址的特征在于sun_path [0]是一个空字节(
\0
)。sun_path中的所有剩余字节均定义套接字的“名称”。(名称中的空字节没有特殊意义。)该名称与文件系统路径名没有任何关系。该名称空间中套接字的地址由sun_path中的其余字节给出。由getsockname(2),getpeername(2)和accept(2)返回抽象套接字的地址时,其长度为sizeof(struct sockaddr_un),而sun_path包含抽象名称。抽象套接字名称空间是不可移植的Linux扩展。
看起来这些是“抽象的”-因此文件系统上没有实际路径
ss
程序还显示了套接字端点,例如“ @ / tmp / .X11-unix / X0”