12

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

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

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

httptunnel をインストールしました。使用方法についてのヘルプは大歓迎です。

4

2 に答える 2

12

いいえ。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 に到達できる場合は「成功」、そうでない場合は「失敗」と出力されます。

于 2011-02-04T21:59:28.997 に答える
1

探していたものとは異なりますが、外部の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 
于 2011-02-04T22:09:17.340 に答える