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

StackOverflow https://stackoverflow.com/questions/4903002

質問

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

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

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

httptunnelをインストールしました。それを使用する方法のヘルプは大歓迎です。

役に立ちましたか?

解決

いいえ。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がプロキシを通じて到達し、そうでない場合は「失敗」を通じて「成功」を印刷します。

他のヒント

それはあなたが探していたものではありませんが、あなたがアクセスして外部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 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top