Posso acessar uma página da Web muito bem, acessando diretamente meu servidor da Web da seguinte maneira:
$ echo "GET /sample" | nc web-server 80
This is contents of /sample...
$
Agora, eu gostaria que o netcat fosse por um proxy HTTP do Squid (escutando na porta 3128), assim como eu posso configurar meu navegador Firefox por meio de suas preferências de proxy e fazê-lo por um proxy HTTP.
Eu tentei o seguinte, mas não funcionou:
$ echo "GET /sample" | nc -x squid-proxy:3128 web-server 80
<Seemed to be blocked FOREVER on input, so I killed it.>
<Ctrl-C>
$
Nota: Estou usando a versão RHEL 5.3 do netcat que possui as seguintes opções:
$ nc --help
nc: invalid option -- -
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]
Trecho da página de manual de nc
:
EXAMPLES
<snip>
Connect to port 42 of host.example.com via an HTTP proxy at 10.2.3.4, port 8080.
This example could also be used by ssh(1); see the ProxyCommand directive in
ssh_config(5) for more information.
$ nc -x10.2.3.4:8080 -Xconnect host.example.com 42
Agora, como o meu não é um caso de usuário ssh / SSL, não sei como usar as opções -x
/ -X
, ou mesmo se devo usá-las!
Se houver mais de uma maneira de atingir o objetivo acima (ou seja, rotear o tráfego netcat por meio de um proxy HTTP), agradeceria muito se você pudesse compartilhar todos eles.
Muito obrigado antecipadamente.
0.1
para mascarar minha ignorância.:)
nc
Firefox esclarece um pouco as coisas?nc squid-proxy 3128
seguirGET http://webserver/sample HTTP/1.0
, mas recebi um HTTP / 1.0 403 Proibido (erro de acesso negado).:)
Você provavelmente pode usartcpdump
ouwireshark
para tocar suas própriasCONNECT
percepções de conexão e ganho ...Dê uma olhada no socat: http://www.dest-unreach.org/socat/doc/README
fonte
echo "GET /sample HTTP/1.0" | socat PROXY:squid-proxy:web-server:80,proxyport=3128 STDIN
, mas tenho esse erro:2012/05/17 06:56:23 socat[3135] E CONNECT web-server:80: Forbidden
. Agora, apenas para ver se entendi bem essa ferramenta, tentei o uso básico e não proxy:,echo "GET /sample HTTP/1.0" | socat TCP4:web-server:80 STDIN
mas não obtive resposta! Então, obviamente, estou perdendo alguma coisa aqui no uso social. Agradeceria se você pudesse apontar o meu erro.STDIO
(ou,-
) em vez deSTDIN
. Mas a versão do proxy ainda está me dando o mesmo erro.echo "GET http://web-server/sample" | socat - TCP:squid-proxy:3128
e funcionou. Você confirmaria se é assim que devo usarsocat
(em vez daPROXY:...
especificação de endereço)?