从外⽹访问局域⽹服务器的六种⽅法
1 概况
因为需要在外⽹访问局域⽹的服务器,所以研究了下策略。这⾥做个总结。
2 为什么局域⽹的服务器⽆法在外⽹访问
服务器、电脑之间靠IP地址寻址,⽬前⼤部分基于IPV4进⾏寻址访问。但是因为IPV4的地址数量有限,中国分到的还⽐较少,所以⾮常紧缺。
⼀个解决⽅案就是在局域⽹来建⽴⼀个内部的⽹段,这个局域⽹的只在本⽹段内能互相访问,⽆法从外⽹访问。
局域⽹的⼀般都是192.168.X.X这样的。
如下图,为实际情况下⽐较普遍的⼀个拓扑关系。
web服务器主要提供什么服务(1)光猫+路由器,⼀般由运营商(移动、电信、联通)提供,可以是光纤接⼊或者⽹线接⼊。⼀般通过拨号的⽅式上⽹:就是在我们办宽带的时候,会给你分配⼀个拨号的号码加密码,通过在这个光猫+路由器中输⼊这个账号,即可与运营商连接,实现上⽹。
(2)光猫+路由器的外⼝为Wan⼝,⼀般为⼀个公⽹的IP。特殊情况咱们后⾯说。然后在他的内部的⼝为Lan⼝,有若⼲个,组成⼀个局域⽹,这个局域⽹是只在这个⼩范围内互相可以访问,这个局域⽹内的电脑可以访问外⽹,但是外⽹⽆法访问他们(因为⽆法路由到他们,按照IP路由的),当然还有别的⽅法,咱们后⾯说。⼀般为192.168.1.X的⼀个号段,⼀般会将1开头的作为这个路由器⾃⼰内⽹的⼀个地址,然后2之后的给其他电脑⽤。例如咱们例⼦中的情况,光猫路由器他的内⽹的地址为192.168.1.1,其他的路由器和电脑都是从2,3这样的。当然这个是可以在路由器中 进⾏设置的。下⾯接的电脑的IP可以是静态分配,也可以动态分配。注意:根据⼦⽹掩码
192.168.1.1
/255.255.255.0,这⾥的⼦⽹为192.168.1.X⽹段。
所以对于光猫路由器来说,他说横跨两个⽹的,对应有两个⽹络的IP,分别为外⽹(此⽹段路由器的IP地址为122.15.244.39)和内⽹⼦⽹192.168.1.X⽹段(此⽹段路由器的IP地址为192.168.1.1)。
这个光猫路由器,就是靠横跨两个⽹段,实现了数据从⼀个⽹到另⼀个⽹的中转的!!
(3)有了光猫路由器后,可以直接将我们的PC机连接到这个上⾯上⽹,如图PC机3。当然,这⾥的连接可以是有线的⽹线、也可以是⽆线wifi。这⾥的连线仅是⽰意连接关系。
(4)除了运营商提供的路由器外,我们可以⾃⼰再购置⼀些商⽤的路由器(华为、tplink、华硕等等很多牌⼦的),可以扩展我们的接⼊点数量和覆盖范围。例如图中例⼦,路由器1为扩展的路由器,他的Wan⼝作为光猫路由器的⼀个Ip地址,这⾥是192.168.1.2。
(a)在路由器1的Lan上⼜形成了⼀个⼩局域⽹,这个⽹为⼦⽹192.168.2.X⽹段。
(b)与光猫+路由器类似,他也横跨了两个⼦⽹,分别是192.168.1.X⽹段(此⽹段路由器1的IP为192.168.1.2)和⼦⽹192.168.2.X ⽹段(此⽹段路由器1的IP为192.168.2.1).
(5)服务器,PC机1、2为⼦⽹192.168.2.X⽹段。他们与PC机3分属两个⽹段。PC机3是⽆法访问到服务器的。PC机1、2可以访问到服务器。
如果想让PC机3能访问服务器,需要将两个⽹段做下合并,通过路由器的⼦⽹掩码设置,将⼆者设置成⼀个⽹段,则可以访问,如将两个⼦⽹的⼦⽹掩码设置为255.255.252.0。关于掩码与⼦⽹划分可以参考专门的讲解。此处不赘述。
(6)在上述的部署中,局域⽹内的机器都可以访问服务器,但是外⽹如果想访问是访问不了的,如图
中的PC机X,则⽆法访问。
3 外⽹访问局域⽹的⽅法
经过研究,有以下⼏种⽅法。
3.1 端⼝映射
这个⼜叫虚拟映射,这个⽅法就是在连接外⽹的路由器上做⼀个端⼝映射的设置,具体说将访问该路由器外⽹地址和特定端⼝的服务映射到内⽹的⼀台电脑的某⼀个端⼝上。
具体上⾯来说,就是在光猫+路由器上做⼀个虚拟映射的设置,例如,将访问122.15.244.39,端⼝10101的访问映射到192.168.2.2的端⼝10101上。
以华为的路由器设置为例,登录华为路由器,⽰意如下:
点击+新增或编辑制前的,进⼊下⾯界⾯:
设置完成后,在外⽹浏览器输⼊:122.15.244.39:10101,则可以直接访问到服务器。
需要注意的是:
(1)公⽹映射时,选择的外部端⼝最好不选择常⽤的80,21等,因为路由器会屏蔽这些笔者试过,80确
实不⾏!
(2) 服务器需要连接到包含公⽹IP的服务器上!!
这⾥虽然说的简单,但是实际当中会有许多问题。下⾯说明下。
3.1.1 如何获得公⽹IP
3.1.2 公⽹IP是动态的怎么办
3.1.3 我的光猫路由器是运营商的不⽀持这些设置怎么办
这个肯定是运营商的,运营商的⾥⾯也会由上述的⽀持,其实很多路由器⼀般都会由的,这些功能⼀般也都会有的,具体可能稍有差异。但是运营商的很多是功能⽐较弱,或者限制⽐较多,造成我们⽆法随⼼所欲的⼲这些事情。那怎么办呢?我的⼆级路由器,如上图中的路由器1是商⽤的,功能也很强⼤。能不能⽤他呢。
答案是不能直接这样⽤,因为他没有公⽹IP!!
但是,可以有变通⽅法。就是让光猫路由器只有光猫功能,他的路由器使⽤桥接模式。
在此模式下,我们不再在光猫路由器上拨号上⽹,⽽是在上⾯的路由器1上拨号上⽹,这样操作后,路由器1就有了公⽹的IP,然后,就可以随⼼所欲的设置了。
最后要说明的是,这个桥接模式的设置需要运营商在他们后台那⾥设置(跟获取公⽹IP的策略类似),不能咱们在路由器上设置的!
3.2 DMZ主机
这个说⽩了就是在路由器设置,让某⼀个主机直接全部暴漏在外⽹中。
在路由器中设置,本⼈没选择,这个风险有点⼤!具体⼤家参考吧。
DMZ 区可以理解为⼀个不同于外⽹或内⽹的特殊⽹络区域,DMZ 内通常放置⼀些不含机密信息的公⽤服务器,⽐如 WEB 服务器、E-Mail 服务器、FTP 服务器等。这样来⾃外⽹的访问者只可以访问 DMZ 中的服务,但不可能接触到存放在内⽹中的信息等,即使 DMZ 中服务器受到破坏,也不会对内⽹中的信息造成影响。DMZ 区是信息安全纵深防护体系的第⼀道屏障,在企事业单位整体信息安全防护体系中具有举⾜轻重的作⽤。
3.3 建⽴专⽤⽹络
⼤的公司,要运营商建⽴专线,将两个或⼏个地⽅连接起来。但这个成本贼⾼!
3.4 VPN
VPN,虚拟专⽤⽹络。介绍⽹上搜索⼀下即可。
简单说,他可以使⽤硬件来搭建、也可以纯软件来搭建。
(1)硬件搭建的话,类似与上⾯的那个路由器,直接将光猫路由器桥接掉,然后他来拨号获得公⽹IP,然后两个⽹⼀⼿托两家即可。
实际当中,许多路由器就有这个功能,当然也可以使⽤⾃⼰的某⼀台电脑来完成。还有专门的公司来做这个,⽣产个专⽤的硬件盒⼦。
这⾥的PC机X需要上⽹时,就需要有⼀个专门的客户端登录,可以是客户端软件,也有做成⽹页吧账号登录。
(2)这⾥必须有公⽹IP。且如果公⽹IP为动态的话,同样需要域名来解析!!类似上⾯,不赘述。
国内⽐较多的专门的供应商有:深信服、奇安信等。⼀般⼤的有⾃⼰的域名服务,免费的,如深信服。
3.5 内⽹穿透
3.6 建⽴虚拟局域⽹
典型产品:蒲公英,免费的ZeroTier One。
这个的基本逻辑,有点类似于腾讯会议之类的逻辑。就是在第三⽅服务器上申请⼀个虚拟⽹络ID,然后组⽹的⼏个电脑都安装软件,然后并输⼊这个ID,然后,服务器与软件⼀起,为这些软件都建⽴⼀个虚拟的⽹络IP(注意,此时你的电脑上有两个IP了!设置后windows会提⽰你有两个),然后这些电脑的的虚拟⽹络IP是⼀个号段的,有第三⽅服务器负责路由、中转、穿透你原来的实际⽹络,就是这样!!但这个有受服务器带宽的限制!