127.0.0.1:回环地址。该地址指电脑本身,主要预留测试本机的TCP/IP协议是否正常。只要使用这个地址发送数据,则数据包不会出现在网络传输过程中。
10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x:这些地址被用做内网中。用做私网地址,这些地址不与外网相连。
255.255.255.255:广播地址
0.0.0.0:这个IP地址在IP数据报中只能用作源IP地址
IPV4中,0.0.0.0地址被用于表示一个无效的,未知的或者不可用的目标。
在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。
在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
localhost: 只是一个域名,可以代表任何IP地址。在/etc/hosts文件下默认配置了127.0.0.1
后端监听ip地址的三种主要的方式
- 监听到127.0.0.1
- 监听到0.0.0.0
- 监听到主机内网ip
监听127.0.0.1
本机通过127.0.0.1访问成功,网络接口为loopback
本机通过局域网IP 192.168.0.113访问失败,网络接口为loopback
同一局域网下的外部主句通过局域网IP 192.168.0.112访问失败,网络接口-et1
因此,在实际应用中,我们在服务端监听ip地址的时候不要绑定到127.0.0.1,如果绑定到了127.0.0.1,会导致我们的应用只能在本地127.0.0.1访问,其他人无法通过其他任何方式进行访问监听0.0.0.0本机通过127.0.0.1访问成功,网络接口为loopback
本机通过局域网IP 192.168.0.113 访问成功,网络接口为loopback
同一局域网下的外部主句通过局域网IP 192.168.0.112访问成功,网络接口-et1
比如我有一台服务器,一个外网A,一个内网B,如果我绑定的端口指定了0.0.0.0,那么通过内网地址或外网地址都可以访问我的应用。
监听主机内网ip 192.168.0.113
本机通过127.0.0.1访问失败,网络接口为loopback
本机通过局域网IP 192.168.0.113 访问成功,网络接口为loopback
同一局域网下的外部主句通过局域网IP 192.168.0.112访问成功,网络接口-et1