首页 文章

Chrome远程调试不适用于IP

提问于
浏览
20

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

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

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

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

任何的想法?

7 回答

  • 9

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

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

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

  • 24

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

  • 3

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

  • 16

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

    • 将入站规则添加到Windows防火墙

    • 搜索"Windows Firewall"并选择"Windows Firewall"结果

    • 在"Windows Firewall"控制面板窗口的左侧,单击"Advanced Settings" . 这将打开"Windows Firewall with Advanced Security" .

    • 在左侧的树状视图中,单击"Inbound Rules"

    • 在最右侧,单击"New Rule..."

    • 选择"Port"(单击下一步)

    • 选择TCP并将"Specific local ports"设置为 9222 (单击下一步)

    • 选择"Allow the connection"(单击下一步)

    • 选择配置文件访问权限(域名,私人,公共)以满足您的需求(单击下一步)

    • 给它起一个像 Chrome Remote Debugging (9222) 的名字(点击完成)

    • 关注user3445047's instructions on port forwarding

    在Windows主机上运行Chrome:

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

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

    打开一个 cmd 窗口 . 你必须"Run as administrator" .

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

    netsh
    interface
    portproxy
    add v4tov4 listenport=9222 connectaddress=127.0.0.1
    

    在客户端上,导航到 http://THE_HOST_IP_ADDRESS:9222 ,您将看到"Inspectable Pages"的列表 .

  • 6
    • 启动无头服务器
    chrome.exe --remote-debugging-port=9222
    
    • 在Windows上设置端口转发
    netsh interface portproxy add v4tov4^
        listenport=9222 listenaddress=0.0.0.0^
        connectaddress=127.0.0.1 connectport=9222
    
  • 0

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

    这里描述:“使用给定的地址而不是默认的环回接受远程调试连接 . 应该与--remote-debugging-port一起使用 . 注意,远程调试协议不执行任何认证,所以将其暴露得过于宽泛可能会带来安全隐患 . “

  • 13

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

相关问题