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

时间:2012-08-23 08:35:30

标签: google-chrome remote-debugging google-chrome-devtools iptables portforwarding

我正在尝试从方框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,我发现app端口转发似乎工作正常。它给了我一个错误:“收到连接但无法连接到主机-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     

3 个答案:

答案 0 :(得分:8)

我找到了答案here。一切都归结为:

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

答案 1 :(得分:1)

浏览器将套接字绑定到localhost地址。这就是访问端口时遇到问题的原因。

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

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

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

ssh会将连接转发给主机A并将其连接到localhost:9222

答案 2 :(得分:1)

另一个解决方案是在nc

的帮助下转发主机A上的另一个端口

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