AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1725107
Accepted
MikiBelavista
MikiBelavista
Asked: 2022-06-07 20:30:00 +0800 CST2022-06-07 20:30:00 +0800 CST 2022-06-07 20:30:00 +0800 CST

什么是非联网 Unix 域套接字?

  • 772

我正在阅读Unsecured docker daemons

它说

Docker daemon creates a non-networked Unix domain socket at /var/run/docker.sock 

非联网的 Unix 域套接字表示什么?

linux sockets
  • 2 2 个回答
  • 1884 Views

2 个回答

  • Voted
  1. Best Answer
    user1686
    2022-06-07T20:53:27+08:002022-06-07T20:53:27+08:00

    它是一个套接字,其地址是文件系统路径,而不是某种形式的网络地址。例如,127.0.0.1:4567程序不会连接到 IP 地址:端口,而是“连接”到特殊文件/var/run/docker.sock.

    (然而,IP 和 Unix 套接字之间的实际 API 几乎相同——程序对这两种类型使用相同的 socket()、bind()、connect() 调用。它们只需要指定AF_UNIX(或 AF_LOCAL)而不是通常AF_INET[6]的socket 类型。这使得它们成为内部通信的一个非常常见的选择。事实上, Linux 系统上的大多数程序都以这种方式通信。)

    它是“非联网的”,因为只有本地运行的进程才能访问套接字。(您不能通过 NFS 或 SSHFS 使用它。)与可以绑定到 localhost或任何地址的“IP 域”套接字不同(例如在您链接的文章中讨论端口 2375 上的外部可访问 IP 套接字),“Unix domain" 套接字保证是本地的。

    (此外,Unix 套接字可以使用文件权限来限制对套接字的访问——例如,仅限于“docker”组的成员——并且守护进程知道每个连接客户端的 UID。最后,当然,套接字有一个正确的名称所以你不会有两个不同的程序争夺同一个端口……)

    术语“域”与 Internet 的“域名系统”无关,仅用于一般意义上的“领域”或“区域”——据我所知,“Unix 域”只是意味着“本地运行的操作系统”(而不是“所有连接到 Internet 的机器”),因为将这种机制作为套接字 API 的一部分确实最初是 Unix 功能。更好的名称是“本地套接字”,即 AF_LOCAL,但这并不适用。

    Windows 有一个非常相似的功能,称为“命名管道”,例如\\.\pipe\docker_engine. Windows 命名管道确实比 Unix 管道更像 Unix 套接字——然而,与使用套接字相比,程序仍然需要使用完全不同的 API 在 Windows 上使用命名管道(尽管 Win10 也确实有 AF_UNIX 套接字),并且仍然可以访问通过 SMB 的不安全管道。

    • 22
  2. Steffen Ullrich
    2022-06-07T20:50:26+08:002022-06-07T20:50:26+08:00

    根据上下文,这意味着无法从主机外部(即本地和外部网络)访问 docker,但“只有具有 root 权限或 Docker 组成员身份的进程 [在同一台机器上] 可以访问”

    • 4

相关问题

  • 对于 cp 或 mv,是否有等同于 cd - 的东西?

  • 以 root 身份运行 docker 容器

  • 在 Windows 上与 Docker 守护进程通信

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve