cURL socks5 代理:“来自服务器的空回复”

Ada*_*tan 3 proxy curl socks

我正在使用 Chrome、FoxyProxy 访问 http 资源,没有任何问题。代理socks5在标准端口中定义1080

我尝试使用 cURL 访问相同的资源(出于隐私原因更改了实际 URL):

$ curl -vvv -socks5 SOCKS_SERVER:1080 -X GET "THE_URL_FROM_BROWSER"
Run Code Online (Sandbox Code Playgroud)

并得到:

* 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...
Run Code Online (Sandbox Code Playgroud)

永远不会得到回应。

知道为什么 cURL 无法访问 FoxyProxy 访问的相同资源吗?

Sté*_*las 5

我得到相同的结果,并查看 strace 输出,它尝试直接连接到 URL_HOST。

但是,如果我使用

curl -x socks5://SOCKS_SERVER:1080 "THE_URL_FROM_BROWSER"
Run Code Online (Sandbox Code Playgroud)

它确实按预期工作(使用 socks4a 或 socks5h 让代理解析主机名,如果支持)