可以通过在命令行中启动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)网络中使用另一台设备时,出现连接超时。是否可以通过这种方式使用远程调试?启动浏览器时是否还需要其他开关?
编辑我发现前向tcp可以用于调试移动设备,但是not seem to be such a switch for chrome确实可以使用。
编辑2 但是,这似乎是对here和here问题的一个重复,但是到目前为止,我还没有弄清那里提出的解决方案。
因此,显然这归结为将端口转发到localhost:9222。但是,至少在Windows计算机上,我对SSH隧道没有运气。在机器上还有其他转发方式吗?
最佳答案
正如您所提到的,解决方案是转发端口 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 上的外部设备访问调试界面。
还要确保没有防火墙阻止相应的端口。