00:00
好,下边我们得说一下这个事儿叫内网穿透。我们先说一下啊,咱们先说说我们正常的。平常我们普通老百姓上网啊,最最常规的一种这个方式。常规方式是啥呢?就是。我们在内网当中发请求啊,经过这个路由啊,DNS啊等等这一系列的这个各种设备,各种节点。去找到外网上面的一个。呃,网站啊,去把信息发送给他,这是我们的内网啊,我们简单来说呢,我们常规的方式上网就是通过内网去访问外网。说着简单哈,它内部真正的话,它要经过很漫长的线路,需要经过很多种的这个设备啊,那这个时候就是说软件硬件的涉及到就很多,咱们只是简单的来说一下啊。
01:10
内网里边的一个,假如说是PC机好,是你的手机好啊。他发请求,给我们外网的一个服务器发请求。哎,然后呢,它会返回响应给你,谁请求他就返回给谁。这是我们常规的一个上网的方式。啊,那么。我们这个项目呢。如果想要被别人在外网上访问到,那么我们就需要把它发布到这个外网上啊,这里边儿就是一个项目的一个发布的常规的方式。
02:01
我们再介绍一下项目发布的方式。项目呢,需要我们进行这个开发。这是我们的这个开发工程师。开发工程师。啊,我们就每天噼里啪啦的就写代码。啊,我们写完代码,我们会提交到什么呀,版本控制服务器上。你是SV也好,是这个gib也好啊,是提交到版本控制服务器上。啊,每个开发工程师呢,你的代码呀,你自己负责的那部分,你是维护的是很很到位的,但是呢,不归你负责的呢,在你自己电脑上你就不太管了,所以说每个开发工程师呢,在自己电脑上面吧,它这个代码呢。都不能够算数啊,都不能够是以某个开发公式,它自己电脑上的代码为准,我们都是以版本控制服务器上面这个代码为准,所以说呢,版本控制服务器上面这个代码,我们会根据这个代码呢去打成一个挂包。
03:08
假设啊,当然这里边儿如果是命布的话,它就是一个价包。我们这儿打成一个外包。这个外包呢,把它部署到我们的这个服务器上。当然了,这个时候其实哈,真正刚真正刚开发出来的这个代码呢,它先部署到我们的开发环境啊。先放到我们开发环境的服务器上。为什么放到开发环境服务器上呢?因为以我们分布式架构来说,你写的这个模块别人是需要去调用的啊,所以说呢,别的开发工程师他需要去访问我们开发环境的服务器啊,然后他写的这个模块呢,才能够才能够进行这个他自己本地的一个测试啊,所以这里边儿这是一个A。
04:00
这是一个B。哎,B开发工程师,他开发了一个B的这个模块,B的这个模块访问开发环境服务器去调他写的那个模块。然后,然后呢。还有我们还需要去,如果是一个相对比较,哎,我们自己本地测试觉得OK以后我们会发布到一个测试环境的服务器上。为啥测试环境服务器和我们开发环境服务器会分开呢?并不是必须分开啊,而是通常会分开。啊,不排除一些个小的团队的话,也可能部分了啊,因为开发环境相对来说呢,它会更新的比较频繁啊,这是相对来说啊,那么测试如果你测试工程师按我们这个环境去测试的话,他还这个版本可能没测试完呢,他就已经变了啊,就会给测试工程师带来极大的不便。所以说呢,测试工程师哈,他是以我们测试环境的服务器为准的。啊,他去访问测试环境去测试看看呢,有没有什么问题。
05:06
发现问题以后会怎么办呢?诶,他会发布到我们的bug管理的那个软件啊,是也可能是邮箱,反正是这个各种工具就很多了。Bug管理的软件。哎,当然这时候呢,不一定是哪一个了啊,就是他反反正是通知到开发工程师,你去修复这个bug啊,然后呢,再再开发完啊,对这个画质比较好啊,就是在你在修复这bug,再提交它再部署上去,再测试啊,这是一个循环,如果没有问题的话,那么我们就再把它放到我们这个生产环境服务器上。
06:02
哎,那这个生产环境的服务器呢,它也是也是根据我们版本控制服务器上面啊,这个拿到的加包呢去部署的。哎。生产环境服务器和我们这些服务器就有很大的区别了,哎,我们测试环境服务器,开发环境服务器啊,都是在我们的内网就可以了。你把这个再往上一点。这些就在我们内网就可以了。这改成虚线。而我们的生产环境的服务器呢?哎,他需要在我们的外网啊呃,在外网你才能够让我们的就是最终的用户,真实的用户呢,去能够访问到。
07:01
哎,当然用户访问以后,他在用的过程中呢,也会生成一些个用户行为的数据等等啊,然后我们会根据这些个信息呢,用户行为反馈啊等等各方面再去修正,再去重新去开发,再去测试啊,所以说呢,我们。实际开发过程中,它会有这样一个过程啊,它需要。经历过我们内部开发的这样一个流程,完了以后它会部署到我们的这个外网上。啊,从从内网过渡到我们这个外网的这样一个过程。那么他到外网以后,我们这个,我们这个项目部署到这个外网的生产环境服务器了,那别人假如说是像支付宝这样的接口,他要访问我们,那么我们也在外网,他也在外网,那他当然就可以来访问我们这个,就这个是没有问题的。但是呢,我们现在是还没有发布到外网啊,只是在我们这个内网里边去开发去测试啊,那这个时候呢,你支付宝你怎么能够访问到我内网的这个服务器上面这个项目呢,这就是一个问题了。
08:17
我们在这说一下啊。呃,常规上网的方式说我们内网在内网中访问外网,这个是很方便的啊,这个只要你上网了就行,装个宽带或者手机的WiFi啊,手机的热点。嗯。那然后呢,这个项目发布的方式呢,是先在内网的环境中完成开发,哎,在发布或者说叫做这个部署到。位于外网的这个生产服务器上啊,有这样一个过程,所以说呢,现在的问题就是我们正在开发过程当中。
09:08
我们的所有这些环境,我们都在内网里边,那现在支付宝要来调,我们这咋办啊?哎,我们现在面临的一个就是面临的一个特殊情况。啊,我们现在在。内网开发。哎,这个环境下需要让支付宝来调用我们内网中的啊这个呃项目。呃,他是他在哪儿呢?是他是在外网的。啊,这个需要让外网的支付宝调用我们内网中的项目,就是说这个如果不采用特殊的呃办法啊,不做特殊的处理的话,这个事儿是这个事儿是做不到的。
10:09
哎,特殊的这个处理。嗯,这个是这种情况。是访问不到的啊,这个访问不到那么。我们要这个时候要采取一个什么样的一个特殊的手段呢?哎,就是我们所谓的内网穿透。哎,啥叫做内网穿透呢?给大家先介绍一下啊,比如说呢,我们现在哈,呃,就是在内网里边,我们有一个项目跑起来了啊,就是说反正是也是在一个服务器上跑起来的,它是一个我们在内网里面的,就在咱们自己本机上边。哎,现在呢,是想通过这个外网啊,外网的服务器想让他来访问我们这个内网的服务器,这是我们的需求。
11:08
哎,这边我们去画一个箭头。给它改成这个虚线。啊,这是我们想的很好,但是但是直接访问这样是访问不了的啊,外网是没办法访问内网的,你把你的IP地址告诉他,幺九二点幺六八点幺零点一百是吧,这个这个IP地址他访问不到啊,这个IP地址他访问不到。呃,这是一个技术上决定的啊,它就是访问不到啊,你这个再往细节的话,你就需要去了解这个网络方面知识了。啊,那么我们就可以借助于什么呢?我们去借助于其他的这个外网的服务器啊,这个服务器是谁提供的呢?是这个叫做内网穿透的服务提供商。哎。内网穿透啊,他提供的这样一个服务器,他们都在外网,那么这个时候呢,我让他去访问这个内网穿透的服务器,这个是没问题的。
12:09
然后呢,我们这儿呢,再装一个内网穿透的客户端。内网穿透的这个服务器和内网穿透的客户端,他们之间呢,去建立一个隧道。哎,这个是能够访问到的,然后呢,这个客户端呢,是在我们这个内网的,那么这个时候呢,他就能够去访问我们的一个。哎,内网的这个服务器了,所以说等于说是这样绕了一下啊,这就是我们内网穿透就是这样一个效果。哎,所以说这里边儿哈,我们就需要去借助于很多个。内网穿透的就是,呃,很多内网穿透的工具当中呢,我们去选择一个来用。
我来说两句