为什么?
我已经设置了一个非常简单的服务器,比如50次,但这是我第一次尝试使用Vagrant。
当导航到“127.0.0.1:2222”时,Vagrant VM在浏览器中显示“SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1”。 2222是第一个Vagrant VM的标准端口。
127.0.0.1应该显示apache2 web文件夹的index.html / php。
答案 0 :(得分:2)
当你运行一个流浪汉时,你会看到一条显示[默认]转发端口的消息... - 22 => 2222(适配器1)。 ssh正在侦听你的VM上的端口22,你可以从本地框ssh到端口22(默认)连接到VM;但如果您已将VM配置为允许外部访问,则另一台计算机上的任何其他人都需要使用您的IP地址,但端口2222需要连接到VM。
如果您在工作中的盒子上运行VM,但希望能够在家中,客户办公室或甚至工作网络中的其他计算机上访问它时,这可能很有用。
使用浏览器连接到SSH端口2222将重定向到虚拟机上的端口22,但是正在侦听此端口的ssh;并且网络浏览器不适合ssh连接。
我个人使用putty作为我的ssh客户端,但是对于vagrant,你也可以在启动虚拟机后发出vagrant ssh
。
其他强>
端口转发的值
如果您设置
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 443, host: 8443
在您的vagrantFile中,并且您已允许公共访问VM,然后您可以通过将浏览器指向端口8080(或8443以获取)来从家中,客户端或工作网络中的其他框访问VM上的Web服务器https)而不是更正常的默认端口80和443 ...这对于从笔记本电脑运行演示时特别有用,当您的VM在办公桌下的庞大桌面上运行时,您可以将其带到客户端站点
答案 1 :(得分:2)
MarkBaker的答案解决了这个问题,但Vagrant 1.2.7(及更新版本)需要这种语法:
# Forward guest port 80 to host port 80
config.vm.forward_port 80, 80
完整的Vagrantfile
(您可以在箱文件的位置找到它)如下所示:
Vagrant::Config.run do |config|
# Forward guest port 80 to host port 80
config.vm.forward_port 80, 80
end
此示例将主机操作系统中端口80(标准端口)上的请求路由到Vagrant VM中的端口80。结果是,主机浏览器中的http://127.0.0.1
将显示VM的本地主机。
使用多个虚拟机时,请注意您应为每个虚拟机使用唯一的端口。