可以通过命令行启动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 这似乎与问题here和here有点重复但是,到目前为止,我还没有得到解决方案
所以,显然这归结为将端口转发到localhost:9222。但是,至少在Windows机器上我没有运气SSH隧道。还有其他方法可以在机器上转发吗?
答案 0 :(得分:7)
正如您所提到的,解决方案是转发端口 9222 。下面是Linux和Windows的方法。
用
启动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
瞧!