don*_*nut 17 ssh windows-subsystem-for-linux
我正在使用适用于 Linux 的 Windows 子系统。当我使用 SSH 登录到我的家庭服务器时,我首先收到以下错误
setsockopt IPV6_TCLASS 16: Operation not permitted:
Run Code Online (Sandbox Code Playgroud)
然后一切都按预期工作:
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-77-generic x86_64)
etc
Run Code Online (Sandbox Code Playgroud)
据我所知,setsockopt 是一个......用于更改套接字选项的东西(它不是一个可运行的命令),但我不知道是谁或为什么。
我最感兴趣的是这个错误是什么以及它为什么会弹出,并且由于一切仍然有效,对如何修复它不太感兴趣(除非它是一件可怕的大事),尽管知道这也很高兴。
FWIW 这是一个新安装的服务器,我正在使用 SSH 密钥。WSL Ubuntu 版本:16.04.2 LTS。Windows 版本:1703,内部版本号:15063.296。
Tho*_*est 16
setsockopt 是 Linux syscall- 从用户空间应用程序发送到 Linux 内核的命令。setsockopt 是一个非常通用的,用于在所有类型的套接字上设置各种选项。在您的情况下,它很可能是用于解析名称 (DNS) 的 udp 连接或与您的家庭服务器 (SSH) 的 tcp 连接的描述符。
IPV6_TCLASS 用于设置 IPV6 流量类,它失败的原因是 Windows 或 WSL 不支持该操作或需要您没有的特殊权限(不允许操作的文本来自标准库中的 ENOPERM 错误,虽然它是关于权限的,但 WSL 出于其他原因返回它以保持应用程序兼容性并非不可能)。
您可以放心地忽略此错误,这意味着某些网络连接可能没有使用应用程序所需的流量类别,无论如何这不太可能给您带来任何问题。
如果您想更多地了解 WSL 如何在幕后工作,有一个很棒的视频系列,随附的博客文章涵盖了 WSL 的各个方面(向下滚动视频的博客文章):
| 归档时间: |
|
| 查看次数: |
7973 次 |
| 最近记录: |