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

Luk*_*uge 8 debugging google-chrome remote-debugging remote-access chromium

可以运行Chrome以支持远程调试,方法是通过命令行启动它,例如chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo.这通常用于在桌面设备上使用浏览器在Android或iO上进行调试,但我想调试在桌面PC上运行的chrome.从同一台机器上的"客户端浏览器"可以调用localhost:9222并查看服务器浏览器,调用localhost:9222/json将导致在"服务器浏览器"中打开选项卡的json表示.这很好用.

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

编辑我发现有一些使用forward tcp来调试移动设备,但似乎没有这样的转换为chrome.

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

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

Mat*_*yas 8

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

Linux的

开始使用chrome之后

chrome --remote-debugging-port=9222
Run Code Online (Sandbox Code Playgroud)

转发端口

ssh -L 0.0.0.0:9223:localhost:9222 localhost -N
Run Code Online (Sandbox Code Playgroud)

这样,您可以使用Chrome浏览器从端口9223上的外部设备访问调试接口.

视窗

正如在这个答案中看到的,在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
Run Code Online (Sandbox Code Playgroud)

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

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


maa*_*aaw 6

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

  • `remote-debugging-address` 仅适用于无头模式。非常不幸,因为我想使用此功能的唯一原因是看看测试在我的本地计算机上做了什么。 (3认同)