24

I'm trying to remote debugg a chrome instance using the remote debug option in chrome:

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

as described on google page: http://code.google.com/chrome/devtools/docs/remote-debugging.html

the problem is when i try to access it using IP it doesn't work, while testing it with localhost:1337 does work.

any idea?

4

7 回答 7

35

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

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

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

于 2012-02-13T23:03:34.227 回答
19

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

于 2011-07-26T20:57:29.180 回答
18

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

  1. 向 Windows 防火墙添加入站规则
    • 搜索“Windows 防火墙”并选择“Windows 防火墙”结果
    • 在“Windows 防火墙”控制面板窗口的左侧,单击“高级设置”。这将打开“具有高级安全性的 Windows 防火墙”。
    • 在左侧的树视图中,单击“入站规则”
    • 在最右侧,单击“新规则...”
    • 选择“端口”(单击下一步)
    • 选择 TCP 并将“特定本地端口”设置为9222(单击下一步)
    • 选择“允许连接”(单击下一步)
    • 选择适合您需要的配置文件访问权限(域、私有、公共)(单击下一步)
    • 给它起一个名字Chrome Remote Debugging (9222)(点击完成)
  2. 按照user3445047 关于端口转发的说明进行操作

在 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您应该会看到“可检查页面”列表。

于 2014-11-12T12:06:35.313 回答
16

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

于 2014-01-08T00:23:03.720 回答
9
  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 
    
于 2014-03-21T07:18:43.677 回答
8

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

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

于 2016-10-11T17:02:00.737 回答
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}"
于 2017-12-29T13:01:40.050 回答