5

我正在尝试从框 B(Windows)访问在框 A(Debian)上运行的远程调试端口。在框 A 上,我正在运行带有--remote-debugging-port=9222标志的 Chrome,我可以看到它正常工作(我可以localhost:9222从 A 上的另一个浏览器访问)。另外,我确定框 A 和 B 已连接,因为我可以:80从框 B 访问在框 A 上运行的 (apache) 就好了。我现在需要做的是允许盒子 B 访问:9222盒子 A。我已经研究了端口转发和 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     
4

3 回答 3

8

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

  • 在一个控制台中打开 Chrome:google-chrome --remote-debugging-port=9222
  • 并在另一个中设置代理:ssh -L 0.0.0.0:9223:localhost:9222 localhost -N
  • 现在你应该可以通过另一台机器访问远程调试了http://192.168.1.123:9223/
于 2012-09-05T11:34:56.763 回答
2

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

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

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

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

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

于 2012-08-23T18:01:39.987 回答
1

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

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

于 2012-09-04T17:58:42.943 回答