从另一台机器进行Chrome远程调试

Sea*_*256 6 google-chrome

Chrome有一个非常棒的功能,允许您从另一个浏览器或窗口打开开发工具.它通过使用此标志启动chrome来工作:

--remote-debugging-port=9222
Run Code Online (Sandbox Code Playgroud)

然后从另一个窗口/浏览器中,您可以转到http:// localhost:9222,并为Chrome中的任何正在运行的选项卡打开开发工具.出于安全考虑,Chrome不允许通过IP访问其他计算机,例如http://192.168.1.2:9222.

但是有一个额外的标志表明它打开了这个能力,这就是Chrome必须说的:

--remote-debugging-address 
Run Code Online (Sandbox Code Playgroud)

使用给定的地址而不是默认的环回来接受远程调试连接.应与--remote-debugging-port一起使用.请注意,远程调试协议不执行任何身份验证,因此将其暴露得过于宽泛可能会带来安全风险.

要么它不工作,要么我不知道如何格式化它.我尝试过以下方法:

--remote-debugging-port=9222 --remote-debugging-address=http://192.168.1.2:9222
--remote-debugging-port=9222 --remote-debugging-address=http://192.168.1.2
--remote-debugging-port=9222 --remote-debugging-address=192.168.1.2:9222
--remote-debugging-port=9222 --remote-debugging-address=192.168.1.3 //maybe thinking its supposed to be the IP of the remote machine
Run Code Online (Sandbox Code Playgroud)

目标机器是Mac

Mic*_*her 10

事实证明,选项"--remote-debugging-address"只能用于无头模式("--headless"),并且当浏览器在docker容器中运行时用于测试,而不是用于远程调试.

"remote-debugging-address"的参数必须是使用"--remote-debugging-address"启动Chrome的机器的本地网络接口的数字ip-adress.使用任何非本地IP地址时,您将收到以下错误:

[0526/132024.480654:ERROR:socket_posix.cc(137)] bind() returned an error, errno=49: Can't assign requested address
[0526/132024.480766:ERROR:devtools_http_handler.cc(226)] Cannot start http server for devtools. Stop devtools.
Run Code Online (Sandbox Code Playgroud)

在我的Mac上,我可以使用此命令行启动Chrome Canary版本(当前的稳定版本只能与"--headless"崩溃):

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary  --remote-debugging-port=9222 --remote-debugging-address=192.168.1.20 --headless
Run Code Online (Sandbox Code Playgroud)

在另一个shell中你可以看到,这个地址用于监听套接字:

netstat -a -n | grep 9222
tcp4       0      0  192.168.1.20.9222      *.*                    LISTEN   
Run Code Online (Sandbox Code Playgroud)

如果没有"--headless",输出将如下所示:

tcp4       0      0  127.0.0.1.9222         *.*                    LISTEN
Run Code Online (Sandbox Code Playgroud)

迈克尔

  • 别人注意......如果你想在窗口模式下运行(头模式?),SSH隧道就可以完成工作了.使用--remote-debugging-port指定端口,并使用ssh将本地端口转发到主机.示例:远程计算机上的`--remote-debugging-port = 9222`和本地计算机上的`ssh -L 9222:localhost:9222 user @ host`.然后,您将连接到本地的localhost:9222以访问远程的Dev Tools. (7认同)

Dec*_*ghy 5

--remote-debugging-address在语义上与 chromedriver 不同--whitelisted-ips

远程调试地址必须指定要绑定的地址。因此,您需要的是机器的 IP 地址,而不是您要连接的地址。尝试绑定到所有接口--remote-debugging-address=0.0.0.0