私は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を使用)。