在Vagrant中访问端口5000时遇到问题

ver*_*sit 7 python networking flask vagrant vagrantfile

我想在一个流浪汉的环境中自学Flask.据我所知,Flask默认在端口5000上运行服务器.在我的Vagrantfile中,我有:

config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 5000, host: 5000
Run Code Online (Sandbox Code Playgroud)

我有一个简单的教程Flask应用程序:

from flask import Flask 
app = Flask(__name__)

@app.route('/hello')
def hello_world():
    return 'Hello world!'

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

然而,当我python hello.py在我的Vagrant环境中运行并随后127.0.0.1:5000/hello在我的桌面上进入Chrome时,我无法连接.

我对网络知之甚少.我错过了什么?

Job*_*gan 16

如果您从桌面上的Chrome访问,则从技术上讲,您可以从另一台计算机访问(因此您需要将其host='0.0.0.0'作为参数app.run()来告诉客户操作系统接受来自所有公共(外部)IP的连接.

这对我有用(对于Chrome 127.0.0.1:5000/hellolocalhost:5000/helloChrome):

from flask import Flask
app = Flask(__name__)

@app.route("/hello")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 11

您可能需要让Flask在外部可见的URL上提供服务:请参阅文档