Могу ли я использовать http туннель для проверки связи или трассировки маршрута через прокси с брандмауэром? - PullRequest
11 голосов
/ 05 февраля 2011

Я не знаю, существует ли способ проверить связь с целью за пределами моего прокси-сервера локальной сети, который принимает только запросы Http через прокси-сервер squid ... Я где-то читал, что один из способов решения такой проблемы - использовать http-туннель так что прокси все еще видит запрос как запрос Http. Можно ли использовать это для пинга, скажем, www.google.com, который в противном случае выдает следующую ошибку, поскольку брандмауэр отклоняет запрос:

$ ping www.google.com
ping: unknown host www.google.com

Если так, как это делается ...?

Я установил httptunnel. Любая помощь в его использовании будет высоко оценена.

Ответы [ 2 ]

10 голосов
/ 05 февраля 2011

Нет.Ping и traceroute используют сетевые протоколы нижнего уровня (в частности, ICMP и / или UDP, которые являются протоколами уровня 4) и не будут работать через туннель HTTP (уровень 7).В любом случае, даже если бы вы могли убедить прокси-сервер HTTP открыть для вас необработанный сеанс TCP (как работает некоторое туннелирование HTTP), вы не получили бы необходимые пакеты для подтверждения доступности хоста.(Эхо-ответ ICMP в случае ping или ICMP-пакетов с истекшим сроком действия в случае traceroute)

Чтобы проверить подключение в этой ситуации, я думаю, что лучшее, что вы можете сделать, этоHTTP "пинг".(Попробуйте установить HTTP-соединение с удаленным хостом и посмотрите, работает ли оно.) Например, вы можете сделать что-то вроде:

$ http_proxy=http://webproxy.example.com:3128 \
> curl -I http://google.com/ > /dev/null 2>&1 \
> && echo success || echo failure

Если у вас установлено curl, это выдает «success»если сайт google.com доступен через ваш прокси-сервер, а если нет - "сбой".

0 голосов
/ 05 февраля 2011

Это не совсем то, что вы искали, но если вы можете получить доступ к внешнему ssh-серверу, вы можете запустить его через него, и результаты будут отражать время проверки связи с ssh-сервером:

$ ssh username@server 'ping -c 1 google.com' 
PING google.com (72.14.204.147) 56(84) bytes of data.
64 bytes from iad04s01-in-f147.1e100.net (72.14.204.147): icmp_seq=1 ttl=57 time=2.64 ms

--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.640/2.640/2.640/0.000 ms 
...