Linux中的0.0.0.0和 ::

IP地址表示,IP地址有两个部分组成,net-id和host-id,即网络号和主机号。

127.0.0.1

127.0.0.1属于{127,}集合中的一个,所有的网络号为127的地址都被称为环回地址,所以环回地址不等价于127.0.0.1,后者只是环回地址的一份子,是包含关系,环回地址loop back。
相比于127.0.0.1,localhost 具有更多的意义,localhost是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为同一个是因为我们使用的大多数电脑上都将localhost指向了127.0.0.1这个地址。

0.0.0.0

服务器端,通过0.0.0.0匹配所有服务器IP,如果进程监听0.0.0.0那么客户端访问服务器任何一个可达IP都可以使用此进程。
个人电脑未配置IP时表示本机地址
路由器表示默认路由

127.0.0.1是个环回地址,是IP,并不表示“本机”,0.0.0.0才是真正表示网路中的本地。
例:服务端绑定端口的时候一般选择绑定到0.0.0.0,这样用户可以通过多个本服务器的IP进行访问。
实际:服务器有内外网IP,一般财务系统绑定内网IP仅内部访问,OA绑定0.0.0.0内外网均可访问。

::

全0的IPV6地址,和IPV4的0.0.0.0一样,表示匹配多个IPV6地址。

用双冒号“::”表示一组0或多组连续的0,但只能出现一次,每项数字前导的0可以省略,省略后前导数字仍是0则继续。
 

linux运维都需要对端口开放查看  netstat 就是对端口信息的查看

# netstat -nltp

p 查看端口挂的程序

[root@iz2ze5is23zeo1ipvn65aiz ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3346/nginx: master  
tcp        0      0 127.0.0.1:8081          0.0.0.0:*               LISTEN      2493/docker-proxy-c 
tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      5529/docker-proxy-c 
tcp        0      0 127.0.0.1:8083          0.0.0.0:*               LISTEN      17762/docker-proxy- 
tcp        0      0 127.0.0.1:8084          0.0.0.0:*               LISTEN      2743/docker-proxy-c 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2155/sshd

看到 查询的有Local、Address、Foregin、Program name

Local :访问端口的方式,0.0.0.0 是对外开放端口,说明80端口外面可以访问;127.0.0.1 说明只能对本机访问,外面访问不了此端口;

Address:端口

Foregin Address:对外开放,一般都为0.0.0.0:* 

Program name:此端口是那个程序在用,程序挂载此端口

重点说明 0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口

               127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性

    ::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 当我们在Linux系统使用NGINX服务时,有时可能会遇到“bind 0.0.0.0:80 permission denied”的错误。这一错误通常是由于当前用户没有足够权限来访问所需的端口号造成的。 解决这一问题的方法是使用管理员(root)用户登录到系统,然后重新启动NGINX服务。在系统命令行输入以下命令: sudo service nginx restart 这将以管理员权限重新启动NGINX服务,确保您可以访问绑定在80端口上的任何网站。 此外,确保您具有所需文件和目录的适当权限。如果您看到了“permission denied”这一错误,那么您可以检查所需文件和目录的权限,包括NGINX配置文件和NGINX日志文件。 总之,如果您在使用NGINX服务时遇到“bind 0.0.0.0:80 permission denied”错误,那么您需要使用管理员(root)用户登录到系统,并重新启动NGINX服务,以确保您具有访问所需端口的权限。 ### 回答2: 这个错误通常是因为权限不足所导致的。在Unix系统,只有具有特殊权限的用户才能监听低于1024的端口。 因此,当使用Nginx绑定0.0.0.0:80端口时,如果当前用户没有足够的权限,则会提示“Permission Denied”错误。这时需要以管理员身份运行程序,或者使用sudo命令来提升当前用户的权限。 另外,还有一些其他原因可能导致此问题,比如端口被已运行进程占用、防火墙设置等等,这时候需要先检查系统及Nginx的相关设置,排除其他可能引起的问题。 综上所述,解决该“Permission Denied”错误的关键在于确保当前用户具有足够的权限,同时也需要注意其他可能导致该问题出现的因素。 ### 回答3: 当使用Linux操作系统并尝试使用Nginx服务和绑定0.0.0.0:80端口时,可能会遇到权限被拒绝的问题。这个问题通常是由于没有足够的权限来访问端口80而导致的。 在Linux系统,端口80是一个较低的端口,只有特定用户才能访问它。正常情况下,只有管理员或具有管理员权限的用户才能访问这个端口。如果当前登录的用户不是管理员或没有管理员权限,那么就无法访问端口80。 解决这个问题最好的方法是使用管理员权限或者在sudo命令下启动Nginx服务。使用sudo命令可以给用户临时添加管理员权限,以便启动Nginx服务并绑定80端口。当然,在使用sudo命令前需要确保用户已被授予sudo权限。 如果您已经使用了sudo命令并仍然无法解决问题,则可以检查Nginx配置文件,看一下是否有任何符号连接或者权限问题。此外,还可以检查SELinux等安全系统是否防止了您的Nginx服务绑定80端口。 总之,当遇到"linux nginx bind 0.0.0.0:80 persmission denied"的问题时,最好的解决方案是确保您的用户具有管理员权限或使用sudo命令,以及检查Nginx配置文件和系统安全策略。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值