【问题标题】:Using Chromium Remote Debugging from External Device从外部设备使用 Chromium 远程调试
【发布时间】:2013-09-01 14:36:36
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 现在应该标记为正确答案。完美运行。
    • 它的工作!另一个重要的事情是,如果你得到空白的控制台页面,你可能应该在 chrome 的网站设置中允许不安全的内容(点击地址栏上的小锁图标)源 - developers.google.com/cast/docs/debugging/remote_debugger
    • 在 chrome 和 chromium 中对我不起作用(试图绕过 google-chrome 在 X 上不起作用,因为版本 77)Unbunti 18.04
    • remote-debugging-address 仅适用于无头模式。非常不幸,因为我想使用此功能的唯一原因是查看本地计算机上的测试。
    【解决方案2】:

    正如您所提到的,解决方案是转发端口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从外部设备访问调试接口。

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

    【讨论】:

    • 在 Linux 上,在 ssh 命令之后,我在控制台端得到了channel 1: open failed: connect failed: Connection refused,在远程浏览器上得到了site not found
    【解决方案3】:

    我已经成功地在 Windows 7 中使用 RInetD 轻松进行端口转发,尝试了这个,它就像一个魅力,从 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

    瞧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 2017-12-14
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 2014-01-22
      相关资源
      最近更新 更多