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
그러나 직접 연결은 그대로 두어야하므로 프록시 버그입니다.