web-dev-qa-db-ja.com

httpトンネルを使用してファイアウォール付きのプロキシを介してpingまたはtracerouteを実行できますか?

Squidプロキシを介してHttpリクエストのみを受け入れるLANプロキシの外部のターゲットにpingを実行する方法があるかどうかはわかりません...このような問題に対処する1つの方法は、httpトンネルを使用してプロキシは引き続きリクエストをHttpリクエストとして認識します。これを使用して、たとえばwww.google.comにpingを実行できますか?ファイアウォールが要求を拒否しているため、次のエラーが発生します。

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

もしそうなら、それはどのように行われますか...?

Httptunnelをインストールしました。使い方の助けをいただければ幸いです。

12
pflz

いいえ。pingとtracerouteは、下位層のネットワークプロトコル(特に、層4プロトコルであるICMPやUDP)を利用し、HTTP(層7)トンネルでは機能しません。いずれにせよ、HTTPプロキシに生のTCPセッション(一部のHTTPトンネリングの仕組み)を開くように説得できたとしても)、ホストを確認するために必要なパケットを受信しません。到達可能です(pingの場合はICMPエコー応答、tracerouteの場合は有効期限が切れたICMPパケット)

この状況で接続をテストするには、HTTP「ping」が最善の方法だと思います。 (リモートホストとのHTTP接続を確立して、それが機能するかどうかを確認してください。)たとえば、次のようなことができます。

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

curlがインストールされているとすると、プロキシ経由でgoogle.comにアクセスできる場合は「成功」、そうでない場合は「失敗」と表示されます。

10
mpontillo

探していたものとは異なりますが、外部のsshサーバーにアクセスできる場合は、それを実行できます。結果には、sshサーバーへのping時間が反映されます。

$ 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 
0
jacobe