00:02
好,那我们在前面的课程中呢,学习了SSH服务啊,这个SSHSH服务呢,它不仅仅可以实现自己和远程主机的基于SSHSH协议的安全通讯,还有一个非常好的功能,它可以帮助那些不安全的,不加密的协议来实现安全的通讯。之前我们看到过,传统的很多协议是不加密的。啊,你像TT协议、HTTP协议、SMTB协议,早前很多传统协议都不加密,在公共网络中去传输这些不加密协议是很有安全风险的。
01:06
那么,如何来保证这种非安全协议的?安全通讯,那么由于这些协议天生是不加密的。所以我们没有办法把它直接变成加密的协议,而SSH协议提供了一种所谓的隧道功能。这个隧道。大家可以想象一下那隧道是什么样子。隧道不就是挖了一个通道是吧,这个通道里面可以啊走汽车呀,啊走火车呀,这都可以走。那SH的隧道功能。就是利用SS的协议。挖了一个安全的隧道。这个隧道是由SS协议来实现的,然后里面走的东西就是非加密的那些不安全的协议啊,比方说我把T的协议的信息。
02:12
在SSH协议里面去走,有点像咱们说呢,挖了一个隧道,这个是外面是基于SSH协议的。由于基于SR协议,所以隧道里面走的协议即使安全不安全都没关系了,因为他被SS保护住了。啊,现在外层加了个壳啊,所以这就是SS协议的一个非常好的功能。那我们可以这样去理解,就相当于把以前的话呢,我们是数据放在这个协议里面,现在无非就把它变成那些非加密的协议。啊,当然这里面也包括数据啊,你像这个T里面是不是自己有数据啊,就说外面再加了一层。
03:02
就是一层套一层啊,俄罗斯套娃是吧?啊,一层套一层啊,不管怎么样,咱们能保证你安全不就得了吗?啊,这就是咱们说的隧道功能。基于这个隧道功能呢,咱们可以。有多种实现方案。那比方说由本地端口转发,还有远程端口转发。动态端口转发I协议转发有很多种。本地端口转发他的逻辑是什么呢?啊,看一下这个图。啊,我这曾经画过啊,就看这个吧。这个。
04:00
往这边挪一挪啊。这个本地端口转发是这个意思。在企业内部呢,有一个非安全的加密协议的服务器啊,比方说是HTDB服务器或者T的服务器都可以。啊,这个协议它是非加密的。那我们远程有一个用户想去连接这个企业内部的非加密的服务器。啊,比方说比较典型的htv t net,那我这个把它换成t net吧,Tnet大家知道远程登录用的一个服务,把它换成t net啊,当然这个HTB也可以啊,HTB也可以啊,我把它换成t net。由于这是企业内部的服务器,所以有可能我们会面临一个问题,就是这个服务器由于在公司内部,所以它和公司外部的网络之间是隔离的。
05:07
那通常来讲呢,企业内部的网络和外部网络中间都有防火墙,这是防火墙。防火墙上面一般来讲定义了非常严格的策略,大部分的防火墙一般都是出比较方便,从内往外走,基本上控制的比较松,但是从外部要进来,这个就进不去。比较严格。啊,就很少能进来,只是特定的几个协议能进来啊,比方说SSH协议可以进来,别的协议进不来,你看我这有一个这个T的服务,这个进不来,在咱们的防火墙上呢,做了安全策略,当然这个策略呢,实际上也容易理解啊,要想控制T的协议,这个地方进不来,那怎么去控制它呢?那实际上很简单,那就是。
06:02
在防火墙上把从外往外进,往里进的流量,目标端口是tne这种端口,二三端口是不是给他屏蔽掉就进不来了。对吧,哎,那这个好理解,那这个我要给它改成t net,因为t net大家做过实验,那我们知道telnet可以远程登录也可以。是非加加密的协议。这个地方我也把它改了。那么如果我们的目标就是希望能够让互联网的用户通过Internet能连接我们企业内部的这个服务器。那么我们都知道,如果即使直接能访问这个服务器,即使能穿过防火墙能进来。
07:06
那么我们。面临这个风险就是互联网的用,用户穿过公网到达企业内部中间这个网络是一个公共网络,这个公共网络去走这种非加密的协议是很危险的,是不是很容易被别人。截货对吧,看到你的用户名密码。那为了解决这个问题呢,我们就用SSH的这个隧道转发功能,那怎么做呢?这么做大家看我是这么来实现的。我在这个机上。它上面有SSH的客户端。我呢,让这个机器和这边准备一台机器。这是个S2空器,中间给它建立一个SH隧道。
08:03
建立SSH隧道之后,那么这个SSH协议呢,是加密的,中间传输数据是不会有安全风险的,那就是我在这个地方给他建一个隧道。就这个机器。和。这台机器之间。这台机直接给他挖一个S2隧道。实际上这个隧道实际上就是SSH连接啊,就是我这台机器S到这台机上去,但是我这个SSH并不是自己为了S连接的而建立的,是为了让他中间去跑那些非加密的协议的。那也就是说我们在这个里面可以允许他跑非安全的协议。啊,我比方说把T的协议给封装在里面,这样的话呢,我们用S协议把T的协议进行加密。利用这种安全的协议就可以在互联网上进行传输,不会担心网络中黑客截获咱们这个密码呀,口令信息呀,这个用户信息,这些都不用担心了,哎,这就是一个隧道的功能。
09:16
当然这个隧道功能具体怎么实现呢?那就是在我的这个远程的客户端上,这是S客户端,这边是S服务器。他会打开一个端口,这个端口由你指定。啊,比方说9527,找一个没人用的端口。打开这个端口以后。它会自动的,只要我走,哎,9527端口有人发请求到9527,那么我就会自动的把这个发往9527的数据通过这个S隧道发送到这边的S2服务器上去,而这个S2服务器收到以后,他并不会自己接收这个数据,因为他的目标是为了建立隧道,他最终的目标是为了把T信息发到这边T服务器上去,所以这个服务器收到以后,他会把SS的协议发过来的信息给他拆拆拆拆开。
10:11
就把外面的S协议拆开,那这样的话呢,到了这边以后,这边S服务器在充当一个代理功能。把SSH协议拆开以后剩下的tnet,然后把TT信息再转发给真正的T服务器。在这段过程中。相当于SL服务器替代了客户端,他来充当一个伪装的他人的客户端,然后发请求到这边服务器,对于这个服务器来讲,他认为他认为S的服务器在通过他人的连接,它实际上是这个机器。再发起请求连接tnet,但是这个服务器看不出来,这个服务器以为是由他来发起的。
11:02
那由此我们就可以通过这种。隧道功能,把tnet这种不安全的协议穿过公网,不用担心黑客截获了,当然有一个安全风险啊,就这块,这块是不加密的。就是这个SL服务器到T的服务器之间,这个是铭文telnet传输的。当然这个风险就小多了,因为这是个公司内部网络,对吧,内部网络安全多了啊,那这个呢,就叫本地端口转化。之所以叫本地,就是因为我们SSH命令执行的时候,SSH这个客户端它是在本机这个9527端口,就在本机打开这个端口啊,叫本地端口转发,就是你发往我本机的9527端口的请求啊,我这个data发往本机的9527请求,它自动的会利用这个现成建好的隧道发送到远程的S6服务器,而SL服务器收到以后也会自动的把S协议拆分。
12:06
拆开里面是SMT,就是里,里面是tnet,它就给你转到tnet这边服务器上,里面是别的协议,他就利用别的协议给你转发,就这样的意思。啊好,那下面呢,我们就具体来看一下相关的实现啊,这个实现呢,命令非常简单,就一条命令。就有这个命令,在SS客户端上执行这个SSH命令L,就是说本地端口转发。然后这个呢,就是我们说的那个9527端口啊,当然这个端口呢,是在S客户端上打开的,你要确保这个端口没有人使用。啊,你先看一看有人用没有这个端口,没人用你就写个没人用的端口,一般是一个比较大的端口,那这个呢是远程主机,这个远程主机是谁呢?远程主机就是刚才我们说的这个目标,最终你要连接的机器就是这个机器,是最终的机器。
13:03
啊,那最终的机器它上面有个端口对不对,哎,那哪个端口呢?哎,T net的端口号我们都知道是二三。这儿就要写上最终机器的端口。然后我们并不是直接直接到了最终这个机器的这个端口,而是通过什么S服务器建立隧道来实现,所以这个地方要写S服务器的地址,所以这个并列显得比较长啊,那这里面涉及到四项内容。在S2客户端上打开端口、真正目标连接的服务器、真正目标服务器的端口和借助于远程S2服务器是谁四项来实现。好,那下面咱们就来给大家实现一下,当然实现这个呢,需要有三台机器啊,我这儿正好。我就拿。
14:02
18。二八三十八。我就拿这三台机来实现了啊,实际上无所谓啊,拿678座也可以。好,那我去连接一下。
15:02
啊,这个外面现在经常是不是就出现这种问题,你刚起来明明地址应该是没有问题的,你看地址没有问题啊,有的时候就连不上去啊18这个我们说过啊。这外面最近这个版本啊不稳定,把这个网卡呢,禁用一下,启用一下,这个是外面我觉得最近这一段版本有这个bug。这也不是什么Linux的问题啊。
16:03
好,那我现在呢,来拿这三台机器啊,呃,这边机这个机器呢是28,那这个28呢,我把它呃改名,改名叫咱们局网的夫妻。局网,哎,这个局网服务器呢,就是我这画图的这个这个机器就是这个t server,明白吧,局网的服务器。好,我把它改一下名,这样的话大家看的清楚,那这个呢,是咱们局域网的那个SN服务器ss server。
17:11
啊来了,这个呢,是我们远程客户端,就是在互联网上最新版的是吧,我这个应该不是最新版的吧。反正这个这个最近这个版本确实有问题。05:15点5.6应该是最新的了吧。应该也是最新的了,这边可以检查更新软件更新,你看没有更新是最新的了。好,那我们把这个主机名给他改一下啊,这个呢,就是互联网的客户端啊,就叫Internet吧。
18:06
好,那现在可以看到我现在组织的这三台机器的角色,相信大家能对比出来啊,就是刚才我给大家画图画的那个三个机器,这个机器。这个机器,这个机器好吧,啊。现在我们三者之间是没有任何连接的,现在这三三台机器之间没有连接。都是和Windows在连,那这台机器呢,我去把那个开的服务装上。那胎服务装上以后呢,我们把它启动起来。
19:05
啊,看一下端口。二三打开了。那我这边呢,有一个王账号啊。我现在直接去连接用二八直接去连tnet网络账号,因为我们现在没有做任何的安全防护,所以现在应该是可以的。啊,要慢。好,可以上去,那为了模拟这种场景,我们刚才说假设呢,这个局网中的这个机器是不允许外界直接连的。啊,所以我们为了模拟这个场景呢,我们故意加个策略,禁止这个十点点八的直接连接,那禁止它呢,我们可以加一个防火墙策略。
20:09
这个命令可以来防止拒绝某个远程主机的连接杠,S是原把八的请求直接拒绝,这样的话呢,八的这个机器就连不上去了,那连上去了。啊,这就模拟了刚才我们实现的这个初步场景,我们环境就搭好了,那么搭好之后呢,我们现在就想利用刚才说的那种技术,叫本地端口转发来实现。那这个命令呢,非常特殊啊,是大L,这个执行大L的时候呢,先看一看你的本机有哪些端口正在用。大家看我这个端口用的不多啊,二十二二十五也就这几个,所以呢,随便找一个没人用的端口就可以了,比方说我就用9527吧,9527对吧,然后这个地方后面跟个冒号,再跟上你最终要连接的机器,我最终连接的机器是那个28是吧?啊,那我们就28啊,它的最终这个二三二十八端口,28服务器上的是二三端口,就是那T的服务。
21:26
当然,我们是借助于和18之间的S服务器之间的S隧道来实现的。所以这个命令就是这个命令。那这个命令呢,你敲完以后,他一回车,他就会让你SSH的登录到18上去,那实际上这个我们并不想登录,我们只是为了建立一个隧道而已。所以我们为了解决这个登录,并且我还希望在这个当前终端里,我还要接着去执行T的连接,所以我们可以加上一个F和N的选项啊,把这两个选项加上,但是你要不加的话,它就相当于登录上去了,建立隧道的同时也登登录到18上去了,那你要是在这个地上再去做事,你还得再开个终端,这个比较方不方便啊,所以我们这呢加了两个选项,我不想登录啊,那么一个是后台执行,一个是不登录,看到没有F和N,把两个都加上。
22:24
那加的话呢,我们加在这个前面。FN。啊,当然这个地方要输入18的口令,因为你和18建立隧道,那18凭什么给你建隧道,对不对,你得输密码啊,好,这时候呢,这个隧道就建起来了。啊,由于我们是用后台执行F,所以呢,你这它建立了隧道之后,它并不会占用你的终端资源,我们来看一下这个隧道是不是建好了。大家看是不是八和18之间它有一个S是连接键的呢。
23:04
能看出来吧,啊,这不是S连接吗?哎,那这个隧道就拉起来了,就相当于建了个桥梁,就八和18之间拉了桩,这个这个建立了一个SSA的桥梁,然后你这里面就可以跑协议了啊,你可以跑那些不安全的协议了。当然呢,现在请问这个目标的28G以上有没有人在连它,有人在连吗?那目前还没有,因为你还没有发起China的链接嘛,所以这个地方是看不出来的啊。所以这看不出来,这没有好,那现在我们就可以用tan连接了,Tan连接谁呢?诶注意连接的是我本机的9527端口,大家看这是不是开了个9527端口。看到吗?这个927端口就是一个入口,你不是有个桥梁吗?啊,你个隧道吗?那隧道的进口是谁啊,进口就是9527。
24:06
就是只要发数据包到9527,他就知道你要进隧道了,你不不往9527发,他就不知道你要进隧道,对吧,这个就是隧道的入口。你只要把数据包扔到9527上,他就给你直接走隧道给你传过去了。哎,有点像管道的那种感觉是吧,从这口进去咔给你传到那边去了,那试试啊,是不是这样,那我们就连接一下本机的9527,当你一连本机的9527,实际上它就会。利用隧道直接发往。这个经过中间的S服务器,并且收到。这个请求以后,S服务器再把它S协议里面的内容拆分开,进而还原成传统的T,再交给目标的呃LA server,所以这个过程全是自动完成的,我们来看是不是能实现。
25:04
啊,你看看这边是不是有人连回来了,看咱们最终的这个机上是不是有人在连,谁在连呢?你猜猜谁在连,你看看是不是18在连,大家看他认为18在通过T协议连接它。但实际上真正连的是不是应该是八那台机器,所以这个18就是一个代理服务,呃,是是不是18就相当于一个代理服务器啊,就代理你啊,我帮你做,你就直接连不上,我帮你连,哎,当然呢,这边我们看一下他这相当于是这个一边用S协议连八,一边他用T连接是228是不是你看两边那两边走的协议不一样,一个是S协议,一个是T的协议,相当于就是。起到了一个网关功能啊,有个代理人功能啊,但是这边应该连上了,你看这边是不是登录用户名密码出来了,你看这个是谁,是不是就是28看着了吧,28啊,当然你要正常输用户名密码就行了,就连上去了,看我现在是不是连上去了。
26:14
看了吗?大家想这个就是所谓的本地端口转发,这就实现了。那这个本地端口转发,他可以让互联网的用户利用SR的隧道来传输那些非加密协议,呃,非加密协议,当然我这是举了一个t net啊,那事实上咱们局域网里面很多非加密协议都可以走这个,比方说如果是SMDB协议,那就是二五端口啊,那如果是这个SHTDB协议,那就是。八零端口啊,八零端口,那咱们也可以再加个桥梁,我再加个桥梁走HTTB服务,那这边我再加一个,我再装一个HTBHV服呢,大家比较熟。
27:12
我把服务装上。好,然后呢,我起个这个LA web,就是比如局域网的那个网站啊,那现在呢,我们作为远程的主机,它直接无法访问,这边是无法直接访问的,因为我刚才我们加了一个策略,你们记得我加了个策略吧,加了策略时候不让八来直接连接对不对,所以他直接连不上去啊,我刚才这加了一个这个安全策略,就是加不上去,连不上去。啊,我刚才这加了一个策略,这个八是直接连不上去的,只有18能连。
28:03
啊,你看我这块一下,这个块是咱们命令行的浏览器,咱们平常在测试的时候,经常这种用命令行的浏览器,你看连不上去。啊,当然这边可以连。中间这个18是可以连的啊,它可以连看了吧,它可以连。好,那现在我们就再开个隧道,刚才这个隧道只能走T,那那现在他又希望走HTTP,那怎么办?再开个隧道呗,那隧道呢,命令无非就是再换一个,那这个端口不能是9527了,因为9527对应的是那边T难是不是,那我再再开一个找一个9528吧,我随便找一个,那没人用就行是吧,666666,你们喜欢666是吧?666,那666就666,那这边呢,目标是不是应该是28的八零对不对?哎,那么当然是借助于18来连的,就命令还是无非就换个端口嘛,对吧?啊,这时候还得输一遍密码啊,那这时候呢,隧道又建起来了,注意它和二八之间又建了一个新的隧道,这个隧道。
29:14
是纯粹为了走什么呢?走这个HTTP协议的啊,那这回咱们试试吧,当然这个端口呢,我们刚才映射的是九十六六六是吧,666好,那所以我们去访问的话呢,就应该访问我本机的127的0.0.1的666听了吧。6662这个call命令默认是走八零,但是因为我们现在走的不是标准端口,因为我是那个入口是666,所以我就得走666,听了吧,哎,看过去没怎么样,成了吗?你是不是就轻松的实现了这样的一个。通过公网走这种不安全的协议没问题吧,没问题啊,没问题。
30:03
那当然,那请问大家一个问题,在这边的服务器上,他认为谁在访问他啊,他有一个访问日志,这个访问日志记录了谁访问我啊,这个地方它有访问日志的啊,这个访问日志呢,我们可以跟踪一下,你看他认为18在访问吧,不是八在访问,虽然真正的发起者应该是八,但是呢,这边认为是来自于18,看懂了吗?啊,实际上就是还是代理的理理念啊,就是代理理念啊,代理理念就是你直接过不去,你找个中间人帮忙嘛,是吧,托个人托个人走个后门是不是来帮忙啊,这就是隧道功能,明白了吗?这个网络中你截获,你截获不了它的非安全协议啊啊这个网络中传输的信息你是无法去解密的,因为它中间走的是S协议,你要解你顶多能截住这段的,这段它是不加密的啊啊这就是咱们给大家讲的这个。
31:18
HTTPHTDP,好,那我们这个网络环境呢,虽然说确实挺好,但是有一个缺陷啊,什么缺陷呢?就是我们实际工作中这种应用场景不是很多,为什么呢?因为我们刚才是通过远程的客户端SS协议和这边建立了一个隧道,那么你这个RSSH协议能不能进得来,这往往是个问题。因为防火墙通常来讲,一般都是出可以出,进很难进,不让进。所以你的协议可能进不来听了吧。进不去啊,进不去的话呢,那你就隧道是不是就建不起来,哎,建不起来。
32:02
那这时候呢,往往就是公司里面有一些员工出差了,出差以后呢,他想连企业内部的服务气啊,你是公司的运维,那你希望他给你打电话说诶我想连这个服务器,我连不进去啊,这个防火墙它这个这这进不进不来啊,那但是呢,这个防火墙的这个安全策略呢,又设置了说不允许22端口直接进来,进不来,那进不来,那么这边。就很难让这个互联网的这个人去连接公司内部网络了。啊,这个就不容易做到了,那当然你要是非得要在防火墙上把这个端口打开是可以的,但这个防火墙一般来讲,公司里的防火墙策略不是说你想改就改的了,而且一般的公司,大一点的公司,人家都有专门的网络运维,网络运维公司有安全制度,想开哪个端口不是说你你你随便一句话就能开的啊,当然你要是运维那好说了啊,你要是网络这个公司所有运维都你管,那行了,问题是不可能的,对不对啊,这块你不管管不了,那怎么办呢?诶另一种叫远程端口转发,远程端口转发它的实现逻辑呢,也是这个图还是这个图,图是这个图啊,但是呢,我们这个角色变了。
33:25
把这个角色变成了另外一种角色,就是这个呢,不是SN服务器了,而是变成了SH的客户端,而是变成了SHSH的客户端啊,看一下这里面没有画出那个图来啊,我把这个图重新来,我到这边来。
34:24
好,我给它挪到上面去看看,慢的近一点。好,这个图呢,稍微改一下,改成了这样的一个功能,这个是个服务器,但是呢,它的角色不是服务器,而是扣的。这个呢,还是互联网的机器,但是它充当的是一个SHSH的服务器。这是个互联网的机器啊,我写成写成。
35:03
In Internet。好,变成了这样的样子,对,最终我们仍然是为了让英泰的这个用户能访问企业内部的t server,但是呢,这两个隧道还是该建进建立,但是这个隧道建立的时候,谁是S服务器,谁是客户端发生了变化。这边是个SL服务器,而这边是个SL客户端,听到了吗?就角色变了。当然我敲命令的时候是在哪敲呢?我是在这儿敲,我在这个地方来敲命令,命令远程的这个英特Internet的这个机器,哎,他打开一个9527端口,然后负责有人发起请求到这个远程的Internet这个9527的端口以后,它自动的和我当前的这个机器建立隧道功能,然后我这个机器收到隧道这个发过来的S请求以后,哎,我把里面的隧道协议给他拆开,然后利用这个协议再给他转发到真正内部的企业服务器上去。
36:14
那由于我们这边是艾特客户端主动去连接互联网的用户,所以我是出去的流量我去。互联网,所以大家都知道防火墙是不是出去是很容易出去的,有意思了吧,因为我是从内部,我是客户端嘛,那对方是服务器,我出去建隧道不就行了吗?你从外往里建隧道不容易建,但是我从里往外建隧道方便。因为从企业内部往外出,这个是可以的,那这不就解决了吗。这就是建隧道的逻辑,不过呢,这时候呢,敲命令的时候一定是你在你坐在这台机上来敲,因为你是S客户端了,这边是S服务器,理解了吧,好,那么刚才那个环境还是那样的环境,只不过就是敲命令的位置变了,我在这儿敲端口是在远程机上打开,所以叫远程端口转发,听了吧,不在我本机打开了。
37:12
啊,这就是他背后的逻辑啊,当然我们要想实现的话呢,还是刚才这个案例啊,我这边呢,把刚才的隧道给它关了啊,刚才隧道呢,都在,大家看这个隧道还在,那两个隧道还都在建着呢,我把两个隧道关了,关了的话呢,实际上是两个后台的S日命令在运行而已,把两个命令关了是不是就可以了,看见没,那关了以后那个隧道是不是就断了,相当于啊,那我们就把它关了不就行了吗?当一旦关了以后,你看是不是隧道刚才建的隧道就没了啊,当然我这个端口有一个9527端口是不是也关了没了。好,注意现在敲命令的时候,是不是在英特尔那个机器上敲,而是在那个咱们局网里的这个服务器上敲这个,当然这个服务器呢,这个角色,这个名字就不能叫换个名字吧,这个应该它不是S服务器了,这是相当于是个SH的客户端了啊,所以我把名字改了,那这边应该的这个机器从将充当的是S服务器,听了吧。
38:24
啊好,那这样的话呢,我们这个环境还是这个环境啊,图还是这个图,只不过就是角色变了一下,那现在我要建隧道是从里往外建,而不是从外往里建,主动发起请求的是我们局网的这个SR的客户端,这个机器啊远程。端口转发要用的是R选项。R,然后这儿就是英这台机器。以及它的端口情况啊。这个是Intel的那个机器打开的端口,然后这个呢,就是最终希望它连接的目标主机目标端口。
39:08
这就是英泰的一个机器,S服务器。S服务器。好,所以我们现在来执行一下这个命令杠R,当然我们也是加上的两个选项FN,哎,那一个这个端口将在英特尔这个机器上打开,当然这个机器上呢,呃,有好多都没用,那我们就换一个换一个端口吧,这回换个啥呀?来个八是吧,来,那这应该写谁呀。这写谁?那刚才我讲了半天了,这写谁,这连接的是最终那个目标机器,最终你为了连谁,你这个拉隧道,你不是为了自己建隧道的,你是为了连谁,是28,是不是28是最终的,假如说目标是那个28升的八零服务,就是HTP服务嘛。
40:10
啊,这后面跟什么,这谁呀,英山这台机器吗?你这个端口是在十点上八上来建啊,这个四个八的这个端口将在十点上八上来建。那十十点十点零点八呢,它是个S服务器了,相当于啊好走。输入10.8的IP对应的密码连上去了,连上去以后呢,这个隧道就建起来了,我们瞅瞅啊,隧道建起来没?你看这时候18是不是充当的是S2的客户端,而八充当的是S2的。服务器22端口看见了吗?这不一样了吧,啊,然后这个隧道建起来以后呢,这边看看四个八的端口是不是打开了,看到没,是不是打开了,然后这时候呢,你去访问的话,是不是就访问本机的什么四八端口不就行了吗。
41:11
当你一访问四个八端口,这就是那个隧道的入口,一进八四个八,他就给你直接走协议,给你扔到那边的这个,哎SH客户端,然后那边拆开以后给你转到那个二八上去了。对吧。那你看是不是过来了。对不对啊,当然对于我们的目标服务器来讲,他认为谁在访问中间,是不是还是中间那台机器,只不过就是这个隧道啊,呃,这个还是原来这个隧道啊,只不过就是这个谁是S服务器,谁是S后端变了而已,那隧道还是一样,还是一样理解了吧,那么这个技术呢,是比较实用的,为什么呢?因为这个技术我们从内往外建隧道是很容易的。因为从外往里进,往往防火墙的原因可能进不来,对吧,但是从里往外走,这样的话就可以轻松建立隧道了啊。
42:12
但是呢,这个隧道目前来讲只能是实现了点对点的隧道,什么意思啊。那这个点对点的隧道说的是我本机的这个端口和远程主机的隧道。它不能实现别的主机,利用我这个机器来建立隧道。那这个是什么个概念呢?就是我刚才拉了一个隧道啊,只能是走我本机,就是我自己的这个,呃,IP地址端口,你看他走的是127,为什么127啊,因为这个你看这是不是写的是127,那这个127的话,是不是就是意味着你只能自己访问自己的127的八八端端口,你别人绑不了,也就是说你挖这个隧道只能自己走,别人走不了。
43:03
那当然大家应该想到了一个要求,就是我们能不能说你家拉个隧道,能不能让别人也走一走啊,啊,啥叫别人走啊,那这是不是我们再准备一台机器啊,比方说我这个手机啊,或者是平板啊,我能不能利用你来走一走啊,我能不能发请求到你这,利用你的隧道把我们两个人者连接起来啊,就是我最终的目标是这个机器,这个手机也能连到企业内部的服务器该多好啊,这是不是就相当于你建立一个真的你拉了个建了一个大桥一样,这个桥你可以自己走,也可以让别人走。是不是这个道理啊?哎。这样的话是不是就感觉修了个隧道,也大家可以都走嘛,对吧?嗯,那问题是我们现在做不到,为什么127。127的话是不是就只能是自己走,127的地址不就自己吗?别人连不上。
44:08
那所以要想实现这个功能怎么办呢?哎,那我们需要再加一个选项。这个选项就是这一选项。开启网关功能。那开启网关功能,那就意味着你这个隧道是可以走别人的流量的。你看了吧,哎,这就是我们刚才画的这个图,这个你看我这个机器不仅自己能连,我这儿还有别的机器,别的机器利用你的网关也能连。啊也可以连,不过呢,这个网关功能需要可能要单独配一下啊,需要把它打开,不仅要端口映射这个这个刚才的这个这个呃,功能打开,而且还要改配置文件啊,这个我们待会再说,那我们看一下这个选项加的话呢,非常简单,只需要加个这就可以了。
45:07
那加上加上这以后呢,它就绑定的IP地址就不是127了,而是我本机的所有IP啊,那这样的话呢,我的IP那谁都能访问吗?那当然我先把这个刚才的这个连接先断了。啊,我这没运行是在这边开着的。这这边运行的啊,这个隧道就断了,看看隧道断了,隧道一断,那么这边的四个八端口是不是再不再监听了,对吧?那这时候我们重新执行一下刚才的命令,不过呢,这个时候呢,加个命令就加个选项啊,加个什么呢?勾选项G选项,这是网关。一旦加这个,你会发现它和刚才有一个细微的差别,差别在哪呢?你看看就知道了。
46:06
呀,没成功啊,这还是九还是四个八,那说明我们加错位置了。他这个G的这个前后次序可能有关系。嫁到这来。加到这儿来看看行不行。他这个前后顺序有的时候有要求啊,再看一下。那不行,那加到最后。我看我这是咋加的啊。就这啊。设置这还要加一个这个设置这个需要加一个这个,呃,SH的配置文件,要不他不让改。
47:04
要不然他不让改啊,这个开关它打不开,那我在这边来改一改啊。他这边有一个SSH的配置文件,它里面有个网关功能叫DB,哎,这大家看默认网关是关闭的,把这个网关的yes一下啊,然后把服务重新启动。好,那看在我们刚才再看一下。好,敲完了再看一下,哎,这个可以了。那也就是说这个必须改配置文件啊。
48:01
不改配置文件不行,大家看这个是不是000。哎,四个buff出来了。那既然四个八出000了,那我是不是别的机器就可以利用它了,比方说我再来个七的机器,这个七的机器呢,我们可以把它想象成就是刚才说的这个这个角色,就这个手机这个用户知道吧,手机用户通过他把这个隧道,利用隧道进行传输。啊,那我们来看看能不能成啊。啊,当然这个七的机器呢,要访问的地址应该是谁呀,请问。谁的?就是八的吗?就是八的吗?这个我们刚才说了,八八这个端口就是入口嘛,就那个隧道的入口嘛,你只要你你不用管它中间怎么走的,你扔到那个入口,它就给你直接转过去了啊。
49:02
这就可以了。然后当然这边呢,我们最终看到的用户谁在访问。谁在访问还是18对吧,还是八啊,你这这头这头进去隧道传过去,那边给你拆开,所以还18来完成最终的访问啊好,那我们来看一下是不是成功,看成了吧,当然这边看是不是还18再连。看明白了吧,这就是隧道。啊,远程过程调用远程的这个端口打开啊,远程端口转发啊,这就是刚才给大家演示的啊,远程端口转发。呃,这个呢,我们在工作中出差在外的用户还是非常实用的。啊,有的时候呢,比方说有开发出差了,想连公司内部网络,他连不进来。
50:03
哎,这时候呢,你就可以用这种方式轻松的就可以帮他实现了,很简单啊。好,当然我们这个并没有实现,大家更关心的功能就是什么呢?科学上网。那接下来我们来说说大家可能更喜欢的,目前你可能比较关注的就是科学上网功能啊,大家看一下这张图,这张图这是咱们整个。这个上网用户啊,有手机,有平板,有台式机,有笔记本很多,然后中间通过路由器。或者通过这个光猫等等吧,这些进行连接互联网,那么这边呢,有一个这个宽带运营商,宽带运营商,然后再通过这个互联网,最终访问全球网络。
51:11
那但是我们中国有一个伟大的防火墙,对吧,这个防火墙指的是咱们中国的伟大防火墙,这个一般的防火墙都防的是什么呢?是外面进不来,咱们中国的防火墙是不允许,你好像也能外面也不让进来,咱们好像也不让进,也都也也有啊,你像国内的有很多那个比较好的资源啊,尤其这个这个什么视频呐啊,这个音乐啊什么的,他国外不让访问,就是从国外进,进不让进来,你也得翻墙,你要进来也得翻墙老师啊。李老师在吗?李林老师在吗?他这儿好像有个东西来了,嗯。
52:02
我播放我们在上课,好,那现在咱们的目标是为了能够科学上网啊,大家看我这是我自己画的一个简化图啊,那我们怎么能够穿过这个防火墙到达世界的每个角落呢?对吧?啊。呃,当然我们是为了科学研究上的网,不是为了干别的事啊,那我们是为了这个去访问互联网上的一些学习资料,对吧,学习资料。那么这个技术可以通过动态端口转发来实现,是这样的,也就是说你现在在。国内因为中间有伟大的GFW,所以呢,现在你直接没有办法访问这个,比方说谷呀,访问这个Facebook呀这些网站,对吧,那这些网站你访问不了,那没关系,咱们在国外呢,可以买一个叫VPS,实际上就是虚拟机嘛,说白了就是这个虚拟机啊,呃,好像也挺便宜的,我多年前买过,好像一年是多少钱,100多块钱吧,我不知道现在什么样了,100多块钱买一个。
53:31
一年那时候是斑瓦弓,现在有斑瓦弓,你们知道斑瓦弓吗?啊,这个这个有些同学可能不太知道啊,你搜一下就行了,搬瓦工,搬瓦工搬砖的搬啊,搬瓦工就这个搬瓦工,你看他这个是一年多少多少钱,这个好像也不便宜啊,46块钱,反正现在可能贵了啊,以前反正便宜啊,现在就是你买一个买一个,这个可以用来实现科学上网,这个一年多少多少,你看一个月的三个G的三个T的流量,你要看电影也够了,是吧,看电影。
54:31
哎,你们用那个我们目前的这个插件啊,上网你们没发现吗?咱们现在这个上网插件,实际上它是有流量限制的,你别拿这个看视频啊,你拿这个上网能看个网页行,你要是真看视频,一会儿流量就不够了。这个流量很小啊,就是看个网页行,你看视频不行,他有流量限制的啊,所以我们现在利用这个所谓的购买的这个虚拟机。
55:02
我们可以作为跳板,因为我们虽然防火墙防止了你直接去访问互联网的这些大网站,呃,但是他并没有拒绝所有互联网的其他主机,所以你可以先到达你百买的这个机器,利用他当代理,再去访问谷歌呀,访问这些什么Facebook这些邪恶的网站了,知道吧?嗯,邪恶的网站,要不咱们中国政府为什么不让你去啊,对不对,那肯定是邪恶嘛,对吧?啊,当然我们得知道他多邪恶,所以我们得看看去啊,那这就是他的思路。当然这个实现的话呢,怎么实现呢?这一个叫动态端播转化的技术可以实现。它的作用,它的功能是这样的,大家看啊,SSH就是我在在国内这有一个国外的我买的机器,这是国最终我要访问的机器,当是我最终访问的机器是不固定的。
56:01
比方说有可能是Facebook,有可能是谷歌,还有可能是油管是吧。哎,反正很多。那所以我们刚才那个隧道功能不适合,刚才隧道功能是不是写死的目标对不对,只能访问一个,那现在因为你访问的机器是不确定的,有可能访问某一个啊,这是谷歌啊,这是Facebook,这是Facebook,这是YouTube管YouTube对吧,那这个不一样,所以这时候呢,我们希望我我去访问的时候,我只要发请求到这来,那么发请求到这来以后呢,我访问哪,它就自动给你转到哪,自动转到哪去。那这叫动态端口转发,为什么呢?端口不固定,不是固定的。啊,那它的命令呢,非常简单,就这个命令叫SSH-D后面找一个端口,这个端口是我本机的一个没人用的端口。
57:00
然后这个呢,就是这个你买的这个虚拟机,买的这个虚拟机。然后后面再加加上一个FNG,这个是我们啊,这个FNG呢,你可以加FGFN就行,你加FN就可以。加这个就可以了,加这个以后呢,我们现在就可以在本机利用本机的1080这个这个端口,只要往1080端口发,它就会自动给你转到这来,转到这来以后呢,根据你浏览器里输入的地址访问谁,他就给你转就能访问了。啊,这就是他背后的逻辑,背后的逻辑。啊,当然我们现在可以来试一下啊,来试一下,呃,我就这还是搭一个环境来模拟。啊,我还是把这个机器模拟成假设谷歌吧,我给他改个名,这是谷歌啊,这叫谷歌是吧。
58:02
啊,这就谷歌了啊谷歌。呃,我中间这台机器呢,就是我买的那个互联网的那个虚拟机啊,我给他改一下名啊,叫VPS就买的虚拟机。啊,这改了。那这边呢,是我想上网的电脑,这是我家里想想上网电脑啊,我也把它改一下,这是home啊,比方说家里的电脑,或者你单位电脑也可以。好这个关系,那我们就建起来了,建起来以后,我们现在首先我这个机上有没有firefox。
59:11
啊,装上,因为我希望坐在这台机上能打开浏览器访问谷歌。我装上那图形界面浏览器,相信大家这个用的更多。呃,在这个S里面默认带浏览器就是Chrome。呃,就是那个firefox啊,Firefox。呃,刚才呢,我为了模拟这个场场景呢,就是我们中间有防火墙禁止。去访问。这个机器,所以这个机器呢,我也是给它加一个类似的安全策略,不允许,哎,这还在不允许10.8直接访问,现在还是访问不了的。
60:06
啊,然后当然我这个firefox装好以后,它直接打开不了,这个我们说过的,要想打开怎么打开。啊,直接命令行的方式,直接去访问外面的28是访问不了的,现在啊,那firefox也访问不了,不过firefox我希望能打开,那怎怎么打开啊,上次我们说过了这个图形工具啊,图形工具我们是不是希望在Windows里显示啊,那么Windows里面就应该要打开一个manager一个。一个X11的协议的服务器。是这个实际上你打开它,实际上就是让它运行在一个X11的服务器上去了。
61:04
不。好把它打开。怎么卡呀?好打开了,打开以后注意它这个地方显示零,冒号零,呃冒号0.0,上次我们是不是1.0来着,那你这看多少你就映射到多少就行了啊映射多少,那接下来我们这个地方要敲一个命令叫its port叫display,也就是说我们现在呢,希望去访问这个图形界面的时候,它会把图形界面显示在我这十点点一的0.0这个窗口上去。啊,这样的话呢,就可以了,再打开。看打开了是。那现在这个浏览器如果直接去访问刚才说的谷歌的话呢,现在直接访问应该现在是直接访问不了的,因为我们刚才不是有策略吗,不让直接访问。
62:09
哎,打开了,打开以后呢,我们直接去写他的地址,28 28就是那个谷歌假装的那个地址,现在应该因因为有防火墙,刚才我们拒绝了,应该访问不了。啊,是不是访不了,访不了好,那么我们的目标是让他访问,怎么让他访问呢?那我们继续,那在这来敲命令啊敲命令刚才说了哪个命令来着,首先先看一下本机有人用没用,哎哟,这个八八端口还在弄,把它删了。当然应该是在这个地方这儿这边建的,我把它先删了,删了这样的端口就没了,没了好,那这个地方我们加个DD呢就是动态端口转发,那么这个动态端口转发用什么端口用你写你想用哪个用哪个,反正找一个没人用就行了,这不一堆都是这就用了这几个吗。
63:04
你找一个没人用的啊,比方说还有一个什么没用的999吧,是吧,换一个啊999哎,这就是你将来在本机将来会打开的端口,那么D打开以后呢,这写上远程服务器的这个地址,然后这个服务器就是那个中间的那个你买的那个虚拟机,这是个跳板机,相当于啊,利用他来访问互联网上你不能直接访问的资源。输入它的密码,当然这个地方呢,你要这样写,它就给你登录上去了,所以我们不想登录啊,不想登录我们刚才说了加一个FN是吧,哎,不登录我只是加了一个碎,建立一个桥梁个而已,对吧?啊这样的话就建起来了,建起来以后大家看是不是和对方建立了连接。哎,我们看这边我和对方的机器之间,我和18的直机是不是建立了一个S2的连接。
64:08
对吧,建立连接了,建立连接以后,那我们在这儿再打开一下,就直接打开是不行的啊,因为你要在你的电脑上,它会打开一个999的端口,你要发请求到九九才对,看到没有,所以你要发请求到999,所以你直接连连不上去的,你要利用999建立的桥梁来实现,那怎么建999呢?哎,这儿去找那个。设置。好,在这去找代理服务器的设置。啊,这个网络设置这个这个就是使用代理,使用什么代理呢?萨克斯代理,萨斯代理是谁呢?就是本机啊。
65:04
999端口什么意思啊?我这样设的句话就是你只要你访问浏览器的任何一个链接的地址,他不是说自己直接去,而是先把请求发到127的0.01的999端口,那这个端口和目标是不是建立了一个隧道桥梁啊,直接给你发过去了啊这个意思。好,这样就行了,这样设完以后呢,我们再来访问一下,走看成了成了你就可以可以上网了,当然我能访问谷歌,也能访问Facebook,也能访问YouTube,都行啊,当然对于谷歌来讲,他认为谁在访问啊。他是不是认为还是18的访问,也就是中间这个我买的这个VPS对不对,哎。注意,这个地方它不仅有谷歌啊,你Facebook u都可以访问,因为它不是固定的,只能访问谷歌,我们并没有约定它只能访问谷歌,访问谁都行。
66:06
啊,这样的话我们就实现了科学上网,大家看好像也不需要做什么特别复杂的设置,就利用S协议就做到了。但是我们现在目前来讲还有个缺陷啊,什么缺陷呢。就是我们要想实现这个功能。我们需要去这么来设设置网络。那么你在实现的时候,相当于你这个机器自己访问了,你自己访问了,那是不是你设好的这个机器只能自己访问,别人机器都访问不了啊,就你自己能够科学上网,别人都访问不了,这个就太简太功能太简单了。而且呢,还有一个问题,我们这样做的话,有个缺点,什么缺点呢?就是你这个机器必须是个Li机器。
67:01
啊,那么window机器呢,有没有S这个功能,S命令倒是有啊,这个Windows里面倒是有,但是那是WIN10啊。那早期的命令是根本就没有S命令啊,对吧?诶,这是WIN10后来加的,以前没有这个工具,所以换句话说,我们现在实现的这个场景里面,这个目前上网的机器只能是什么呢?只能是。Linux机器,这个Linux机器上。那别人就不行。那事实上我们家里头是不是有好多都想上网的电脑,都是Windows啊,或者苹果等等?那这时候我们又想了,能不能用它和这个VPVPC之间建立一个什么桥梁啊,然后我利用它来上网不就行了,也就是你当碎当这个当这个当这样的一个桥梁的网关,然后我利用你来上网,我要这还有别的电脑,我利用你上网,但是现在是做不到的,为什么呢?因为这个地方它的端口绑定。
68:06
是绑定在了本机的999是不是,所以还是做不到,那做不到,那我们说过怎么做呢?我把它关了啊,我把它关了还是加那个网关啊,把它关了。那加网关的话呢,这个地方我们加的时候呢,就这么加了,这个命令呢,就换了,就加一个G就行了。明珠啊,就加个G。哎,加了这以后呢,你再看一下它这个监听的999端口,是不是就不是那个什么127了,是999了,那这样的话呢,我如果是深度七是不是也可以利用你的。999端口来上网了,对吧?啊,当然我这因为没有装那个firefox啊,没有装。
69:02
啊,也可以装一下,或者不用装了,我们用call命令吧,因为call命令它也支持设那个啊代理地址,那这个call命令设置代理地址是这个命令。这写IP地址,这个IP地址当然就是那个谁的。八的对,这个呢,应该是999,最终你访问的是谁呀?28是不是大概成了吧。看完面。啊,这不就行了吗?那这样的话,我们是不是这台机器。就可以供大家你在浏览器里把这个代理指向他就行了,但是呢,这个还有个缺点。啥缺点啊,你是不是得准备一台机器,这台机不能关,始终他和远程你买的这个虚拟机之间建立一个隧道,就这个机器别关,因为关了的话别人就上不了网了,你是不是家里的持续一台机器,他俩建立隧道,别关机是吧?然后其他这个买的,比方说手机啊,平板啊,你都用他设代理,但这么做这样的话呢,这个成本有点高啊,那我们现在有更简单的方法怎么做呢?就是。
70:24
全合起来,把这台机器和这台机器合并在一个机器上不就行了吗?那这样的话,我们把这个代理直接指向他不就行了吗?啊明白意思了吧?哎,那这个图呢,就是接下来这个这个图看到没。寄托。就是相当于我们这些机器啊,全都直接连它,也就是说这个机器既是S客户端又是服务器,就两个机器合成了一个机,自己连自己自己把这个代理功能打开不就行了吗?这样的话就省了,省了一个机器。
71:00
啊,所以我们无非就是敲命令的时候是坐在本机来设了,那也就是说我们坐在VPS机器上来自己设,那大家看。怎么做啊啊,我还是把刚才那个关掉它,所以这时候呢,敲命令的时候敲的就是这个了。自己连自己听了吗?自己连自己啊,坐在自己的机上敲这个命令,自己连自己。啊,注意敲这个命令的时候呢,我们去看一下,当前我机器上没有九九端口,没有九九端口啊,自己连自己,自己连自己,自己和自己建立桥梁,哎,然后这不就建起来了吗?大家看你看他是不是自己开了一个九九端口,并且你看他自己连自己,是不是自己连自己啊。那你看22端口是不是22端口。他自己连自己吧,是不是自己连自己。那既自己既是S服务器又是客户端,哎,同时它监听在了任何的地址的九九端口,哎,那这时候呢,我这个七级性,我就干脆指向它就行了,18知道吗?直接N上去了。
72:16
这不就两台机器成了一台机器了吗?那你反正你买那个虚拟机也长期开机也不关机,这样的话我们是不是就搞定了。那现在你看这个图现在就变成这样了,相当于这两个机器,这是你家用电脑,你家用电脑是不是把这个连接指向咱们这个VPS就行,这边就省了一个,省了一个机器,这样就可以了。真可以上网了,这就科学上网。所以你现在要干的事就是买一个VPS,然后在VPS的机器上敲一条命令就行了,就敲这条命令,听懂了吧,就敲命令,自己连自己就完了,然后剩下的就是你在你自己电脑上配个浏览器代理啊,浏览器代理当然浏览器代理这个不同的浏览器这个位置不一样啊,啊,但是都有类似的地方啊,我现在打开的是这个firefox firefox的浏览器代理呢,是在这个位置啊,在最下面这个位置。
73:16
有一个网络设置。在这设。IE的话也有这个地方,都有类似的,都有这个地方。那时。啊,你看这个态选项里面应该是有的。Internet选项。在选项里面就有设代理的地方。这儿有一个。连接这是局域网设置,你看在这点高级就这个听到吧,你把这设上就行了,这指向你的VPS的IP地址,这999端口嘛,不就完了。听见了吧,这样。
74:02
那就射了,射完了。所以科学上网是不是很简单啊,这一个就可以搞定了啊,当然了,这个科学上网有个缺点。也不能说没缺点,缺点是什么呢?就是你访问任何网站,他都走代理。因为你设完这个浏览器以后,他不论你访问国内的网站,国外网站,他都是走代理,也就是访问国外的网站走一下是可可以的,那走国访问国内网站,他也跑到那个VPS转一圈回来,这个有点慢了,所以这个不方便是,那这个问题倒不是很严重,怎么做呀,你可以装浏览两个浏览器,比方说你装个firefbox浏览器,那个专门访问国外的网站。再仿装一个360浏览器,专装仿国内网站不就行了吗?是吧,那分开俩浏览器,对啊,当然这个这个实际上这种科学上网的方法也有很多啊,我们现在目前不是装了一个插件嘛,不过这个装插件它流量有限制,好像没多大流量,不能看视频看看看看网页可以,看网页可以,所以VPS那个装上以后还是不错的。
75:26
呃,我曾经当然更加专业的是安装那个专门的这个上网的一些这个工具啊,这个工具呢叫SS。这是缩写啊啊这个缩写这个有有这种专门的安装这种软件的,我还写了一个那个get一个一个文章。呃,GIHUB,我我有一个GIHUB这样的一个账号,这个我写了一个文章,就是怎么去搭建一个科学上网的。
76:05
那少了一个替。这个就这个叫shadow socks,就是很多年前写的一个文章啊,我有我有那两年前了,这个文章可以告诉你怎么去搭建,用无帮度搭的啊,怎么搭这边有个过程,如果你们想试的话,也可以用这个来上。这专门的一个上网的一个代理设设法一个软件科学上网啊,仅用于学习啊,仅用于学习啊啊。别干坏事啊,这个现在搭私自搭微拼是违法的,私自搭V拼逮住以后这个啊过时了是吧。还有更好的了是吧,啊,确实你看我这都是两年前的了。对,能用就行了啊,这个反正上网科学上网的方法有很多,你们可以自己试好了,这是给大家讲的这个SSH,另外呢,这还有一个X协议的转化,S协议的转化,我们试过了,已经给大家讲过了,刚才我们又用用,又一次用过,就是在Windows里面来显示Linux的重新界面,这个我们刚才讲过了啊,这个。
77:27
啊,个别有的时候呢,需要装一些插件啊,有的时候缺什么插件,你把这个插件装上就行了,缺一些包把它装上就可以了。啊,这些都是我截的屏啊,截的屏。好了,那这是给大家讲的这个SSH的高级用法啊,这个用法呃,相对来讲呢,呃,还是不太容易理解的,涉及到好几个服务器角色之间,要搞清楚他们中间的通讯过程,我这都有描述下来,你们如果想看的话,可以看一下这段通讯过程怎么描述的,要实现的。
78:06
好,那么关于S的高级用法,我们先说到这,那么稍后呢,我们来看看S服务器的配置啊,那我们休息一会,待会再来说。
我来说两句