Google chrome Chrome远程调试不';我不能和IP一起工作

Google chrome Chrome远程调试不';我不能和IP一起工作,google-chrome,remote-debugging,google-chrome-devtools,Google Chrome,Remote Debugging,Google Chrome Devtools,我正在尝试使用chrome中的远程调试选项远程调试chrome实例: chrome.exe --remote-debugging-port=1337 如谷歌页面所述: 问题是,当我尝试使用IP访问它时,它不起作用,而使用localhost:1337测试它却起作用 有什么想法吗?我认为Chrome不接受本地主机之外的连接(出于安全原因)。 我建议您必须在Chrome所在的主机上构建小型代理。您可以设置一个SSH隧道,以便远程调试。在源计算机上执行: ssh -L 0.0.0.0:9223:loc

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

chrome.exe --remote-debugging-port=1337
如谷歌页面所述:

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


有什么想法吗?

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

您可以设置一个SSH隧道,以便远程调试。在源计算机上执行:

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

然后在另一台机器上,通过Chrome浏览器访问:9223

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

chromium --remote-debugging-port=1337
然后,您可以使用socat创建一个隧道

socat tcp-listen:5656,fork tcp:localhost:1337
完成此操作后,任何人都可以访问http://:5656/并立即使用调试器

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

  • 启动无头服务器

    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 
    

  • 在Windows8上运行Chrome远程调试主机时,以下内容对我起到了作用

  • 将入站规则添加到Windows防火墙
    • 搜索“Windows防火墙”并选择“Windows防火墙”结果
    • 在“Windows防火墙”控制面板窗口的左侧,单击“高级设置”。这将打开“具有高级安全性的Windows防火墙”
    • 在左侧的树状图中,单击“入站规则”
    • 在最右侧,单击“新建规则…”
    • 选择“端口”(单击下一步)
    • 选择TCP并将“特定本地端口”设置为
      9222
      (单击下一步)
    • 选择“允许连接”(单击下一步)
    • 选择配置文件访问(域、私有、公共)以满足您的需要(单击下一步)
    • 给它起一个类似于Chrome远程调试(9222)(单击Finish)的名字
  • 如下:
  • 在Windows主机上运行Chrome:

    chrome.exe --remote-debugging-port=9222
    
    在Windows主机上设置端口转发:

    chrome.exe --remote-debugging-port=9222
    
    打开一个
    cmd
    窗口。您必须“以管理员身份运行”

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

    netsh
    interface
    portproxy
    add v4tov4 listenport=9222 connectaddress=127.0.0.1
    

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

    最近的Chrome版本支持命令行开关--“远程调试地址”,因此不再需要上面列出的解决方法

    以下是描述:
    “使用给定的地址而不是默认的环回来接受远程调试连接。应与--remote debugging port一起使用。请注意,远程调试协议不执行任何身份验证,因此将其暴露得太广可能会带来安全风险。”

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

    外部_端口=1338
    CHROME_DEBUG_PORT=1337#这是用--remote DEBUG PORT指定的端口
    nc-l-p${EXTERNAL_PORT}-c“nc 127.0.0.1${CHROME_DEBUG_PORT}”
    

    windows上的端口是否打开?否则,您必须为该端口添加windows防火墙规则!因为它们是为移动设备创建的,您可以从桌面而不是智能电话调试这些设备,所以建议使用什么资源来创建代理?我想在大多数情况下,这是一件非常麻烦的事情,但在过去的几个月里,我已经想了好几次了。对不起,克里斯,我这里没有推荐信。我从头开始为自己编写Java,您可能也可以。我知道一些风格的“nc”(netcat)实用程序已经支持代理(而不是openbsd)。我可以推荐Charles Web调试代理。已解决:有关Windows上的完整解决方案,请参阅我的答案,无需安装任何第三方软件。谢谢!那个对我来说很好。我从来没有使用过netcat。谢谢,这正是我所需要的,第二次(在8月15日引用),让两个GNU/Linux框聊天进行远程调试。你也可以使用
    -R
    标志进行远程端口转发。它在最新版本中不起作用。Chrome正在返回空响应。在Windows上,这与向Windows防火墙添加入站规则配合使用效果良好,无需安装任何额外的端口转发UTIL。有关完整说明,请参阅我的答案…请注意,
    cmd.exe的是(
    ^
    )(正如我在上面添加的那样),而PowerShell的是backtick(
    `
    )。如果您尝试此操作,Chome会给出一个错误:
    主机头已指定,而不是IP地址或本地主机。
    您知道如何使用此选项吗?我尝试了各种各样的方法,但我无法远程访问调试工具。是否要求远程客户端IP?或者它是在要求一个DNS名称来解析我的机器?@Sean256你明白了吗?不管我用什么咒语,我都做不到。@MarcusStade我没有。此后,我求助于创建ssh隧道。它一定坏了。我正在Docker容器下运行Chrome,并将--remote debugging address=0.0.0.0添加到命令行,允许我从外部连接。测试的简单方法是检查版本页:说明这仅在无头模式下有效。当尝试使用除
    localhost
    之外的其他主机名访问主机时,我得到的
    主机头被指定,并且不是IP地址或localhost