Windows 10上的流浪汉端口转发

时间:2016-03-08 13:24:48

标签: vagrant bottle portforwarding

我在流浪汉端口转发方面遇到了以下问题:

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

IP地址127.0.0.1 港口2222

这让我觉得端口转发正在为SSH工作。在Vagrantfile中,我配置了以下几行:

  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)

然后使用

运行此脚本
sudo python test.py

它成功启动,当我登录不同的SSH会话并使用curl进行测试时,我在80端口得到了正常的响应。

但是当我尝试从我的主机Windows机器访问此脚本时,我在Chrome中收到错误ERR_CONNECTION_RESET且页面无效。

我试图在Windows 10上关闭防火墙 - 没有帮助。造成这种麻烦的原因是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

通过这个我们设置瓶子来监听来自localhost的请求,但是vagrant从Windows机器发送所有请求作为Ubuntu机器的外部请求。

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

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

然后一切都应该正常工作。