roi*_*tmi 2 linux node.js chrome-remote-debugging google-chrome-headless puppeteer
我在 AWS EC2 AMI (Linux) 上以无头模式运行 puppeteer 来进行一些网络抓取。是否可以从我的本地 Windows 设置远程跟踪它的 GUI?
我参考了这篇文章,想知道添加--remote-debugging-port=9222到我的代码然后http://localhost:9222在本地浏览器上访问是否会让我看到 GUI。是否有可能做到这一点?我不确定我在这里是否走在正确的轨道上。任何帮助,将不胜感激。
是的,这是可能的。你必须设置--remote-debugging-address参数。
使用给定地址而不是默认环回来接受远程调试连接。应与--remote-debugging-port 一起使用。请注意,远程调试协议不执行任何身份验证,因此过于广泛地暴露它可能会带来安全风险。
解释
默认情况下,Chrome 绑定到127.0.0.1(仅本地接口),它只允许来自机器本身的连接。如果您将参数设置为0.0.0.0Chrome 会侦听所有允许来自机器外部的连接的网络接口(有关更多信息,请查看stackoverflow 上的此答案)。但是,您仍然需要确保没有可能阻止连接的防火墙,但默认情况下不应该是这种情况。
这意味着,像这样启动 Chrome 将允许从另一台计算机进行调试:
chrome --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 [possible other flags]
Run Code Online (Sandbox Code Playgroud)
您现在可以访问http://IP_OF_YOUR_MACHINE:9222Chrome 的 DevTools GUI。或者,您可以使用puppeteer.connect以下命令连接到机器:
chrome --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 [possible other flags]
Run Code Online (Sandbox Code Playgroud)
安全注意事项
请记住,此端口对可以访问 Internet 的任何人公开。您可能需要考虑使用防火墙来阻止连接或使用像node-http-proxy这样的库来过滤任何连接,然后再将它们传递到您的浏览器。
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |