![cURLocks5 프록시: "서버 응답이 비어 있습니다."](https://linux55.com/image/25765/cURLocks5%20%ED%94%84%EB%A1%9D%EC%8B%9C%3A%20%22%EC%84%9C%EB%B2%84%20%EC%9D%91%EB%8B%B5%EC%9D%B4%20%EB%B9%84%EC%96%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%22.png)
저는 Chrome, FoxyProxy를 사용하여 아무 문제 없이 http 리소스에 액세스하고 있습니다. 프록시는 socks5
표준 포트 로 정의됩니다 1080
.
cURL을 사용하여 동일한 리소스에 액세스하려고 했습니다(개인정보 보호를 위해 실제 URL이 변경됨).
$ curl -vvv -socks5 SOCKS_SERVER:1080 -X GET "THE_URL_FROM_BROWSER"
그리고 얻다:
* About to connect() to SOCKS_SERVER port 1080 (#0)
* Trying IP... connected
* Connected to SOCKS_SERVER (IP) port 1080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: SOCKS_SERVER:1080
> Accept: */*
>
* Empty reply from server
* Connection #0 to host SOCKS_SERVER left intact
* Connection #0 seems to be dead!
* Closing connection #0
* About to connect() to URL_HOST port 80 (#0)
* Trying SOME_IP...
결코 응답이 없을 것입니다.
왜 cURL이 FoxyProxy에서 액세스하는 것과 동일한 리소스에 액세스할 수 없는지 아시나요?
답변1
동일한 결과를 얻었고 strace 출력을 보면 URL_HOST에 직접 연결을 시도합니다.
하지만 내가 사용한다면
curl -x socks5://SOCKS_SERVER:1080 "THE_URL_FROM_BROWSER"
예상대로 작동합니다(지원되는 경우 프록시가 호스트 이름을 확인할 수 있도록 양말4a 또는 양말5h 사용).