Zhangxu's Blog.

内网穿透的通俗理解

Word count: 775 / Reading time: 3 min
2018/06/15 Share

Tip

内网穿透的通俗理解

最近看了微信公众平台的授权相关内容,但是想要在本机调试的话需要做内网穿透的工作,通过查阅资料实现了相关功能,借此总结下自己对于内网穿透粗浅的理解。

平日里我们访问的网站,背后都有服务器在支撑服务,而我们之所以能访问这台服务器是因为我们能在互联网中定位到他的IP地址。

这个IP是运营商分配的公网IP地址,在网络中是独一无二的,但是这样的IP资源很宝贵,不能无节制的分配。

但是很多机器都需要联网,怎么办?

回想下家里联网的场景,路由器通过拨号向运营商申请到了一个公网IP地址(下一次拨号还会变化),家里所有联网设备都通过这个IP地址和互联网上的其他设备通信。

与此同时路由器把自己与家中其他通过有线或无限的连接到路由器的设备组成了一个局域网,在这个局域网中每个设备都有一个自己的私有IP地址

路由器在这个局域网中的扮演的是网关的角色,其他设备网络请求和接受的流量都由路由器转发,因此路由器像是家里水网的总闸门,对于外部网络设备而言家里的局域网是个黑盒子,只有公网IP地址是可见的。

对于网站服务器来说本机IP就是公网IP地址,那么我开个服务,告诉别人IP地址和端口号人家就可以访问了。

但对于家里的电脑就不一样了,别人不可能通过这个私有IP地址访问你发布的服务,因为它在网络中并不惟一,很可能隔壁二毛家的电脑IP和你的一样。

那如果非要别人访问怎么办,有没有解决方案?

有,方案之一是借助一个拥有公网IP地址的服务器来做转发工作,提供这种转发服务(内网穿透技术)的有花生壳、ngrok等等,他们通常是有一整套客户端和服务端通信的系统。服务端安装在用来转发的服务器上,与内网你家电脑的客户端通过约定的协议通信,这样别人想要访问你电脑的服务只要固定的找这个转发服务器就可以了,IP也是固定不变的。

转发服务器通常会分配一个二级或三级域名给到你,这个域名是和你的客户端绑定的,这样你打开电脑上的客户端后,别人就可以通过这个域名将其解析至转发服务器,而后转发服务器再找到你的客户端最终完成内网的穿透。

CATALOG
  1. 1. Tip
    1. 1.1. 内网穿透的通俗理解