Vagrant windows 10上的漫游端口转发

Vagrant windows 10上的漫游端口转发,vagrant,bottle,portforwarding,Vagrant,Bottle,Portforwarding,我有以下关于流浪者端口转发的问题: 我在我的Windows 10笔记本电脑上安装了vagrant,带有“hashicorp/precise64”框,创建了ssh私钥以从putty登录,并通过ssh成功登录,设置如下: IP地址127.0.0.1 2222端口 这让我认为端口转发适用于SSH。在Vagrant文件中,我配置了以下行: config.vm.network "forwarded_port", guest: 80, host: 8181, auto_correct: true

我有以下关于流浪者端口转发的问题:

我在我的Windows 10笔记本电脑上安装了vagrant,带有“hashicorp/precise64”框,创建了ssh私钥以从putty登录,并通过ssh成功登录,设置如下:

IP地址127.0.0.1 2222端口

这让我认为端口转发适用于SSH。在Vagrant文件中,我配置了以下行:

  config.vm.network "forwarded_port", guest: 80, host: 8181,
    auto_correct: true
在虚拟机上,我安装了pip,并使用pip安装了瓶子框架:

sudo pip install bottle
然后,我创建了hello world页面的一个简单的瓶子脚本test.py:

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=80)
它成功启动,当我登录到另一个SSH会话并使用curl对其进行测试时,我在80端口上得到正常响应

但当我试图从我的Windows主机访问此脚本时,我在Chrome中得到一个错误ERR_CONNECTION_RESET,页面不工作

我已经尝试关闭Windows 10上的防火墙-没有帮助。这一麻烦的原因是什么


谢谢大家!

找到了答案,感谢我的一位朋友

事实证明,端口转发工作正常,但问题在于脚本本身。这里的关键点是test.py中的以下字符串:

run(host='localhost', port=80)
通过这个,我们设置了一个瓶子来监听来自本地主机的请求,但是vagrant将来自Windows机器的所有请求作为Ubuntu机器的外部请求发送

因此,解决问题的一种方法(粗略的方法)是只设置以下命令,而不是前一个命令:

run(host='0.0.0.0', port=80)
那么一切都应该正常工作

run(host='0.0.0.0', port=80)