localhost 为啥不是127.0.0.1而是0:0:0:0:0:0:0:1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了localhost 为啥不是127.0.0.1而是0:0:0:0:0:0:0:1相关的知识,希望对你有一定的参考价值。
我在本地发布的项目,用127.0.0.1可以访问,但用localhost不能访问,输出的IP是显示0:0:0:0:0:0:0:1。求解
这个项目是JBOSS发布的,之前是可以的,但版本升级过后localhost取的值就是这样了,但别的项目这样还是可以正常的运行
windows编辑C:\WINDOWS\system32\drivers\etc\hosts
linux编辑/etc/hosts
在文件末尾加一行 localhost 127.0.0.1 参考技术A 把127去掉。追问
这么简单?怎么去掉的?
Nginx 为啥我的服务器在 localhost 上提供正确的内容而不是 0.0.0.0
【中文标题】Nginx 为啥我的服务器在 localhost 上提供正确的内容而不是 0.0.0.0【英文标题】:Nginx Why does my server serve correct content on localhost but not 0.0.0.0Nginx 为什么我的服务器在 localhost 上提供正确的内容而不是 0.0.0.0 【发布时间】:2017-03-06 13:03:51 【问题描述】:我正在尝试从我的服务器获取数据,但如果我从 0.0.0.0/my/api 尝试它会给出 400,但如果我从 localhost/my/api 尝试它会给出我需要的内容。我正在使用 nginx,这是服务器的配置文件
server
listen 80;
server_name localhost;
access_log /var/log/nginx/myapp.log;
location = /favicon.ico access_log off; log_not_found off;
location /static/
root /home/myapp;
location /
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
另外,如果我做一个 netstat,我会为服务器得到这个
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8080/nginx
为什么它只会给我来自 localhost 的正确内容,而给我来自 0.0.0.0 地址的 400?这也是这样做的,所以我无法从外部机器访问 api。最后,我使用 gunicorn 作为后端服务器,并使用 nginx 反向代理 gunicorn。
【问题讨论】:
0.0.0.0
不是您服务器的 IP 地址。 ifconfig
显示什么?
如果您在设置中设置了DEBUG=False
,则需要确保您已正确设置ALLOWED_HOSTS
。所以,如果它只包含'127.0.0.1'
,那可能是你的问题。
@csinchok 我将它从 ALLOWED_HOSTS=['localhost']
更改为 ALLOWED_HOSTS=['0.0.0.0']
仍然无法正常工作。
@RichardSmith 显示内部私有 aws ip x.x.x.x
当你说你无法从0.0.0.0/my/api
获取数据时,那可能是因为那是“本地网络上的所有 IP”的元数据,所以它不知道去哪里。如果您在本地主机上工作,请使用 127.0.0.1
【参考方案1】:
看起来您的输出是来自netstat -a
的输出,而不仅仅是netstat
。这是来自 netstat -a
在 AWS Ubuntu 映像上的一个相当通用的结果:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
正如其中一位评论者所说,0.0.0.0
表示“所有 IP 地址”。
Localhost 将具体由单词localhost
表示,如上所示。
附:不需要为这样一个简单的 nginx.conf
指定 server_name
指令,因为您只有一个 server
块。
附言在您的 nginx 配置中关闭网站图标的日志记录非常棒!
【讨论】:
以上是关于localhost 为啥不是127.0.0.1而是0:0:0:0:0:0:0:1的主要内容,如果未能解决你的问题,请参考以下文章
为啥 phpmyadmin 拒绝通过 localhost 连接但接受 127.0.0.1?
为啥 localhost 不会在 chrome (OSX) 中路由到 127.0.0.1?
localhost,127.0.0.1,本机IP,三者的区别是啥?
为啥localhost和127.0.0.1能访问tomcat,本机ip就不能访问
apache的默认域名localhost和ip 127.0.0.1为啥无法修改?
假设所有启用网络的设备都可以访问 localhost/loopback/127.0.0.1 是不是安全 - 即使“网络”关闭?