Я могу получить доступ к веб-странице, просто нажав на мой веб-сервер следующим образом:
$ echo "GET /sample" | nc web-server 80
This is contents of /sample...
$
Теперь я хотел бы, чтобы netcat проходил через HTTP-прокси Squid (прослушивая порт 3128), так же, как я могу настроить свой браузер Firefox через его настройки прокси-сервера и заставить его работать через HTTP-прокси.
Я попробовал следующее, но это не сработало:
$ echo "GET /sample" | nc -x squid-proxy:3128 web-server 80
<Seemed to be blocked FOREVER on input, so I killed it.>
<Ctrl-C>
$
Примечание: я использую RHEL 5.3 версию netcat, которая имеет следующие параметры:
$ 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]]
Выдержка из справочной страницы 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
Теперь, поскольку у меня нет сценария использования ssh / SSL, я не уверен, как использовать параметры -x
/ -X
или даже использовать их вообще!
Если есть несколько способов достижения вышеуказанной цели (а именно маршрутизация трафика netcat через HTTP-прокси), я был бы очень признателен, если бы вы могли поделиться ими всеми.
Спасибо заранее.
0.1
чтобы скрыть свое невежество.:)
nc
Firefox немного проясняет ситуацию?nc squid-proxy 3128
следоватьGET http://webserver/sample HTTP/1.0
, но получил HTTP / 1.0 403 Forbidden (Ошибка доступа запрещена).:)
вероятно, можете использоватьtcpdump
илиwireshark
коснуться своего собственногоCONNECT
соединения и получить представление ...Посмотрите на socat: http://www.dest-unreach.org/socat/doc/README
источник
echo "GET /sample HTTP/1.0" | socat PROXY:squid-proxy:web-server:80,proxyport=3128 STDIN
, но получил эту ошибку:2012/05/17 06:56:23 socat[3135] E CONNECT web-server:80: Forbidden
. Теперь, чтобы посмотреть, правильно ли я понял этот инструмент, я в следующий раз попробовал базовое использование без прокси:,echo "GET /sample HTTP/1.0" | socat TCP4:web-server:80 STDIN
но ответа не получил! Итак, очевидно, я что-то здесь упускаю в использовании socat. Буду признателен, если вы укажете на мою ошибку.STDIO
(или,-
) вместоSTDIN
. Но прокси-версия все еще выдает мне ту же ошибку.echo "GET http://web-server/sample" | socat - TCP:squid-proxy:3128
и это сработало. Не могли бы вы подтвердить, что именно так я и должен использоватьsocat
(вместоPROXY:...
спецификации адреса)?