使用端口 80 从主机到访客的端口转发,但它不起作用

use*_*057 5 server virtualbox apache2

我在虚拟机(11.04)中安装了 ubuntu 服务器,然后我配置了 apache。

在虚拟框设置中,我做了一个从端口 80(主机)到 80(访客)的端口转发,我在我的主机上打开我的网络浏览器,然后我去http://localhost 不工作,但是如果我去http://localhost:1080,它可以工作,但我没有进行从 1080 到 80 的端口转发,我的配置中没有 1080,我想知道它为什么这样做?

我知道在我以 root 身份启动 virtualbox 之前端口 80 将无法工作,但我不知道的是为什么当它无法工作时它实际上端口 80转换为 1080 ......看看它什么时候不是 root 并将低于 1024 的地址转换为其他地址?

小智 12

VirtualBox的手册说

转发主机端口 < 1024 不可能:

在基于 Unix 的主机(例如 Linux、Solaris、Mac OS X)上,不能从不是由 root 运行的应用程序绑定到 1024 以下的端口。因此,如果您尝试配置这样的端口转发,VM 将拒绝启动。

我想这就是当主机以 root 用户身份运行时正确转发端口 80 的原因。无论如何,我不确定为什么端口会自动从 80 更改为 1080。


Pan*_*her 2

这里有一个很好的部分解释了 Virtualbox 上的 NAT 端口转发:

http://www.virtualbox.org/manual/ch06.html#natforward

我不确定您为什么会看到这样的行为,您可以发布您的配置吗?

另一种(潜在的)解决方案是使用桥接网络。我个人发现桥接网络更容易配置。如果我觉得需要防火墙,我会从访客中进行配置。您可以使用 ufw 轻松地将端口 80 限制到您的主机或 LAN。

sudo ufw enable
sudo ufw default deny
# change "192.168.0.10" to your host
sudo ufw allow proto tcp from 192.168.0.10 to any port 22
# Or for you LAN
sudo ufw allow proto tcp from 192.168.0.0/24 to any port 80
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以将“任意”更改为您的 IP。