我曾经在 Windows 机器上运行 Vagrant,SSH 监听端口 2222(默认情况下,主机:2222,客户机:22),并且我曾经将端口 80 转发到端口 80(主机:80,客户机:80,因此我只需输入http://localhost/foo/bar
而不是http://localhost:8080/foo/bar
)
不幸的是,此设置在 Ubuntu 中不起作用。它似乎不会将主机上的端口 80 转发到虚拟机。
pascal@Lenovo-2013:~/VM/foobar$ sudo netstat -tapen | grep ":80 "
tcp 0 0 192.168.100.106:56209 108.160.162.112:80 VERBUNDEN 1000 17616 3880/dropbox
tcp 0 0 192.168.100.106:40977 173.194.40.46:80 TIME_WAIT 0 0 -
tcp 0 0 192.168.100.106:45874 104.16.15.44:80 VERBUNDEN 1000 133141 8940/firefox
tcp 0 0 192.168.100.106:32927 31.13.93.3:80 TIME_WAIT 0 0 -
tcp 0 0 192.168.100.106:42875 87.245.64.151:80 TIME_WAIT 0 0 -
我理解的对吗?我的电脑上没有程序使用端口 80?那么为什么它不转发端口呢?
任何想法?
答案1
按照这个答案
VirtualBox 手册对 NAT 模式限制有如下说明:
转发主机端口 < 1024 是不可能的:
在基于 Unix 的主机(例如 Linux、Solaris、Mac OS X)上,无法将非由 root 运行的应用程序绑定到 1024 以下的端口。
答案2
如果我理解正确的话,您正在使用 Ubuntu 作为主要发行版并尝试在虚拟机上使用 WinXP,以便您可以按照以前的方式使用 Vagrant,或者它在 Ubuntu 上不可用(不熟悉它)。
我觉得您忘记在虚拟机中将网络设置为网关。它目前可能设置为 NAT,因此您的虚拟机没有网络路径 Ubuntu。
编辑:根据评论,发现两台计算机的范围不同。尝试将两台计算机置于相同的 IP 范围内。