坦克访问入口之内网穿透(http)

ganyaotong · · 1784 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

内网穿透的背景有点复杂,它是互联网IPv4协议没有解决的问题,内网穿透就算是一个解决方案。坦克访问入口支持内网穿透功能。我把我知道的关于内网穿透的知识尽力写出来告诉读者,并且,我会教你如何使用坦克访问入口部署内网穿透解决方案。想知道如何,请阅读这篇文章。 ## 网络划分技术的出现 ![坦克访问入口之网络背景.png](https://static.golangjob.cn/230521/d93b582a1f18d4da6f524de31417b107.png "坦克访问入口之网络背景") 互联网上有很多电脑主机,电脑通信就需要IP地址。如果把互联网当作一个网络,那这个范围就太大了,一个网络容纳几十亿台电脑,数据传输一次,就要遍历几十亿个端口,找到对的,然后发送出去。为了提高数据传输速度,提高转发效率,这时就会出现网络划分,把网络划分为很多子网络,网络与网络之间有一个网关,数据发送出去到达网关后,网关根据目标IP的归属,确定IP属于那个子网,然后发送到它的子网,如果子网再划分子网,继续上面的程序,一直到达目的IP。这样,网络就会提高了效率。 网络划分了,到了边界,不同的子网就会出现相同的IP,比如,我的局域网有192.168.2.1这个IP,你的局域网也有这过IP。 公网访问局域网192.168.2.1这个IP,网关不知道它属于那个子网。所以无法到达。 反过来,局域网可以访问公网,因为公网IP是唯一的。 ## 内网穿透技术 ![内网穿透.png](https://static.golangjob.cn/230521/897df6355ca98b132efa494ea3e90d69.png "内网穿透") 对互联网来说,用户是无法访问你的局域网服务的,为了解决这个问题,就需要内网穿透功能。内网穿透功能就像上面的图一样,这是一个简单的原理图。公网服务器与内网服务器连起来,当用户通过互联网访问公网服务器,公网服务器会发送一个消息给局域网服务器 **(本身公网服务器无法发送数据到局域网服务器的,它能够发送是因为局域网服务器启动的时候,与公网服务器建立了一个链接,并且永远不断开这个链接,即使断开也要自动重新链接上去。)** ,局域网服务器收到消息后解析里面的内容,查看它访问的资源路径(通过URI),然后拿到后端资源,响应给公网服务器,公网服务器再响应给用户。 这条链接永远保持生存,原理就是这样。 ## 坦克访问入口的内网穿透解决方案 内网穿透原理就是这么简单,实现内网穿透原理的软件也有很多,本篇文章在这部分讲解坦克访问入口(简称:坦克AW/Access Way)。在AWS弹性云服务器上部署坦克AW来实施内网穿透解决方案。这个方案同时也适合其它云服务提供商。这篇文章不会讲解AWS EC2安装配置,这篇文章需要你具备下列技能: * **AWS账号** * **AWS EC2实例(已经绑定弹性IP)** * **域名** * **[Tconf配置文件格式](https://www.tankprint.online/2023/02/11/TCONF%E6%A0%BC%E5%BC%8F%E4%BB%8B%E7%BB%8D.html)** ![坦克内网穿透.png](https://static.golangjob.cn/230521/f82715022210b6699f42abd9b7c86ab8.png "坦克内网穿透") 你已经具备了上面列出的条件,我开始讲解一些配置知识给你,这篇文章不会带你看一遍坦克AW的安装与配置过程,我认为那样你学不到知识。我会在这篇文章讲解所有坦克AW的内网穿透知识。坦克AW的知识就在配置文件里面,所以,接下来我用配置文件来讲解知识点。 下面是坦克AW的配置文件 文件名:`生产环境.tconf` ,你先不要去看如何安装程序,先听我讲讲这些知识。它很容易的,我是官方,你可以完全信任我。 ``` ,,=《{》}#“"”" 语言=zh-CN 虚拟机《 目录=虚拟机 HTTPS证书目录=虚拟机/HTTPS证书 HTTPS根证书目录=虚拟机/HTTPS证书/根证书 》 #如果你把tankaw用作内网穿透服务器,可以把下面这行的两个#删除,坦克aw不能同时运行为《内网穿透服务器》和《内网穿透客户端》,所以,当你设置为服务器的时候就需要把客户端注释掉。 ##成为内网穿透服务器《 内网穿透端口=9098 》 #如果你把tankaw用作内网穿透客户端,可以把下面这行的两个#删除,坦克aw不能同时运行为《内网穿透服务器》和《内网穿透客户端》,所以,当你设置为客户端的时候就需要把服务器注释掉。 ##成为内网穿透客户端《 内网穿透端口=9098 内网穿透远程地址=0.0.0.0 #需要设置 #请把后端对象里配置的域名解析到内网穿透服务器的IP地址 后端《 tankaw.tankprint.online=127.0.0.1:9098 》 》 ``` 坦克AW开始运行就会读取这个配置文件,这个文件主要有三部分:第一部分是网站虚拟机。第二,第三部分是内网穿透,第二部分是内网穿透服务器,第三部分是内网穿透客户端。所以,只需要知道第二,第三部分就可以了,很简单的。先从第二部分开始。 ## 内网穿透服务器的知识 ``` #如果你把tankaw用作内网穿透服务器,可以把下面这行的两个#删除,坦克aw不能同时运行为《内网穿透服务器》和《内网穿透客户端》,所以,当你设置为服务器的时候就需要把客户端注释掉。 ##成为内网穿透服务器《 内网穿透端口=9098 》 ``` 回想上面的第二张图,以及那一段内容,你应该回忆起它的原理了,服务器只做接收互联网用户的访问,然后发送一个消息给内网穿透客户端。然后等待内网穿透客户端返回消息,再返回互联网用户。 所以服务器的配置只有一行。把`##成为内网穿透服务器`前面的两个井号删除就可以了,重启坦克AW,它就成为内网穿透服务器了。同时,它不会影响网站服务器任何功能。关于**端口**,这个**端口**是给内网穿透客户端链接使用的。所以,等下配置内网穿透客户端的时候需要配置一个一样的**端口**。既然客户端要访问过来了,你就需要打开**安全组入口端口**。 记住,是打开**安全组入口端口** ## 内网穿透客户端的知识 ``` #如果你把tankaw用作内网穿透客户端,可以把下面这行的两个#删除,坦克aw不能同时运行为《内网穿透服务器》和《内网穿透客户端》,所以,当你设置为客户端的时候就需要把服务器注释掉。服务端的知识就到这里了。 ##成为内网穿透客户端《 内网穿透端口=9098 内网穿透远程地址=0.0.0.0 #需要设置 #请把后端对象里配置的域名解析到内网穿透服务器的IP地址 后端《 tankaw.tankprint.online=127.0.0.1:9098 》 》 ``` 你回忆一下上面的图和内网穿透原理,客户端启动的时候就会和内网穿透服务器建立链接,链接需要知道内网穿透服务器的地址和端口。所以就有这两行: ``` 内网穿透端口=9098 内网穿透远程地址=0.0.0.0 #需要设置 ``` 这个`0.0.0.0`需要改成内网穿透服务器的IP地址,只要这个配置好,内网穿透客户端就可以与内网穿透服务器链接了。上面的知识就是内网穿透的所有知识了。 ### 配置内网穿透虚拟机 这个独立拿出来说,因为它与网站虚拟机一样。就像你在公有云配置网站虚拟机一样。 客户端和服务器链接起来了,那么,互联网访问你的什么服务?你需要把什么服务提供给互联网用户?这就需要配置一个后端《》对象,就有了这个: ``` #请把后端对象里配置的域名解析到内网穿透服务器的IP地址 后端《 tankaw.tankprint.online=127.0.0.1:4000 》 ``` 你现在在局域网有一个网站服务运行在`4000`端口,你希望互联网用户通过`tankaw.tankprint.online`这个域名访问你的网站服务。只要在后端对象里面添加一行:`tankaw.tankprint.online=127.0.0.1:4000`,如果还有其它服务,只要把域名和地址端口继续添加新行就可以了。 最后,你感觉还有什么,现在内网穿透成了黑盒子,你配置了后端虚拟机,还有什么,你想想。那就是域名解析了,对吧。**把后端对象里的所有域名解析到公网的内网穿透服务器就OK了。** 记得把`##成为内网穿透客户端`前面的两个#号删除。 知识给大家讲完了,很遗憾没有给你展示安装配置过程,但你懂得上面的知识后,我相信你会搞定它。祝你好运,我是官方。 ## 总结 前半篇文章与大家讲解了互联网网络划分的背景,还有内网穿透原理,后半篇文章讲解坦克AW内网穿透的3个知识点。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1784 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传