省流:
0.0.0.0 是对外开放,说明80端口外面可以访问;
127.0.0.1 是只能本机访问,外面访问不了此端口
监听0.0.0.0
的端口,就是监听本机中所有IP的端口。
一般会通过ping 127.0.0.1
来测试某台机器上的网络设备是否工作正常。
[root@manage ~]# 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
举例
案例:pc1的ip是192.168.10.128
- pc1中sever监听
0.0.0.0
,则pc1中的client可以连上127.0.0.1
和192.168.10.128
,pc2中的client能连上192.168.10.128
。- pc1中sever监听
127.0.0.1
,则pc1中的client可以连上127.0.0.1
,连不上192.168.10.128
;而pc2中的client都连不上。- pc1中sever监听
192.168.10.128
,则pc1中的client可以连上192.168.10.128
,连不上127.0.0.1
;而pc2中client能连上192.168.10.128
。
符号 :::*
有时候会看到 :::*,三个冒号一个星号。 前两个冒号,是IPv6的“0:0:0:0:0:0:0:0”缩写,相当于IPv4的“0.0.0.0”,即本机的所有IPv6地址。第三个冒号是IP和端口的分隔符,星号是任意端口。
符号 ::
全0的IPV6地址,和IPV4的0.0.0.0一样,表示匹配多个IPV6地址。
用双冒号“::”表示一组0或多组连续的0,但只能出现一次,每项数字前导的0可以省略,省略后前导数字仍是0则继续。
IP地址构成成分
IP地址表示,IP地址有两个部分组成,net-id和host-id,即网络号和主机号。
例如,192.168.1.0/24,意思是前24位是网络号,后8位是主机号。即是192.168.1固定的,最后这个数是变化的,在0-255之间(不包括0和255)。所以这个网段的主机的ip地址是192.168.1.1到192.168.1.254。
192.168.0.0/16是前16位是网络号,后16位是主机号。
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
是不能被ping
通的。因为0.0.0.0
并不是一个真实的的IP地址,它只是代表本机中所有的IPV4地址。监听0.0.0.0
的端口,代表监听本机中所有IP的端口。
例如:我想监听机器的所有的ip,就用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内外网均可访问。
基础知识_IP地址的基础知识:127.0.0.1 VS 0.0.0.0
tomcat 指定监听ip
加上 address="127.0.0.1"
<Connector port="8080" address="127.0.0.1" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
startup.bat启动后,netstat -an | findstr "8080"查看监听情况。
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING
如果没有指定ip则是这样:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
TCP [::]:8080 [::]:0 LISTENING
springboot指定监听ip
1.application配置文件:
server.address= ip
server.port= port
2.启动参数
-Dserver.address=ip -Dserver.port=port
3.实现接口org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort();
container.setAddress();
}
回环地址
所谓的回环地址,通俗的讲,就是我们在主机上发送给127
开头的IP地址的数据包会被发送的主机自己接收,根本传不出去,外部设备也无法通过回环地址访问到本机。
小说明:正常的
数据包
会从IP层
进入链路层
,然后发送到网络
上;而给回环地址
发送数据包
,数据包
会直接被发送主机的IP层
获取,后面就没有链路层
他们啥事了。
而127.0.0.1
作为{127}
集合中的一员,当然也是个回环地址。只不过127.0.0.1
经常被默认配置为localhost的IP地址。
一般会通过ping 127.0.0.1
来测试某台机器上的网络设备是否工作正常。
本机IP
本机IP通常仅指在同一个局域网内,能同时被外部设备访问和本机访问的那些IP地址(可能不止一个)。像127.0.0.1
这种一般是不被当作本机IP的。本机IP是与具体的网络接口绑定的,比如以太网卡、无线网卡或者PPP/PPPoE拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。
https://www.jianshu.com/p/ad7cd1d5be45