如何使用 php 脚本制作代理?

Posted

技术标签:

【中文标题】如何使用 php 脚本制作代理?【英文标题】:How to make a proxy using a php script? 【发布时间】:2011-04-04 13:38:20 【问题描述】:

假设我有一个带有专用 ip 的 vps 主机,我可以制作一个 curl php 脚本来接收一个 url,获取它并输出它,并将所有这些作为代理服务器,所以我可以把我的 vps ip在浏览器的代理设置中。

有什么办法吗?

注意:请不要向我推荐像 glype 这样的基于网络的代理。

谢谢

【问题讨论】:

【参考方案1】:

是的,您可以(请参阅 Jasper 的回答)。这将有效地制作您自己的基于 Web 的代理。

但是,鉴于它是 VPS,我建议使用 SSH SOCKS 代理,因为它会更容易,并且会通过通往 VPS 的加密隧道运行。

【讨论】:

正如我的回答所指出的,我没有回答这个问题,所以我删除了我的答案,在你的答案上留下了一个悬空的指针。 您可以使用 3 种类型。 1- 网络代理(网络界面),即 http 代理。 // 通常的 WEB 2- http 代理,一个程序,一个干净的 http 协议代理 // 通常的 3-socks 代理 (v4/5),一个原始套接字连接。 // 更强大、更难的 Tor 实际上是一个套接字代理,但涉及更多。更多关于我的回答。谢谢你问这个。【参考方案2】:

将 Apache 与 mod_proxymod_proxy_http 一起使用。请参阅docs。

您可以通过 https 访问代理,有效地加密您的计算机和 VPS 之间的所有流量。

【讨论】:

谢谢,如果我将 mod_proxy 添加到 htaccess,我应该在设置中放入什么端口? @David 你不能把它放在 .htaccess 中它必须在 httpd.conf 或其中包含的某个文件中。端口是任意的。 mod_proxy_http 是使用从 apache 运行到“那个服务器”的反向代理(缓存代理)。它可以是 nginx、varnish、polipo、haproxy 或许多其他。这不是创建 vnc 服务器,而是请求 apache 本身从安装在机器上或远程机器上的另一个代理查询。 (la cloudflare 风格)。这提高了安全层,并可能为所有人提供虚拟缓存数据:)【参考方案3】:

你可以使用tor代理,这里是脚本:

<?php
function tor_new_identity($tor_ip='127.0.0.1', $control_port='9051',$auth_code='saad')
$fp = fsockopen($tor_ip, $control_port, $errno, $errstr, 30);
if (!$fp) return false; //can't connect to the control port

fputs($fp, "AUTHENTICATE $auth_code\r\n");
$response = fread($fp, 1024);
list($code, $text) = explode(' ', $response, 2);
if ($code != '250') return false; //authentication failed

//send the request to for new identity
fputs($fp, "signal NEWNYM\r\n");
$response = fread($fp, 1024);
list($code, $text) = explode(' ', $response, 2);
if ($code != '250') return false; //signal failed

fclose($fp);
return true;


?>

调用函数“if (tor_new_identity('127.0.0.01', '9051')) //do stuffs here” 但是你必须在VPS 1st中安装tor系统。

【讨论】:

此脚本是 http 连接的套接字包装器。这很好,可以用来隧道到另一个袜子代理。 TOR 是一个袜子代理。我猜它不会打开浏览器来输入代理。他想在浏览器上配置代理,不是吗?【参考方案4】:

你问错了。您询问 PHP 脚本,但不喜欢 Glype。 PHP的代理开发至少还有4个。

    GlypeProxy,最著名的 PHP 代理。卷曲。 Poxy,我最近发现了它,亲爱的。使用客户端/服务器套接字。 php-proxy,但很少有同名的 // 太基础了

但事实上,没有人会让你用它连接你的浏览器,因为你需要为连接实现 tcp 包装器。这是您通常使用 cURL 或直接原始套接字获得 http 接口的方式。

您需要一个 SO 应用,而不是脚本。

我会向您推荐 Linux 的 Squid 代理(方便且干净的手册 http://es.kioskea.net/faq/613-instalar-un-servidor-proxy-http-squid) 我建议你不要使用 Windows(即使我这样做了),但 FreeProxy 很棒。 (在http://www.softpedia.com/get/Internet/Servers/Proxy-Servers/FreeProxy.shtml下载)

另一方面,您获得了 ***。 安装和连接到 *** 会更好、更容易,这是一个连接到您的 VPS 的受 SSH 保护的私有网络。这将通过与 VPS 的加密连接绕过来自您计算机的所有流量。

您将拥有 VPS 的 IP,以及从两侧到您的 VPS/桌面的“本地”连接。 (例如,除了 *** 之外不需要开放端口的 Web 服务器)

【讨论】:

【参考方案5】:

您可以查看this PHP proxy that uses cURL。它并不完美(我正在修复它以处理 PUT 请求、应用程序/json POSTS 等)。问题是您需要配置 Web 服务器以将所有请求重写为此文件的文件名,以便您可以正确代理它们。

【讨论】:

以上是关于如何使用 php 脚本制作代理?的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中从文本创建图像 - 如何制作多行?

如何使用 jQuery 的 $.ajax() 函数来运行 php 脚本? [复制]

如何在html页面上制作常量脚本

如何从 PHP 快速制作多个略有不同的插入

如何从 PHP 在 mySQL 中插入/创建存储过程?

如何使用 socks5 代理制作 docker-compose 拉图像?