我已阅读 VirtualBox 端口转发指南、本站点和其他站点中的类似问题,但找不到解决方案。
UFW 在 Guest OS (Ubuntu) 上启用,端口 80 和 22 已打开。我可以从主机 ssh 到 ubuntu,并且可以从主机浏览器访问 ubuntu 站点。
在 Guest 上,我设置了 Nat 和 hostonly (vboxnet3) 适配器。
还打开了路由器端口 80 (192.168.1.90)
访客 IP 为 192.168.70.10
所以在访客设置> Nat >端口转发中,我输入了:
TCP 主机 IP:192.168.1.90 主机端口:80 访客 IP:192.168.70.10 访客端口:80
但是,此设置不起作用。如果您将我引向正确的道路,我将不胜感激。
最佳答案
正如威廉所提到的,除非它们以 root 身份运行,否则 linux/unix 操作系统不会让进程监听 < 1024 的端口。您可以以 root 身份运行 VirtualBox,尽管我已经阅读了关于这样做的可怕警告。这可能是非常不安全的。
相反,在主机系统上设置 Apache2 以监听端口 80(它应该已经设置好了),但不是在主机上为网站提供服务,而是让它代理流量到某个更高的端口 - 比如 8080 - on主人。
然后,让 VirtualBox 将该更高端口转发到 guest 操作系统端口 80。
Apache 设置将是这样的:
a2enmod proxy_http
/etc/apache2/ports.conf
有一个 Listen 80
里面的指令/etc/apache2/sites-available
中添加另一个站点或修改默认站点(或直接在 ports.conf
中添加)<VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost>
bounce apache
service apache2 restart
The VirtualBox setup would be host port: 8080, guest port: 80
.
Traffic would go:
client --> host:80 --> Apache --> host:8080 ---> vbox NAT ----> guest:80
这类似于 William 的 ssh 隧道,但每次重新启动主机时都不需要手动干预(重新输入密码)。
关于virtualbox - 从主机端口 80 到 VirtualBox 端口 80 的端口转发不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388657/