我正在尝试使用Chrome的远程调试选项来远程调试Chrome实例:
chrome.exe --remote-debugging-port=1337
如Google页面所述:http://code.google.com/chrome/devtools/docs/remote-debugging.html
问题是当我尝试使用IP访问它时,它不起作用,而在使用localhost:1337进行测试时确实有效。
有什么想法吗?
我正在尝试使用Chrome的远程调试选项来远程调试Chrome实例:
chrome.exe --remote-debugging-port=1337
如Google页面所述:http://code.google.com/chrome/devtools/docs/remote-debugging.html
问题是当我尝试使用IP访问它时,它不起作用,而在使用localhost:1337进行测试时确实有效。
有什么想法吗?
你可以设置一个SSH隧道以进行远程调试。在源机器上执行:
ssh -L 0.0.0.0:9223:localhost:9222 localhost -N
然后在另一台机器上,将Chrome浏览器指向http://source-machine-ip:9223
-R
标志进行远程端口转发。 - Dmitry Sharshakov出于安全原因,我认为Chrome不接受来自本地主机以外的连接。 我建议您在Chrome所在的同一主机上构建一个小型代理。
以下方法适用于我在 Windows 8 上运行 Chrome 远程调试主机时:
9222
(单击下一步)Chrome 远程调试(9222)
(单击完成)在 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
,您将看到一个“可检查页面”的列表。
使用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 调试器实例运行。
启动无界面服务器
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
最近的Chrome版本支持命令行开关“--remote-debugging-address”,因此上面列出的解决方法应该不再需要。
以下是描述:
"使用给定地址代替默认的环回地址,以接受远程调试连接。应与--remote-debugging-port一起使用。请注意,远程调试协议不执行任何身份验证,因此过度公开它可能会带来安全风险。"你可以使用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}"
尝试更改端口号 这对我有效。