Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Chromium Remote Debugging from External Device

Chrome can be run to support remote debugging by starting it via the command line with a prompt such as chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo. This is often used to debug on android or iOs using a Browser on a Desktop Device but I would like to debug chrome running on a desktop PC. from a "client browser" on the same machine one can call localhost:9222 and see the server browser, calling localhost:9222/json will result in a json representation of the tabs open in the "server browser". This works just fine.

However, when I try to use another device in the same (wifi) network by calling [local IP]:9222 or [local IP]:9222/json (local IP is the IP of the server browser) I get a connection timeout. Is it possible to use remote debugging in such way? Are any other switches needed when starting the browser?

Edit I have found some use of forward tcp for the debugging of mobile devices, but there does not seem to be such a switch for chrome.

Edit 2 This seems to be a bit of a duplicate of the questions here and here however, as of yet I have not gotten the solutions presented there to work.

So, apparently this comes down to forwarding a port to localhost:9222. However, at least on windows machines I have no luck with SSH tunnels. Are there any other ways to forward on the machine?

like image 954
Lukas Ruge Avatar asked Aug 29 '13 08:08

Lukas Ruge


Video Answer


1 Answers

As you've mentioned it, the solution is to forward the port 9222. Below you find approaches for Linux and Windows.

Linux

After having started chrome with

chrome --remote-debugging-port=9222

Forward the port

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

This way you can access the debuggin interface from an external device on port 9223 using a Chrome browser.

Windows

As seen in this answer, on windows (tested on 7,8) the easiest way to do portforwarding without 3rd party apps is via netsh

I've created a batch file with the following content. It has to be ran as administrator, and with no previous chrome windows open:

netsh interface portproxy delete v4tov4 listenport=9222 listenaddress=0.0.0.0
start /b cmd /c call "\program files\google\chrome\application\chrome.exe" -remote-debugging-port=9222
timeout 5
netsh interface portproxy add v4tov4 listenport=9222 connectaddress=127.0.0.1 connectport=9222 listenaddress=0.0.0.0

This way you can access the debuggin interface from an external device on port 9222.

Make also sure that no firewall is blocking the corresponding port.

like image 126
Matyas Avatar answered Sep 27 '22 17:09

Matyas