【问题标题】:Chrome remote debugging doesn't work with IPChrome 远程调试不适用于 IP
【发布时间】:2011-10-13 05:28:09
【问题描述】:

我正在尝试使用 chrome 中的远程调试选项远程调试 chrome 实例:

chrome.exe --remote-debugging-port=1337

如谷歌页面所述:http://code.google.com/chrome/devtools/docs/remote-debugging.html

问题是当我尝试使用 IP 访问它时它不起作用,而使用 localhost:1337 测试它确实起作用。

有什么想法吗?

【问题讨论】:

标签: google-chrome remote-debugging google-chrome-devtools


【解决方案1】:

您可以使用 netcat 创建简单的 TCP 代理:

EXTERNAL_PORT=1338
CHROME_DEBUG_PORT=1337 # This is the port specified with --remote-debugging-port

nc -l -p ${EXTERNAL_PORT} -c "nc 127.0.0.1 ${CHROME_DEBUG_PORT}"

【讨论】:

    【解决方案2】:
    1. 启动无头服务器

      chrome.exe --remote-debugging-port=9222
      
    2. 在 windows 上设置端口转发

      netsh interface portproxy add v4tov4^
          listenport=9222 listenaddress=0.0.0.0^
          connectaddress=127.0.0.1 connectport=9222 
      

    【讨论】:

    • 在 Windows 上,这与向 Windows 防火墙添加入站规则结合使用效果很好,无需安装任何额外的端口转发实用程序。有关完整说明,请参阅我的答案...
    • 请注意,line continuation character 是 (^) 对应于 cmd.exe(正如我在上面添加的),但反引号 (`) 对应于 PowerShell。
    • 如果你尝试这个,Chome 会报错:Host header is specified and is not an IP address or localhost.
    【解决方案3】:

    最近的 Chrome 版本支持命令行开关“--remote-debugging-address”,因此不再需要上面列出的解决方法。

    这里是描述: "使用给定地址而不是默认环回来接受远程调试连接。应该与 --remote-debugging-port 一起使用。注意远程调试协议不执行任何身份验证,因此暴露它过于广泛可能会带来安全风险。"

    【讨论】:

    • 你知道这个怎么用吗?我尝试了各种方法,但无法远程访问调试工具。它是否要求远程客户端IP?还是它要求一个可以解析到我的机器的 DNS 名称?
    • @Sean256 你明白了吗?无论我使用什么咒语,我都无法做到这一点..
    • @MarcusStade 我没有。从那以后,我求助于创建一个 ssh 隧道。它必须被打破。
    • 我在 Docker 容器下运行 Chrome 并将 --remote-debugging-address=0.0.0.0 添加到命令行允许我从外部连接。简单的测试方法是检查版本页面:localhost:9222/json/version
    • stackoverflow.com/questions/40538197/… 声明这只适用于无头模式。
    【解决方案4】:

    您可以设置 SSH 隧道以进行远程调试。在源机器上执行:

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

    然后在另一台机器上点Chrome浏览器到http://source-machine-ip:9223

    【讨论】:

    • 谢谢!那对我来说效果很好。我从来没有设法为此使用 netcat。
    • 谢谢,正是我需要的,第二次(8 月 15 日引用),让两个 GNU/Linux 机器聊天以进行远程调试。
    • 也可以使用-R标志进行远程端口转发
    • 它在最新版本中不起作用。 Chrome 正在返回空响应。
    【解决方案5】:

    在 Windows 8 上运行 Chrome 远程调试主机时,以下内容对我有用。

    1. 向 Windows 防火墙添加入站规则
      • 搜索“Windows 防火墙”并选择“Windows 防火墙”结果
      • 在“Windows 防火墙”控制面板窗口左侧,单击“高级设置”。这将打开“具有高级安全性的 Windows 防火墙”。
      • 在左侧的树形视图中,点击“入站规则”
      • 在最右侧,点击“新建规则...”
      • 选择“端口”(单击下一步)
      • 选择TCP并将“特定本地端口”设置为9222(点击下一步)
      • 选择“允许连接”(单击下一步)
      • 根据您的需要选择配置文件访问权限(域、私有、公共)(单击下一步)
      • 给它起一个名字,比如Chrome Remote Debugging (9222)(点击完成)
    2. 关注user3445047's instructions on port forwarding:

    在 Windows 主机上运行 Chrome:

    chrome.exe --remote-debugging-port=9222
    

    在 Windows 主机上设置端口转发:

    打开一个cmd 窗口。您必须“以管理员身份运行”。

    在 cmd 窗口中输入以下内容:

    netsh
    interface
    portproxy
    add v4tov4 listenport=9222 connectaddress=127.0.0.1
    

    在客户端上,导航到http://THE_HOST_IP_ADDRESS:9222,您应该会看到一个“可检查页面”列表。

    【讨论】:

      【解决方案6】:

      与另一台计算机共享调试会话的最简单方法是使用socat。 例如,如果您在端口 1337 上启用了远程调试协议,使用

      chromium --remote-debugging-port=1337
      

      然后,你可以使用socat创建隧道,

      socat tcp-listen:5656,fork tcp:localhost:1337
      

      完成此操作后,任何人都可以访问http://<YOUR_IP_OR_HOSTNAME>:5656/并立即使用调试器。

      完成后,按 Ctrl + C 终止 socat,从而停止隧道。
      如果前面的代码不起作用,请检查防火墙(例如iptables)是否阻止访问。如果防火墙正常,请检查 IP 地址或主机名是否正确。要查看流量是否正确转发/隧道,请访问 http://localhost:5656/ 并验证是否有 Webkit 调试器实例正在运行。

      【讨论】:

      • 当我尝试使用除localhost 之外的其他主机名访问它时,我得到Host header is specified and is not an IP address or localhost
      • 如果您的服务器可以通过 IPV6 和 IPV4 访问,我建议使用 IP 而不是主机名。 (起初对我不起作用,因为 socat 在 IPV4 上运行,而 chrome 正在尝试 IPV6)
      【解决方案7】:

      我认为 Chrome 不接受来自本地主机外部的连接(出于安全原因)。 我建议您必须在 Chrome 所在的同一主机上构建小型代理。

      【讨论】:

      • 因为他们是为移动设备创建的,您可以从桌面而不是智能手机进行调试
      • 推荐什么资源来创建代理?我想在大多数情况下,这比它的价值更麻烦,但在过去的几个月里,我曾多次想过这个问题。
      • 对不起,克里斯,我在这里没有建议。我为自己从头开始编写 Java,您可能也可以。我知道某些“nc”(netcat)实用程序已经支持代理(不是openbsd)。
      • 我可以推荐 Charles Web 调试代理。
      • 已解决:在不安装任何第三方软件的情况下查看我在 Windows 上的完整解决方案的答案。
      猜你喜欢
      • 2019-07-19
      • 1970-01-01
      • 2014-07-02
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 2011-04-12
      • 2014-04-23
      相关资源
      最近更新 更多