chrome访问localhost或127.0.0.1遭到拒绝

图片描述请教一个问题:谷歌浏览器访问127.0.0.1:500遭到拒绝,本人是使用XShell连接阿里云服务器,使用flask框架编写的一个小的应用,代码如下运行代码,访问127.0.0.1:5000访问不了
图片描述

安装好gunicorn
编写:gunicon_myapp.py
代码如下:

def app(environ, start_response):
    data = b"Hello, World\n"
    start_response("200 OK", [
        ("Content-Type", "text/plain"),
        ("Content-Length", str(len(data)))
])
    return iter([data])

输入以下命令:
图片描述

图片描述

然后chrome浏览器中打开http://127.0.0.1:8000也是无法访问,网上百度结果是修改浏览器设置——高级——设置——去掉对此使用连接代理服务器的勾,如下图,图片描述

但是这样做依然不能解决上述遇到的问题

安全组配置
添加安全组如下图片描述

阅读 19.8k
4 个回答

题主的问题是对于网络知识的欠缺。建议看看图解TCP/IP这本书充下电。

127.0.0.1这是本机环回ip,始终指向自己,只能本机访问,你在远程当然不能访问。如果你想访问到,必须bind外网地址,而不是127.0.0.1(一个简单的操作是bind 0.0.0.0,这个特殊的ip代表本机所有可用ip,.自然同时包含外网ip与127.0.0.1)。当然你也可以用ssh代理的方式让你能在本机访问到阿里云的localhost

你在阿里云主机上运行的应用,应用监听的是127.0.0.1:8000,你只有在阿里云的主机用浏览器访问127.0.0.1:8000才能访问到你的应用。

要想在你自己电脑上访问阿里云上部署的应用:

  1. 应用监听0.0.0.0:8000;
  2. 在阿里云主机设置里入方向允许8000端口;
  3. 在你自己电脑上访问阿里云主机IP:8000

另外提一点建议,问题提完之后还可以编辑的,看到格式不对就改改咯,要不然大家都没有答题的欲望了:)

PS:Python写的代码打的Ruby标签,我也是醉了~

如果运行在本地, 就127.0.0.1或者localhost.
但是你要放到阿里云主机上了, 就要用主机的公网IP啊, 你把项目放到公网上, 访问的却是本地主机?

阿里云有安全组策略, 不显示开放端口的, 就会打不开
centos默认firewalld不开启, 但是有的时候, 运维给的是开启的, 检查下有没有开启
检查应用监听地址, 不要监听本地网络地址

推荐问题
宣传栏