【问题标题】:CURL won't work over CURLOPT_PROXY server issue?CURL 不能解决 CURLOPT_PROXY 服务器问题?
【发布时间】:2018-01-14 18:51:06
【问题描述】:

我正在尝试使用 Luminati.oi 代理服务来抓取 URL,但我的服务器连接到代理并使用 CURLOPT_PROXY 功能似乎存在问题。

 $curl = curl_init('http://lumtest.com/myip.json'); 
 curl_setopt($curl, CURLOPT_PROXY, 'http://example:24000');       
 curl_exec($curl);

 $result = curl_exec($curl); echo $result;

 echo 'Curl error: ' . curl_error($curl); 
 curl_close($curl);

我没有从目标 URL 得到任何响应,curl_error() 函数返回 Curl error: Failed to connect to exmaple port 24000: Connection refused 关于如何编写 Luminati.io 提供的 CURL 有几种变体,但似乎都不起作用。

如果我删除 CURLOPT_PROXY 选项并直接从我的服务器发送请求而没有代理,它工作得很好,我从目标 URL 得到正确的响应。因此,我的服务器似乎可以使用 CURL,但不能使用代理功能。

使用桌面代理管理器时,luminati.io 代理服务器的 URL 和端口似乎可以正常工作。所以代理服务似乎工作正常,目标 URL 很好,我的服务器可以毫无问题地使用 CURL,所以问题似乎与 CURLOPT_PROXY 不工作有关。 Luminati.io 的好人认为我的 Apache Linux 服务器中存在某种类型的服务器设置或防火墙,不允许发生代理连接,我在任何地方都找不到这个设置,而且 Hostgator 在被问到时似乎无用且无动于衷。

所以我希望有人可以提供一些关于 CURLOPT_PROXY 函数为什么不起作用的更深入的见解。

【问题讨论】:

    标签: php apache curl proxy proxy-server


    【解决方案1】:

    您可以要求 Hostgator 让您访问端口 22225。我认为这是 Luminati 使用的正确端口。

    您可以通过以下方式联系 Hostgator:http://support.hostgator.com/articles/open-new-ports

    【讨论】:

    • 非常感谢!这个答案非常有助于表明问题出在传出连接上。为了使其更加完美,您还可以添加关于启用传出端口的 iptables 指令(不过这很好)。结果我运行的命令是:iptables -A OUTPUT -p tcp -d zproxy.luminati.io --dport 22225 -j ACCEPT 和 service iptables restart(这是在 CentOS 上 - 后者可能与其他操作系统不同)
    • 感谢您的反馈。不幸的是,当 Hostgator 让我知道他们有政策禁止以任何方式在他们的服务器上爬行时,我放弃了这个过程。所以我无法确认这个解决方案是否有效,但是如果我将来重新访问 luminoti -- 我很乐意确认你的答案!
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2011-07-13
    • 2011-05-06
    • 2015-03-31
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多