从外部设备使用Chromium远程调试

时间:2013-08-29 08:48:36

标签: debugging google-chrome remote-debugging remote-access chromium

可以通过命令行启动Chrome以chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo等提示来运行Chrome以支持remote debugging。这通常使用to debug on android or iOs使用桌面设备上的浏览器,但我想调试在桌面PC上运行的chrome。从同一台机器上的“客户端浏览器”可以调用localhost:9222并查看服务器浏览器,调用localhost:9222 / json将导致在“服务器浏览器”中打开选项卡的json表示。这很好用。

然而,当我尝试通过调用[本地IP]:9222或[本地IP]:9222 / json(本地IP是服务器浏览器的IP)在同一(wifi)网络中使用其他设备时,我得到了连接超时。是否可以这样使用远程调试?启动浏览器时是否需要任何其他开关?

编辑我发现有一些使用forward tcp来调试移动设备,但确实有not seem to be such a switch for chrome

编辑2 这似乎与问题herehere有点重复但是,到目前为止,我还没有得到解决方案

所以,显然这归结为将端口转发到localhost:9222。但是,至少在Windows机器上我没有运气SSH隧道。还有其他方法可以在机器上转发吗?

3 个答案:

答案 0 :(得分:7)

正如您所提到的,解决方案是转发端口 9222 。下面是Linux和Windows的方法。

的Linux

启动chrome后
chrome --remote-debugging-port=9222

转发端口

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

通过这种方式,您可以使用 Chrome 浏览器从端口 9223 上的外部设备访问调试版界面。

this answer中所示,在Windows上(在7,8上测试),在没有第三方应用的情况下进行端到端操作的最简单方法是netsh

我创建了一个包含以下内容的批处理文件。它必须以管理员身份运行,并且之前没有打开Chrome窗口:

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

这样您就可以从端口 9222 上的外部设备访问调试接口。

确保没有防火墙阻止相应的端口。

答案 1 :(得分:4)

您可以通过添加参数来实现相同的行为 --remote-debugging-address=[YOUR_EXTERNAL_IP_ADDRESS]已报告here,除了Chrome本身之外没有任何其他软件。

答案 2 :(得分:2)

我已成功使用RInetD在Windows 7中轻松实现端口转发功能,尝试了这一功能,它就像一个魅力,从Mac / Ubuntu中的Chrome外部调试Windows浏览器中的Chrome浏览器。

您可以从以下网址下载rinetd:

http://www.boutell.com/rinetd/

解压缩文件,使用任何名称(我使用rinetd.conf)创建一个空文件,内容如下:

  

0.0.0.0 9223 127.0.0.1 9222

在Windows控制台中使用以下命令运行它:

  

rinetd.exe -c rinetd.conf

瞧!