vagrant 下 flask 运行后本地不能打开

2015-06-22 16:52:06 +08:00
 m939594960
我查了很多 都是说把host调成 0 . 0 .0 .0
我的代码是这样的

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')

依旧不行!

我的vagrant网卡部分配置
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "forwarded_port", guest: 5000, host: 5000

端口也映射了

本地不论打开:127.0.0.1:5000 还是localhost:5000 还是192.168.33.10:5000
都是提示无法显示此页 ERR_CONNECTION_TIMED_OUT


这是为啥呢?折腾我一宿了 真是蛋疼
4337 次点击
所在节点    Vagrant
12 条回复
Lucius
2015-06-22 17:22:02 +08:00
config.vm.network "private_network", ip: "192.168.33.10"

这个,比如你的物理机内网IP是192.168.1.x

把vagrant的IP设置成192.168.1.y 试试
m939594960
2015-06-22 18:06:58 +08:00
@Lucius 我把本地的改成了192.168.33.88依旧没反应啊。。
guoqiao
2015-06-22 18:14:27 +08:00
你的Vagrant虚拟机应该是默认开启了防火墙.
常见的 linux 防火墙有ufw, firewalld, iptables等.
你可以查一下你的发行版对应的防火墙, 关掉即可.

我也遇到过这个坑, 折腾了好久才找到原因. 可恨的是官方文档只字未提.
caixiexin
2015-06-22 18:30:01 +08:00
我前两天也跟你碰到一样的问题了,也搞了一晚上。。
Ls几位的方法都试试,我也是这么一步一步搞好的
m939594960
2015-06-22 18:32:50 +08:00
@guoqiao 我已经吧iptables卸载掉了 依旧不行真的蛋疼!
caixiexin
2015-06-22 18:33:36 +08:00
还有你试试将vagrant 网络配成public 的那种试试,让路由器给它分配个IP ,这样跟宿主机在同一网络,然后访问那个分配的IP试试
m939594960
2015-06-22 18:34:04 +08:00
@caixiexin 改IP已经试了 iptables卸载了 依旧不行 我都想把vagrant卸了。。
m939594960
2015-06-22 18:44:47 +08:00
已经解决了!
至于怎么好的我也不太知道
第一步 卸载:IPtables 没反应
第二步 关闭本地的opendns 没反应
第三部 修改网络为config.vm.network "public_network" 没反应

第四部重启 好了
guoqiao
2015-06-22 19:29:05 +08:00
你虽然卸载了iptables, 但是其服务进程可能还在后台运行.
你应该先停止它, 再禁用服务, 或者卸载.

最后, 重启大法好.

你这个问题真是勾起了我的伤心记忆.
我记得很久以前我就看到Vagrant的介绍, 觉得很不错, 于是想用在自己的项目中.
不论是官方的介绍, 还是别人写的博客, 一个个都看起来无比简单.
但是轮到我用的时候, 无论是端口转发, 还是私有网络, 还是公开网络, 一个一个尝试, 全都不管用.
于是我删除虚拟机, 换了好几个不同的镜像, 反复重新安装, 还是不行.
能想到的原因都试了多遍, 连 VirtualBox 都用不同方法重装了两遍, 依然不行.
当时那种感觉真是崩溃....

直到最近工作中要求用这个, 还是遇到了同样的问题.
再次硬着头皮研究了一下午, 终于找到了原因.

想起我为这货浪费的时光和心血, 真的是累感不爱了T_T
我最不能理解的是, 为什么Vagrant的官方文档还有各种博客, 很少有人提到防火墙这个问题?
几个主流的 Linux 发行版, 现在不是都默认有防火墙吗?
还是说关掉防火墙是常识根本不用提....

楼主这么快就解决了问题, 比我幸运多了.
cyberdak
2015-06-22 20:47:00 +08:00
@guoqiao 大概算常识
但是我觉得面向新手的教程起码要把tips加上
我用win第一次弄flask的时候。。被加载css折磨得死去活来
mimetype死活不对,3.4换成2.7,重启,换浏览器全都试过
然后放到centos上面就没问题
最后才搜索到是直接读取了win注册表里面的mimetype,改了之后就好了
但是这种大坑,教程里面居然一句都没提到
要是教程根本不面对win也就算了。。但是特么这教程就是面对win的,简直奇葩
m939594960
2015-06-22 23:19:28 +08:00
@guoqiao 我也很早就准备用vagrant 下载下来之后安装在windows中 运行的时候各种出问题。。。 那个时候也不是特别理解vagrant 折腾几天就删掉了
最近这一阵docker出来了之后 vagrant国内的教程越来越多 官方文档也更完善了 我才开始用!
julyclyde
2015-06-23 14:02:15 +08:00
@guoqiao iptables没有后台进程

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/200358

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX