监听不一样ip地址的差别

IP类型

IP地址一共分为A~E5类,它们分类的依据是其net-id所占的字节长度以及网络号前几位。node

  • A类地址:网络号占1个字节。网络号的第一位固定为0。
  • B类地址:网络号占2个字节。网络号的前两位固定为10。
  • C类地址:网络号占3个字节。网络号的前三位固定位110。
  • D类地址:前四位是1110,用于多播(multicast),即一对多通讯。
  • E类地址:前四位是1111,保留为之后使用。

特殊地址

  • 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

  1. 本机经过127.0.0.1访问成功,网络接口为loopback
  2. 本机经过局域网IP 192.168.0.113访问失败,网络接口为loopback
  3. 同一局域网下的外部主句经过局域网IP 192.168.0.112访问失败,网络接口-et1

所以,在实际应用中,咱们在服务端监听ip地址的时候不要绑定到127.0.0.1,若是绑定到了127.0.0.1,会致使咱们的应用只能在本地127.0.0.1访问,其余人没法经过其余任何方式进行访问服务器

监听0.0.0.0

  1. 本机经过127.0.0.1访问成功,网络接口为loopback
  2. 本机经过局域网IP 192.168.0.113 访问成功,网络接口为loopback
  3. 同一局域网下的外部主句经过局域网IP 192.168.0.112访问成功,网络接口-et1

好比我有一台服务器,一个外网A,一个内网B,若是我绑定的端口指定了0.0.0.0,那么经过内网地址或外网地址均可以访问个人应用。网络

监听主机内网ip 192.168.0.113

  1. 本机经过127.0.0.1访问失败,网络接口为loopback
  2. 本机经过局域网IP 192.168.0.113 访问成功,网络接口为loopback
  3. 同一局域网下的外部主句经过局域网IP 192.168.0.112访问成功,网络接口-et1

总结

  • 在实际应用中,最好的监听ip地址方式为:监听到0.0.0.0,nodejs demo以下:
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World');
}).listen(5500, '0.0.0.0');
  • 或者nodejs也能够不监听指定的ip,也可
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World');
}).listen(5500);
相关文章
相关标签/搜索