V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
m939594960
V2EX  ›  Vagrant

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

  •  
  •   m939594960 · 2015-06-22 16:52:06 +08:00 · 4337 次点击
    这是一个创建于 3471 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我查了很多 都是说把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


    这是为啥呢?折腾我一宿了 真是蛋疼
    12 条回复    2015-06-23 14:02:15 +08:00
    Lucius
        1
    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
        2
    m939594960  
    OP
       2015-06-22 18:06:58 +08:00
    @Lucius 我把本地的改成了192.168.33.88依旧没反应啊。。
    guoqiao
        3
    guoqiao  
       2015-06-22 18:14:27 +08:00
    你的Vagrant虚拟机应该是默认开启了防火墙.
    常见的 linux 防火墙有ufw, firewalld, iptables等.
    你可以查一下你的发行版对应的防火墙, 关掉即可.

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

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

    最后, 重启大法好.

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

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

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

    楼主这么快就解决了问题, 比我幸运多了.
    cyberdak
        10
    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
        11
    m939594960  
    OP
       2015-06-22 23:19:28 +08:00
    @guoqiao 我也很早就准备用vagrant 下载下来之后安装在windows中 运行的时候各种出问题。。。 那个时候也不是特别理解vagrant 折腾几天就删掉了
    最近这一阵docker出来了之后 vagrant国内的教程越来越多 官方文档也更完善了 我才开始用!
    julyclyde
        12
    julyclyde  
       2015-06-23 14:02:15 +08:00
    @guoqiao iptables没有后台进程
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:16 · PVG 06:16 · LAX 14:16 · JFK 17:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.