PHP cURL over TOR 我做错了什么?

PHP cURL over TOR what am I doing wrong?

所以我正在尝试 cURL 到洋葱网站,例如:facebookcorewwwi.onion 我会有以下代码:

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($curl, CURLOPT_URL, 'http://facebookcorewwwi.onion/');
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_HTTPGET, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:9050');
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($curl);
var_dump($html);

这给出了以下输出:
布尔(假)

结果这不是我想要的,我想要实际的页面内容!
inb4:是的,我打开了 tor 浏览器

curl_error 给出以下错误:
错误:无法连接到 127.0.0.1 端口 9050:连接被拒绝

来自 php docs for curl_exec:

Returns TRUE on success or FALSE on failure. However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure.

如果 curl_exec 返回布尔值 false,则发生错误。尝试获取错误:

$html = curl_exec($curl);
if ( $html === false ) {
   echo 'Error: ' . curl_error($curl);
}

Tor 浏览器默认使用 SOCKS 端口 9150,Linux 上的 Tor 守护进程或 Windows 上的 Expert Bundle 的默认端口是 9050。

如果您更改为端口 9150,您应该能够成功地通过 Tor 进行中继。