从主机端口80到VirtualBox端口80的端口转发不';行不通
我已经阅读了VirtualBox端口转发指南,在这个网站和其他网站上也有类似的问题,但找不到解决方案 UFW在来宾操作系统(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 但是,此设置不起作用。如果你能给我指出正确的道路,我将不胜感激 根据 无法转发<1024个主机端口: 在基于Unix的主机(例如Linux、Solaris、Mac OS X)上,无法从非root运行的应用程序绑定到1024以下的端口。因此,如果您尝试配置这样的端口转发,VM将拒绝启动 可以以root用户身份运行VirtualBox,这将允许您转发<1024个主机端口,因此,如果您坚持使用VirtualBox执行此操作,您可以以以下方式成为root用户并执行VirtualBox:从主机端口80到VirtualBox端口80的端口转发不';行不通,virtualbox,portforwarding,Virtualbox,Portforwarding,我已经阅读了VirtualBox端口转发指南,在这个网站和其他网站上也有类似的问题,但找不到解决方案 UFW在来宾操作系统(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.9
$ sudo su -
# VirtualBox
如果您不习惯以root用户的身份运行VirtualBox,那么还有另一种方法可以使用。您可以使用SSH设置从主机端口80到某个非限制端口(在下面的示例中,我使用端口8080)的端口转发,该端口随后将转发到来宾端口80。很复杂,但它是有效的
系统首选项->互联网和无线->共享
,并确保选中了远程登录
$ sudo su -
\*
使端口在所有接口上都可用)
localhost
:
# ssh yourusername@localhost -L localhost:80::8080
正如William提到的,linux/unix操作系统不允许进程侦听<1024个端口,除非它们以root用户身份运行。您可以以root用户身份运行VirtualBox,尽管我已经读过关于这样做的可怕警告。它可能非常不安全 相反,在主机系统上设置Apache2以监听端口80(应该已经设置好了),但是不要在主机上为网站服务,而是让它代理流量到主机上更高的端口,比如8080 然后,让VirtualBox将较高的端口转发到来宾操作系统端口80 Apache设置如下所示:
a2enmod代理\u http
/etc/apache2/ports.conf
中有Listen 80
指令/etc/apache2/sites available
中添加另一个站点,或者修改默认站点(或者在ports.conf
中删除此站点)
这类似于William的ssh隧道,但不需要每次重新启动主机时都进行手动干预(重新输入密码)。我也面临同样的问题,但是主机上的1024多个端口到来宾计算机80正在工作,但主机上的端口80到来宾计算机上的任何端口都不工作。。。我正在Mac上使用虚拟盒。请告诉我您是否找到了解决问题的方法?如果您的主机操作系统是*nix操作系统,您可以使用将通信量从端口80重定向到主机操作系统上更高的端口。听起来比涉及Apache或SSL隧道要好得多。使用代理模块转发SSL请求是否同样简单?i、 e.
或者还有其他步骤吗?@MichaelButler——我必须为SSL设置这些内容,并在Apache2配置中使用额外的https/SSL内容制定出我自己的解决方案版本。详情如下:
# ssh yourusername@localhost -L localhost:80::8080
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
client --> host:80 --> Apache --> host:8080 ---> vbox NAT ----> guest:80