有一个问题困扰了自己很久,当自己的电脑制作了一个网站,别人却不能访问?这是为什么?
因为你的电脑的ip地址是局域网ip
1 局域网ip
一般情况下,你的个人电脑会被分配一个局域网(私有)IP地址,而不是公有IP地址。公有IP地址通常由你的互联网服务提供商(ISP)分配给你的路由器或调制解调器。如果你想将你的电脑设置为拥有公有IP地址,通常需要联系你的ISP,并根据他们的服务和政策进行配置。
当多台电脑连接同一个路由器的时候,只有路由器有1个公有的ip地址,这个共有的ip地址才能在外层的互联网上通讯。其中连接同一个路由器的多台电脑或者手机设备,只是局域网ip。比如你在北京家里的的局域网ip是172.13.2.13。在上海家里的某台设备ip也可以是172.13.2.13。因为它们只在局域网内有效。不会在公网中冲突。
2 为什么不能所有设备都用公有ip呢?
这是因为IPv4地址(32位地址空间)有限,而且大部分的地址已经分配出去,所以许多家庭和企业共享一个公有IP地址。
3 既然我的电脑ip的局域网ip,那为什么我的电脑可以访问网站呢?网站服务器也不知道我的局域网ip呀?
因为有路由器这个中介,它有公有ip。你的信息都通过这个公有ip发送出去。
1、你发送信息的时候,先发给路由器,路由器再发给网站服务器;
2、接受信息的时候,网站服务器发给路由器,路由器再发送给你这台设备。
你提出了一个很好的问题!这涉及到网络地址转换(NAT)技术以及互联网通信的基本原理。
NAT技术:当你的个人电脑连接到路由器或者调制解调器时,路由器会将你的私有IP地址(如192.168.x.x)转换成它的公有IP地址,然后再发送到互联网上。当响应返回时,路由器会根据连接的信息,将响应的数据包重新转发给正确的设备。
返回流量:当你访问一个网站时,你的电脑首先向网站服务器发送一个请求。网站服务器响应时,它响应的目标是你的路由器的公有IP地址。路由器接收到响应后,会根据之前建立的连接信息,将响应的数据包转发给你的个人电脑。
简而言之,网站服务器知道你的请求来自你的路由器的公有IP地址,但它并不知道这个请求的最终目的地是你家里的哪台电脑,因为在互联网上,你的电脑被隐藏在了路由器后面,只有路由器对外可见。
这是因为IPv4地址(32位地址空间)有限,而且大部分的地址已经分配出去,所以许多家庭和企业共享一个公有IP地址。NAT技术使得多台设备可以共享一个公有IP地址,同时仍然能够在互联网上进行通信。
总的来说,NAT是一种常见的网络技术,它让你的家庭网络可以有效地共享一个公有IP地址,同时仍然能够进行双向通信。
4 多台设备都连着1个路由器,同时访问不同的网站,多台设备都会转换为1台相同的公有ip地址吗?
是的。
多台设备连接到同一个路由器时,路由器会为每台设备分配唯一的私有IP地址,并且在NAT(网络地址转换)过程中,它会将每个设备的私有IP地址映射到相同的公有IP地址的不同端口上。这个过程通常被称为端口地址转换(PAT)或NAPT(网络地址和端口转换)。
具体来说,路由器为每台设备分配唯一的私有IP地址(如192.168.x.x),并在发送请求到互联网上时,使用NAT技术将每个设备的私有IP地址和端口号映射到路由器的公有IP地址上的不同端口上。这样,路由器可以根据端口信息来区分哪个设备的请求对应于哪个响应。
例如,如果有多台设备同时访问不同的网站,路由器会将它们的请求映射到不同的端口上,如下所示:
设备1: 私有IP地址192.168.1.100,路由器发送地址:172.15.1.15、端口:5000
设备2: 私有IP地址192.168.1.101,路由器发送地址:172.15.1.15、端口5001
设备3: 私有IP地址192.168.1.102,路由器发送地址:172.15.1.15、端口5002
这些设备的请求都会经过路由器,路由器会将它们的私有IP地址和端口号转换成路由器的公有IP地址上的不同端口,以便响应返回时能够正确路由到每个设备。
所以,即使多台设备共享同一个公有IP地址,路由器会通过NAT和端口地址转换来确保它们在互联网上的通信是唯一的,不会产生冲突。
5 2台设备分别各访问2个网站,通讯原理是什么样的呢?
1、设备1: 私有IP地址192.168.1.100,端口:4848
转换为路由器发送地址:172.15.1.15、端口:5000
2、设备1: 私有IP地址192.168.1.100,端口:4849
转换为路由器发送地址:172.15.1.15、端口:5001
3、设备2: 私有IP地址192.168.1.101,端口:7064;
转换为路由器发送地址:172.15.1.15、端口1234
4、设备2: 私有IP地址192.168.1.101,端口:7065;
转换为路由器发送地址:172.15.1.15、端口1235
这样路由器每个端口对应一个设备的一个端口。就不会冲突了。路由器里维护了一个映射表,路由器接收到消息时,查看这个表,路由器再把信息发给私有ip地址和端口。维护下面的这个字典数据结构的键值:
172.15.1.15端口5000 : 192.168.1.100,端口:4848
172.15.1.15端口5001 : 192.168.1.100,端口:4849
172.15.1.15端口1234 : 192.168.1.101,端口:7064
172.15.1.15端口1234 : 192.168.1.101,端口:7065
6 如何发布网站呢?(必须用公有ip)
方式1:自己跟移动等运营商拉一条公有ip线;
方式2:使用阿里云服务器或者腾讯云服务器,可以选择公有ip,非常便宜。自己尝试成功了。