Como fazer um proxy usando um script php?

Vamos dizer que tenho um vps hospedando com um ip dedicado, posso fazer um script curl php que recebe um url, busca-o, e output-lo, e fazer tudo isso como um servidor proxy, para que eu possa colocar o meu ip vps na configuração proxy do navegador.

Há alguma maneira de fazer isso?

Nota: Por favor, não me sugira um proxy baseado na web como o glype.

Obrigado.
Author: CodeOverload, 2010-08-26

5 answers

Sim, você poderia (veja a resposta de Jasper). Isso seria efetivamente fazer o seu próprio proxy baseado na web. No entanto, dado que é um VPS, sugiro usar um proxy SSH SOCKS, uma vez que será mais fácil e estará a correr através de um túnel encriptado para o VPS.
 1
Author: zebediah49, 2010-08-26 23:49:41

Usar o Apache com mod_proxy e mod_proxy_http. Ver os documentos.

Pode aceder ao proxy através dos https, cifrando efectivamente todo o seu tráfego entre o seu computador e os VPS.

 1
Author: Artefacto, 2010-08-26 23:50:14

Pode usar o 'tor proxy', aqui está o 'script':

<?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;
}

?>

Chama a função " if (tor_new_identity('127.0.0.01', '9051')) {//do stuffs here}" Mas você deve instalar o sistema tor no VPS 1st.

 1
Author: Gunner_aziz, 2012-01-09 07:42:03
Estás errado no que estás a pedir. Você pergunta sobre o script PHP, mas não gosta do Glype. Há pelo menos mais 4 desenvolvimentos proxy do PHP.
  1. Glipeproxi, o proxy PHP mais conhecido. Enrola-se.
  2. Poxy, descobri recentemente, amor. Usa os 'sockets' do cliente / servidor.
  3. Php-proxy, mas existem poucos que partilham o nome // demasiado Básico

Mas na verdade, ninguém vai permitir que você conecte o seu navegador com ele, porque você precisa implementar a embalagem tcp para a ligação. Esta é a maneira que você tem geralmente uma interface http com cURL ou socket raw direto.

Precisas de uma aplicação, não de um guião.

Eu recomendaria que o 'Squid' proxy ' do Linux (manual prático e limpo http://es.kioskea.net/faq/613-instalar-un-servidor-proxy-http-squid Eu recomendaria que você não use Windows (mesmo se eu fizer), mas o FreeProxy é incrível. (telecarregamento em http://www.softpedia.com/get/Internet/Servers/Proxy-Servers/FreeProxy.shtml)

Por outro lado, tens a VPN. É melhor e mais fácil instalar e conectar-se a uma VPN, uma rede privada protegida por SSH ao seu VPS. Isso irá contornar todo o tráfego do seu computador através de uma ligação encriptada de/para os VPS.

Você terá o IP do VPS, e conectividade" local " para o seu VPS/Desktop de ambos os lados. (exemplo, servidores web sem necessidade de portas abertas excepto a Vpn one)

 1
Author: m3nda, 2015-03-04 08:16:50

Pode Verificar este 'proxy' de PHP que usa cURL. Não é perfeito (estou no processo de fixá-lo para lidar com pedidos de PUT, POSTS de Aplicação/json, etc). O problema é que você vai precisar configurar o servidor web para reescrever todos os pedidos para o nome do arquivo deste arquivo para que você possa proxy-los corretamente.

 0
Author: Peter Lyons, 2011-06-26 14:23:50