2011-07-26 22 views
18

Estoy intentando debugg una instancia remota de cromo utilizando la opción de depuración remota en cromo:Chrome depuración remota no funciona con IP

chrome.exe --remote-debugging-port=1337 

como se describe en la página de Google: http://code.google.com/chrome/devtools/docs/remote-debugging.html

el problema es cuando intento acceder a él usando IP, no funciona, mientras lo pruebo con localhost: 1337 funciona.

alguna idea?

+1

es el puerto abierto en las ventanas? cuando no tienes que agregar a las reglas de un firewall de Windows para este puerto! – Azd325

+0

http://www.webkit.org/blog/1620/webkit-remote-debugging/ – Azd325

Respuesta

14

No creo que Chrome acepte conexiones desde fuera de localhost (por razones de seguridad). Sugiero que tengas que construir un pequeño proxy en el mismo host donde está Chrome.

+3

Esta debería ser la respuesta aceptada. –

+0

porque se crearon para dispositivos móviles que puede depurar desde su escritorio y no desde un teléfono inteligente – Azd325

+0

¿Qué recurso se recomienda para crear un proxy? Me imagino que para la mayoría de los casos esto es más problemas de lo que vale, pero lo he pensado varias veces en los últimos meses. –

22

Puede configurar un túnel SSH para depurar de forma remota. En el equipo de origen ejecuta:

ssh -L 0.0.0.0:9223:localhost:9222 localhost -N 

A continuación, en el otro punto de la máquina Chrome navegador parahttp://source-machine-ip:

+0

¡Gracias! Eso funcionó bien para mí. Nunca logré usar netcat para eso. –

+0

Gracias, justo lo que necesitaba, por segunda vez (referenciada en el 15 de agosto), para obtener dos cajas de GNU/Linux conversando para la depuración remota. – GJSmith3rd

12

La forma más sencilla de compartir la sesión de depuración con otro ordenador es con socat. Por ejemplo, si ha habilitado el protocolo de depuración remota en el puerto 1337 usando

chromium --remote-debugging-port=1337 

A continuación, puede crear un túnel utilizando socat,

socat tcp-listen:5656,fork tcp:localhost:1337 

Después de hacer esto, cualquiera puede simplemente visitar http://<YOUR_IP_OR_HOSTNAME>:5656/ e inmediatamente use el depurador.

Cuando haya terminado, pulse Ctrl +C de interrumpir socat y así detener la construcción de túneles.
Si el código anterior no funciona, verifique si el firewall (por ejemplo, iptables) está bloqueando el acceso. Si el firewall está bien, verifique si la dirección IP o el nombre de host son realmente correctos. Para ver si el tráfico se reenvía/tuneliza correctamente, visite http://localhost:5656/ y verifique que haya una instancia del depurador Webkit ejecutándose.

6
  1. iniciar el servidor sin cabeza

    chrome.exe --remote-debugging-port=9222 
    
  2. Configurar el desvío de puerto en las ventanas

    netsh interface portproxy add v4tov4^ 
        listenport=9222 listenaddress=0.0.0.0^ 
        connectaddress=127.0.0.1 connectport=9222 
    
+0

En Windows, esto junto con la adición de una Regla de entrada al Firewall de Windows funciona bien sin la necesidad de instalar ningún utilizador adicional de reenvío de puertos. Consulte mi respuesta para obtener instrucciones completas ... –

+0

Tenga en cuenta que el [carácter de continuación de línea] (https://stackoverflow.com/a/69079/712526) es ('^') para 'cmd.exe' (ya que agregado arriba), pero es backtick ('\' ') para PowerShell, en su lugar. – jpaugh

6

Los siguientes trabajó para mí cuando se ejecuta un host remoto de depuración Chrome en Windows 8

  1. Añadir una regla de entrada a Windows Firewall
    • Búsqueda de "Firewall de Windows" y seleccione la opción "Firewall de Windows" número
    • En la parte izquierda de la ventana del panel de control "Firewall de Windows", haga clic en "Configuración avanzada" .Esto abrirá "Firewall de Windows con seguridad avanzada".
    • En la vista de árbol de la izquierda, haga clic en "Reglas de entrada"
    • En el, haga clic en la extrema derecha "para nueva regla ..."
    • seleccione "Puerto" (Haga clic en Siguiente)
    • Seleccione TCP y establecer "puertos específicos locales" a 9222 (Haga clic en Siguiente)
    • escoger "Permitir la conexión" (Haga clic en Siguiente)
    • elegir el acceso a su perfil (dominio, privado, público) para satisfacer sus necesidades (Haga clic en Siguiente)
    • Dar es un nombre como Chrome Remote Debugging (9222) (haga clic en Finalizar)
  2. Seguir user3445047's instructions on port forwarding:

ejecutar Chrome en el host de Windows:

chrome.exe --remote-debugging-port=9222 

Configurar el reenvío de puertos en el host de Windows:

abrir una ventana cmd. Debes "ejecutar como administrador".

Introduzca lo siguiente en la ventana de cmd:

netsh 
interface 
portproxy 
add v4tov4 listenport=9222 connectaddress=127.0.0.1 

En el cliente, vaya a http://THE_HOST_IP_ADDRESS:9222 y se le presentará con una lista de "Páginas Inspectable".

3

Las versiones recientes de Chrome son compatibles con el modificador de la línea de comandos "--remote-debugging-address", por lo que las soluciones alternativas enumeradas anteriormente ya no deberían ser necesarias.

Aquí la descripción:. "utilizar la dirección dada en lugar del bucle de retorno por defecto para aceptar conexiones de depuración remota se deben usar juntos con --remote-depuración puertos Tenga en cuenta que el protocolo de depuración remota no funciona. cualquier Authentica-ción, así exponerlo demasiado amplia puede ser un riesgo para la seguridad "

+0

¿Sabes cómo usar esto? He intentado todo tipo de cosas y no puedo acceder a las herramientas de depuración de forma remota. ¿Está pidiendo IP a los clientes remotos? ¿O está pidiendo un nombre DNS que se resolverá en mi máquina? – Sean256

+0

@ Sean256 ¿te diste cuenta de esto? No importa qué conjuro use, no puedo hacer que esto funcione. –

+2

@MarcusStade No lo hice. Desde entonces, he recurrido a la creación de un túnel ssh. Debe estar roto. – Sean256

0

puede crear sencilla de proxy TCP con netcat:.

EXTERNAL_PORT=1338 
CHROME_DEBUG_PORT=1337 # This is the port specified with --remote-debugging-port 

nc -l -p ${EXTERNAL_PORT} -c "nc 127.0.0.1 ${CHROME_DEBUG_PORT}" 
0

ya que tenía un poco del mismo problema pero que no se encuentra una solución adecuada en SO, pero por mí mismo, lo haría l ike para enlazar aquí por lo que puede ser una ayuda para las personas quedarse atascado aquí en el futuro:

Chrome remote debugging in a seleniumgrid

Cuestiones relacionadas