远程调试-如何创建端口代理



我正试图从盒子B(Windows)访问在盒子A(Debian)上运行的远程调试端口。在框A上,我正在运行带有--remote-debugging-port=9222标志的Chrome,我可以看到它正常工作(我可以从A上的另一个浏览器访问localhost:9222)。此外,我确信盒子A和B是连接的,因为我可以从盒子B访问在盒子A上运行的:80(apache)。我现在需要做的是允许盒子B访问盒子A上的:9222。我已经研究了端口转发和iptables规则,但我没能让它工作。

编辑

机器B是Windows,所以我不知道如何在那里使用ssh,我发现了一个用于端口转发的应用程序,它似乎工作得很好。但它给了我一个错误:"收到连接,但无法连接到主机B:9222"。所以看起来9222没有对外部连接开放。A上netstat的输出给我:

root@template:/home/developer# netstat -nap | grep 9222
tcp        0      0 127.0.0.1:9222      0.0.0.0:*    LISTEN      24300/user     

我在这里找到了答案。一切都归结为:

  • 在一个控制台中打开Chrome:google-chrome --remote-debugging-port=9222
  • 并在另一个ssh -L 0.0.0.0:9223:localhost:9222 localhost -N中建立代理
  • 现在,您应该能够通过http://192.168.1.123:9223/从另一台计算机访问远程调试

浏览器将套接字绑定到本地主机地址。这就是为什么您在访问端口时遇到问题。

您可以借助ssh端口转发功能来解决这个问题。

sshuser@host-A.example.org-L 9111:127.0.0.1:9222

运行此命令后,请在主机B 上打开localhost:9111

ssh将把连接转发到主机A,并将其连接到localhost:9222

另一种解决方案是借助nc 在主机A上转发另一个端口

http://en.wikipedia.org/wiki/Netcat

最新更新