joh*_*206 20 virtualbox portforwarding
我已阅读VirtualBox端口转发指南,此站点和其他站点中的类似问题但无法找到解决方案.
客户操作系统(Ubuntu)上启用了UFW,端口80和22已打开.我可以从主机ssh到ubuntu,并可以从主机浏览器访问ubuntu站点.
在Guest上,我设置了Nat和hostonly(vboxnet3)适配器.还打开了路由器端口80(192.168.1.90)Guest ip是192.168.70.10
所以在客户设置> Nat>端口转发我放:
TCP host-ip:192.168.1.90 host-port:80 guest-ip:192.168.70.10 guestost-port:80
但是,此设置不起作用.如果你指引我走正确的路,我感激不尽.
Pet*_*ter 29
正如威廉所提到的,linux/unix操作系统不会让进程侦听端口<1024,除非它们以root身份运行.你可以以root身份运行VirtualBox,虽然我已经阅读了关于这样做的可怕警告.这可能是非常不安全的.
相反,在主机系统上设置Apache2以侦听端口80(它应该已经设置好了),但不是在主机上提供网站服务,而是将代理流量提供给更高端口 - 比如8080 - 主人.
然后,让VirtualBox将更高端口转发到来宾OS端口80.
Apache设置将是这样的:
安装HTTP代理模块
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>
反弹阿帕奇
service apache2 restart
VirtualBox设置将是host port: 8080, guest port: 80.
交通将会:
client --> host:80 --> Apache --> host:8080 ---> vbox NAT ----> guest:80
Run Code Online (Sandbox Code Playgroud)
这类似于William的ssh隧道,但每次重新启动主机时都不需要手动干预(重新输入密码).
如果您不习惯以root用户身份运行VirtualBox,那么这是另一种方法.您可以使用SSH来设置从主机端口80到某个非限制端口的端口转发(在下面的示例中,我使用端口8080),然后将其转发到访客端口80.Carvoluted,但它可以工作.
System Preferences -> Internet & Wireless -> Sharing并确保Remote Login已选中.成为您主机上的root用户
$ sudo su -
Run Code Online (Sandbox Code Playgroud)使用SSH将主机端口80转发到主机端口8080(绑定地址\*使端口在所有接口上可用).
# ssh yourusername@localhost -L \*:80::8080
Run Code Online (Sandbox Code Playgroud)请注意,它会要求您使用您的用户名使用的任何凭据登录,因此很可能会要求您输入密码,并且当您成功时,实际上会将您登录.
您现在应该能够在主机上命中端口80并看到与在主机上命名端口8080相同的服务,即客户操作系统上的端口80.
如果您不希望网络上的其他人能够访问该计算机上的端口80,但仍希望能够从主机系统上的浏览器访问该端口,请将该端口绑定到localhost:
# ssh yourusername@localhost -L localhost:80::8080
Run Code Online (Sandbox Code Playgroud)
根据http://www.virtualbox.org/manual/ch06.html#natforward
转发主机端口<1024不可能:
在基于Unix的主机(例如Linux,Solaris,Mac OS X)上,无法从非root运行的应用程序绑定到1024以下的端口.因此,如果您尝试配置此类端口转发,VM将拒绝启动.
它可以运行VirtualBox的为根,-will-让你转发主机端口<1024,所以如果你是坚定的关于在VirtualBox中这样做,你就可以成为根和执行VirtualBox的是这样的:
$ sudo su -
# VirtualBox
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34577 次 |
| 最近记录: |