无法在 Virtual Box 中进行端口转发

无法在 Virtual Box 中进行端口转发

我使用的是 Mac OS X 10.6。我在其中安装了 Virtual Box 4.1.0。我的客户操作系统是Ubuntu 服务器11.04. 我在 Virtual Box 的端口转发中添加了一条规则 ->

"guestssh" TCP 127.0.1.1 8080 127.0.0.1 1337

在 Guest OS 中,我运行的是 nodejs 服务器。代码只是在他们的网站上找到的简单的 helloworld 代码http://nodejs.org/。简而言之,我在 1337 端口上的 127.0.0.1 上运行服务器。

现在根据我给出的规则,从主机计算机到 127.0.1.1:8080 的所有请求都应转发到客户操作系统的 127.0.0.1:1337。从主机我正在做curl http://127.0.1.1:8080并得到curl:(7)无法连接到主机我做错什么了吗?

注意 - 不要建议我使用 ssh。由于我的 ISP 不提供内部 LAN,所以对我来说这是不可能的。我只能使用端口转发。

答案1

我遇到了同样的问题并从这个答案中得到了提示: https://stackoverflow.com/a/6181230/1233020

在您的 VirtualBox 客户机中,运行ifconfigip addr(取决于您的 Linux 发行版)。对于 Arch Linux(我使用的)它是ip addr,输出为:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:75:e6:cc brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fe75:e6cc/64 scope link 
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:8c:04:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.3/24 brd 192.168.56.255 scope global eth1
inet6 fe80::a00:27ff:fe8c:4e6/64 scope link 
valid_lft forever preferred_lft forever

这是有趣的一行:

inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0

我更改了要使用的端口转发规则10.0.2.15,然后一切正常!(您可能需要重新启动虚拟机)。

相关内容