1

环境

  • macOS 大苏尔 11.0.1 (20B29)
    • 系统固件版本:1554.50.3.0.0(iBridge:18.16.12561.0.0,0)
  • MacBook Pro(15 英寸,2019 年) ( MacBookPro15,1)
  • 使用Proxifier(编辑:因此解决。见下面的答案)
$ uname -a
Darwin MacBook-Pro.local 20.1.0 Darwin Kernel Version 20.1.0: Sat Oct 31 00:07:11 PDT 2020; root:xnu-7195.50.7~2/RELEASE_X86_64 x86_64

问题

当尝试侦听任何 TCP 端口(尝试过的 TCP 端口,如1, 80, 5555, 10000, 60000)时,系统会抱怨

Protocol wrong type for socket

具体来说,使用netcat

$ nc -v -l 5555
nc: listen: Protocol wrong type for socket

并使用 Go 代码 ( go version: go version go1.13.7 darwin/amd64):

package main

import (
    "net"
)

func main() {
    _, err := net.Listen("tcp", ":80")
    if err != nil {
        panic(err)
    }
}
$ go run main.go
panic: listen tcp :80: listen: protocol wrong type for socket

任何帮助都感激不尽!我现在无法在我的 Mac 上进行任何开发 :(

4

3 回答 3

3

嗯,好吧,这很尴尬......原来这一切都是因为我正在使用Proxifier。退出应用程序解决了这个问题。

我会把这个留给任何陷入这个哈哈的人。:D

更新:Proxifier 似乎意识到了这个问题(见这里)。原来是“网络扩展 API 中的一个错误”,Apple 自 9 月以来一直没有修复它......

Proxifier ( ref )提出的解决方法

  • 在 Proxifier 启动之前启动受影响的应用程序
  • 或者将套接字绑定到127.0.0.1,而不是0.0.0.0
于 2020-11-13T14:58:04.567 回答
2

Apple 在 Big Sur 11.1 beta 中似乎已经解决了这个问题。该错误会影响所有使用 NETransparentProxyProvider 的应用程序。

https://developer.apple.com/forums/thread/661610

这不是 Proxifier 的错。

于 2020-11-19T17:18:41.697 回答
0

但这是一个代理错误,因为它应该单独保留直接连接 - 它没有。

于 2020-11-18T12:34:23.220 回答