50 votos

¿Cómo hacer ping detrás de un proxy?

Estoy utilizando un servidor proxy HTTP para conectarme a Internet.

Debido a que mis pings no están funcionando

ping www.google.com

dice Host inalcanzable

¿Cómo puedo configurar ping para utilizar el proxy HTTP?

1 votos

Sería útil saber qué configuración está utilizando. ¿Se trata de un servidor linux con squid e iptables, por ejemplo?

41voto

sherbang Puntos 2675

En general, no se puede. ping necesita una conexión de red directa a nivel IP para realizar su trabajo. Un proxy funciona en una capa superior de la red. Modelo de red TCP/IP donde no hay acceso directo al protocolo IP.

Necesitarías burlar el proxy de alguna manera (cambiar la configuración del cortafuegos, usar una VPN, ...). Si esto es posible (y está permitido) depende de la configuración de tu red, pero probablemente no sea posible.

Como solución, existen muchos servicios de ping basados en web (busca "ping basado en web"). Estos funcionan.

0 votos

Los pings basados en web no se pueden utilizar para probar la latencia de mi propia conexión, ya que se inician desde el servidor. Quizás alguna implementación de ping en java que se ejecute en el navegador.

0 votos

Mientras que el protocolo ICMP opera en la capa 3 de ISO/OSI, el protocolo ping funciona en la capa 7. Citando a mi profesor de CS, ping es un híbrido 3-7. Es muy posible que la parte de capa 7 sea capaz de manejar proxies. Esto explicaría por qué mi respuesta a esta pregunta funciona (al menos para mí).

0 votos

@the_Seppi: Interesante, nunca había oído hablar de ping siendo la capa 7. ¿Tiene algún consejo para seguir leyendo?

10voto

n30-1864n7 Puntos 39

Puedes intentar esto, pero primero tienes que instalar curl.

http_proxy=http://<proxy_username>:<proxy_password>@<your_proxy_server>:<your_proxy_port>  curl -I http://google.com/

35 votos

Esto no es PING.

4 votos

O puede utilizar curl -x 'http://<proxy_username>:<proxy_password>@<your_proxy_server‌​>:<your_proxy_port>'

2 votos

@törzsmókus: Pero es probable que una buena respuesta a la fuente de la pregunta ... para probar, si algún servidor está disponible y funcionando!

6voto

Como han señalado otros, ping no funciona a través de proxy.

Pero puede utilizar la utilidad httping por eso. Envía una petición HEAD (por defecto) a un servidor web y mide el tiempo que tarda en obtener una respuesta.

Ejemplo:

httping -x 192.68.1.12:1080 -g http://google.com

Ejemplo de salida:

  ~ httping -g http://google.com -c 3
PING google.com:80 (/):
connected to 64.233.165.113:80 (313 bytes), seq=0 time= 38.49 ms 
connected to 64.233.165.101:80 (313 bytes), seq=1 time= 66.94 ms 
connected to 64.233.165.100:80 (313 bytes), seq=2 time= 40.79 ms 
--- http://google.com/ ping statistics ---
3 connects, 3 ok, 0.00% failed, time 3162ms
round-trip min/avg/max = 38.5/48.7/66.9 ms

Dónde:

  • -x - Dirección de un servidor proxy, el puerto es opcional
  • -g - URL para enviar una solicitud a

Otras opciones útiles:

  • -5 - Utilice SOCKS5. Debe ponerse después del -x es decir

    httping -x localhost:1080 -5 -g http://google.com
  • -c - Cuántas sondas enviar antes de salir. Infinito por defecto.

  • -G - Haga una petición GET en lugar de una petición HEAD. Eso significa que también se transferirá la página/archivo completo. Tenga en cuenta que en este caso ya no está midiendo la latencia. Útil para probar sitios web reales.

Tenga en cuenta que el tiempo medido también incluye la latencia introducida por el propio servidor proxy.


La utilidad está disponible en varios repositorios para distintos sistemas operativos y distribuciones de Linux:

Ubuntu:

sudo apt install httping

Alpine:

sudo apk add httping

macOS con Homebrew:

brew install httping

Como otro ejemplo, he utilizado httping para estimar la latencia de mi conexión a la red Tor a través del proxy Tor:

httping -x localhost:9050 -5 -g http://google.com

La única opción que deseo httping tenía es la capacidad de pedir al proxy SOCKS5 la resolución de nombres de dominio, en lugar de hacerlo por sí mismo, que es una forma más segura con Tor.


Aquí tiene un enlace a la página web del autor:

https://www.vanheusden.com/httping/

0 votos

Esto no es ping. Ping funciona a bajo nivel para obtener respuestas más rápidas. Si estás usando httping, entonces como funciona con peticiones HEAD, habrá mucha pérdida de velocidad dependiendo de la capacidad del servidor para servir peticiones, PHP, Node.js lo que sea. Ejemplo: Estoy recibiendo un ping de menos de 10ms para Google DNS 8.8.8.8, pero estoy recibiendo ping de 120ms a través de httping para google.com incluso cuando el sitio web está habilitado para CDN.

0 votos

@Rehmat Esa es literalmente la tercera frase de mi respuesta. Desde ping se utiliza normalmente para averiguar si se puede llegar a un servidor específico (o, a menudo, a cualquier servidor) a través de una conexión específica, httping es un sustituto suficientemente bueno para situaciones en las que ping no servirá.

0voto

Gui Pinto Puntos 61

Siguiente : Bogdan Kondratov respuesta, he aquí una utilidad http-ping gratuita para Windows

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X