Chrome有一个非常棒的功能,允许您从其他浏览器或窗口打开开发工具。它通过使用此标志启动chrome来工作:
--remote-debugging-port=9222
然后,您可以从其他窗口/浏览器转到http://localhost:9222并为Chrome中的任何正在运行的标签打开开发工具。出于安全考虑,Chrome不允许通过IP访问其他计算机,例如http://192.168.1.2:9222。
但是有一个额外的标志表明它打开了这个功能,这就是Chrome必须要说的:
--remote-debugging-address
使用给定的地址而不是默认的环回来接受 远程调试连接。应该和。一起使用 --remote调试端口。请注意,远程调试协议不执行任何身份验证,因此将其暴露得过于广泛 安全风险。
要么它不起作用,要么我不知道如何格式化它。我尝试过以下方法:
--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
目标机器Mac
答案 0 :(得分:5)
事实证明,选项“--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.
在我的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
在另一个shell中,你可以看到,这个地址用于侦听套接字:
netstat -a -n | grep 9222
tcp4 0 0 192.168.1.20.9222 *.* LISTEN
如果没有“--headless”,输出将如下所示:
tcp4 0 0 127.0.0.1.9222 *.* LISTEN
迈克尔
答案 1 :(得分:0)
尝试在目标计算机上创建HTTP代理。
httpProxy
.createServer({
target: wsurl,
ws: true,
localAddress: host
})
.listen(port);
为我工作。
答案 2 :(得分:0)
--remote-debugging-address
在语义上与 chromedriver 的 --whitelisted-ips
远程调试地址必须指定要绑定的地址。所以你想要的是你机器的 IP 地址,而不是你将要连接的地址。尝试使用 --remote-debugging-address=0.0.0.0