Chrome远程调试不适用于IP

时间:2011-07-26 08:34:21

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

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

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

如google page:http://code.google.com/chrome/devtools/docs/remote-debugging.html

所述

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

任何想法?

7 个答案:

答案 0 :(得分:25)

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

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

然后在另一台计算机上将 Chrome 浏览器指向http://source-machine-ip 9223

答案 1 :(得分:16)

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

答案 2 :(得分:13)

与另一台计算机共享调试会话的最简单方法是使用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调试器实例。

答案 3 :(得分:9)

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

  1. 将入站规则添加到Windows防火墙
    • 搜索&#34; Windows防火墙&#34;并选择&#34; Windows防火墙&#34;结果
    • &#34; Windows防火墙&#34;的左侧控制面板窗口,单击&#34;高级设置&#34;。这将打开&#34;高级安全Windows防火墙&#34;。
    • 在左侧的树状视图中,点击&#34;入站规则&#34;
    • 在最右侧,点击&#34;新规则...&#34;
    • 选择&#34; Port&#34; (单击下一步)
    • 选择TCP并设置&#34;特定本地端口&#34;到9222(点击下一步)
    • 选择&#34;允许连接&#34; (单击下一步)
    • 选择配置文件访问权限(域名,私人,公共)以满足您的需求(单击下一步)
    • 为其命名,如Chrome Remote Debugging (9222)(点击完成)
  2. 关注user3445047's instructions on port forwarding
  3. 在Windows主机上运行Chrome:

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

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

    打开cmd窗口。您必须&#34;以管理员身份运行&#34;。

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

    netsh
    interface
    portproxy
    add v4tov4 listenport=9222 connectaddress=127.0.0.1
    

    在客户端上,导航至http://THE_HOST_IP_ADDRESS:9222,您将看到一个&#34; Inspectable Pages&#34;的列表。

答案 4 :(得分:6)

  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 
    

答案 5 :(得分:4)

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

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

答案 6 :(得分:0)

您可以使用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}"