我有一个虚拟的 virtualbox VM guest,我在其中运行 python Web 服务器只是为了了解网络
> python -m SimpleHTTPServer 4566
现在我想从我的主机连接到它
我试图理解为什么如果我做一个 ssh 隧道
> ssh -L 4566:127.0.0.1:4566 root@localhost
然后从我运行的主机上curl -v http://localhost:4566
得到正确的响应(对我来说有意义),但是如果我终止隧道,然后在 virtualbox 中配置端口转发,将主机中的端口 4566 转发到来宾中的端口 4566,并尝试从主机现在无法建立连接
在这种情况下,端口转发与 ssh 隧道有何不同?
我以为这是因为我的网络服务器绑定到地址 127.0.0.1 但实际上它绑定到 0.0.0.0
> netstat -ln | grep 4566
tcp 0 0 0.0.0.0:4566 0.0.0.0:* LISTEN
答案1
我没想到给定的 ssh-tunnel 和curl 会实际连接到虚拟机中的服务器。
也许您不小心让 SimpleHTTPServer 在主机上运行,而不是(或另外)在虚拟机上运行?