设置php代理以访问受审查的网站并绕过防火墙

设置php代理以访问受审查的网站并绕过防火墙,php,curl,Php,Curl,我目前正在使用这个插件,它基本上使我的网站成为一个代理,这样用户就可以访问像这样经过审查的网站 www.mywebsite.com/proxy/www.cnn.com 这个插件工作得很好,但是当涉及到绝对链接时,插件没有正确解析它,链接仍然被阻塞。插件开发已经停止。所以我需要自己写剧本。我一直在到处搜索,阅读我能找到的教程,但没有一本特别帮助我 我知道如何使用php curl获取一个网站,并在一个空白页面上进行回复。我不知道的是如何设置代理脚本,使其像上面的示例一样工作,用户可以在其中键入

我目前正在使用这个插件,它基本上使我的网站成为一个代理,这样用户就可以访问像这样经过审查的网站

www.mywebsite.com/proxy/www.cnn.com 
这个插件工作得很好,但是当涉及到绝对链接时,插件没有正确解析它,链接仍然被阻塞。插件开发已经停止。所以我需要自己写剧本。我一直在到处搜索,阅读我能找到的教程,但没有一本特别帮助我

我知道如何使用php curl获取一个网站,并在一个空白页面上进行回复。我不知道的是如何设置代理脚本,使其像上面的示例一样工作,用户可以在其中键入

www.mywebsite.com 

/proxy.php 
然后是他们的目标网站

/www.cnn.com
目前,我已建立了以下设置:

<?php
$url = 'http://www.cnn.com';
$proxy_port = 80;
$proxy = '92.105.140.115';
$timeout = 0;
$referer = 'http://www.mydomain.com'


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);*/
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);       
curl_setopt($ch, CURLOPT_REFERER, $referer);

$data = curl_exec($ch);
curl_close($ch);
echo $data; 
?>
但这不起作用。我也不完全理解这段代码,因为我在一个示例站点上找到了它

欢迎提供任何教程的答案或链接


谢谢大家!

拥有一个功能完备的代理并不是那么简单。现在已经有很多这样的项目。试一试:


玩得开心

你不能只在页面中回显curl的抓取网站的结果,因为浏览器会将URI解释为错误的,你需要当用户点击链接时,他会转到你的代理网站,而不是原始网站,因此你不能只使用echo打印,你需要在打印给用户之前手动编辑该抓取页面中的每个链接,我有一个由php en p.listascuba.com制作的全功能代理,你不能尝试

更多信息请与我联系

92.105.140.115:80/www.cnn.com