Windows 子系统 Linux 上的 SSH 中出现什么错误?setsockopt IPV6_TCLASS 16:操作不允许

Windows 子系统 Linux 上的 SSH 中出现什么错误?setsockopt IPV6_TCLASS 16:操作不允许

我正在使用适用于 Linux 的 Windows 子系统。当我使用 SSH 登录到我的家庭服务器时,我首先收到以下错误

setsockopt IPV6_TCLASS 16: Operation not permitted:

然后一切都按预期进行:

Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-77-generic x86_64)
etc

据我所知,setsockopt 是一个...东西(它不是一个可运行的命令),用于更改套接字选项,但我不知道是谁或为什么这样做。

我最感兴趣的是这个错误是什么以及为什么会出现这个错误,而且由于一切仍然正常,所以我对如何修复它不太感兴趣(除非它是一件非常可怕的事情),不过知道这一点也很好。

值得一提的是,这是一台新安装的服务器,我正在使用 SSH 密钥。WSL Ubuntu 版本:16.04.2 LTS。Windows 版本:1703,内部版本号:15063.296。

答案1

setsockopt 是 Linux syscall- 从用户空间应用程序发送到 Linux 内核的命令。setsockopt 是一个非常通用的命令,用于在所有类型的套接字上设置各种选项。在您的情况下,它很可能是用于解析名称 (DNS) 的 udp 连接的描述符或到您的家庭服务器 (SSH) 的 tcp 连接的描述符。

IPV6_TCLASS 用于设置 IPV6 流量类别,其失败的原因是 Windows 或 WSL 不支持该操作,或者需要您没有的特殊权限(不允许操作文本来自 ENOPERM 错误的标准库,尽管它与权限有关,但 WSL 出于其他原因返回它以保持应用程序兼容性并非不可能。

您可以放心地忽略此错误,它意味着某些网络连接可能没有使用应用程序所需的流量类别,但这不太可能给您带来任何问题。

如果您想进一步了解 WSL 的内部工作原理,可以观看一系列精彩的视频,并附带博客文章,涵盖了 WSL 的各个方面(向下滚动博客文章查看视频):

  1. 适用于 Linux 的 Windows 子系统:架构概述
  2. 适用于 Linux 的 Windows 子系统:进程架构
  3. 适用于 Linux 的 Windows 子系统:WSL 系统调用
  4. 适用于 Linux 的 Windows 子系统:WSL 文件系统支持
  5. Windows 和 Ubuntu 互操作性
  6. WSL 网络

相关内容