Vagrant windows 10上的漫游端口转发
我有以下关于流浪者端口转发的问题: 我在我的Windows 10笔记本电脑上安装了vagrant,带有“hashicorp/precise64”框,创建了ssh私钥以从putty登录,并通过ssh成功登录,设置如下: IP地址127.0.0.1 2222端口 这让我认为端口转发适用于SSH。在Vagrant文件中,我配置了以下行: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
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)