App Proxifier를 사용하여 macOS Big Sur에서 TCP 포트를들을 수 없음 : 소켓에 대한 프로토콜 잘못된 유형

Nov 13 2020

환경

  • macOS Big Sur 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에서 어떤 개발도 할 수 없습니다.

답변

3 imgg Nov 13 2020 at 14:58

Ummmm ok 이것은 당황 스럽습니다 ...이 모든 것은 Proxifier를 사용하고 있기 때문 입니다. 앱을 종료하면이 문제가 해결되었습니다.

이 롤에 빠진 사람을 위해 여기에 남겨 두겠습니다. :디

업데이트 : Proxifier는이 문제를 알고있는 것 같습니다 ( 여기 참조 ). 알고 보니가되게합니다 "네트워크 확장 API의 버그" 애플 9 월 이후 고정되지 않은 ...

Proxifier에서 제안한 해결 방법 ( ref )

  • Proxifier 시작 전에 영향을받는 응용 프로그램 시작
  • 또는 소켓 127.0.0.1을`0.0.0.0이 아닌에 바인딩하십시오.
2 Sergey Nov 19 2020 at 17:18

Big Sur 11.1 베타에서 Apple이 문제를 해결 한 것 같습니다. 이 버그는 NETransparentProxyProvider를 사용하는 모든 응용 프로그램에 영향을줍니다.

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

Proxifier의 결함이 아닙니다.

DavidKarlsen Nov 18 2020 at 12:34

그러나 직접 연결은 그대로 두어야하므로 프록시 버그입니다.