看到很多朋友的留言,以及遇到各种莫名其妙的问题,这里详细说一下vpn到底怎么回事,以及遇到问题该如何判断。

这篇文章不会摆谱似的说一大堆晦涩的专业术语或者引用那些相关的RFC文档,那些玩意没什么用的。

 

 

vpn呢,是一种应用,或者说是一种网络服务功能。

至于一个网卡还是两个或者三五个网卡,跟vpn并没有什么关系的,早先“可能”因为win 2000 server有一些限制吧(我没什么具体印象,不确定),所以网上流传很多类同的文章,说windows server做vpn需要至少两个网卡,但据我自己在win2003和所有更高版本的系统上进行的测试来看,不论有多少个内网段或者有多少个外网段,进行任意形式的混合搭配,都只需要一个网卡即可。

我名下公司的网络较复杂,有电信联通移动的一共8条光纤线路,超过10个公网IP段,内网更复杂,各种私有服务+内部服务+对外服务+监控等等等等,我都记不清有多少网段了,据我自己做过比较变态的测试,电信联通移动各超过2个外网段,加上所有内网段,一共超过20个网段,其实只需要一个网卡就可以的,我亲自测试过的最低版本是win 2003 server,当然2008也测试过,所以至少可以证明,一个网卡拖上超过10个外网的不同网段IP+网关,是肯定没任何问题的,当然这里肯定有一个默认路由和静态路由混合而成的策略路由问题,这个暂且不在本文中讨论,因为绝大多数朋友都不会用到这么复杂的网络结构。但一旦遇到多个网关的情况,参考前面的策略路由文章就好了,本质是一样的,多复制几条命令即可。

 

先说一下路由和交换是怎么回事。多数交换机比较简单,就是一个2层转发设备,一些特高端的交换机可以最高应用到7层,这个时候其实已经相当于一个路由器了,这种非常规的情况不讨论。按照现在常见的情况来说(并非RFC一类的学术定义),多数时候,交换机工作在2层,路由器工作在3到4层,两者主要区别是交换机无法识别IP协议或者所有能在计算机操作系统中能看到的网络协议,而路由器则可以识别并且路由导向IP V4或者V6什么的传输协议。细节我已记不清,印象中交换机好像只有arp和rarp两个协议,路由器则很多了,绝大多数时候,层级越低则意味着越高的性能,tip:其实所有网络设备中,传输性能最高的是网线和光纤这种1层设备,这不是玩笑,按照定义,传输介质就属于网络设备,呵呵。比较简单的理解,可以把交换机视为一个传输介质,而路由器是一个在不同网络中进行数据传递的设备。

比如:根据工作层级不同,两台计算机通过交换机进行数据传输这个情况,与两台计算机的网卡直连,其结果是相同的;而两台计算机通过路由器进行互联的话,这就不同了,因为路由器的工作是将数据在不同网段之间进行存储转发+路径选择。(你家里的路由器可能有几个内网口,那几个口其实是交换机,而不是路由器的口)

假设这两台计算机处于同一子网段内,那么应该通过交换机进行连接;如果处于不同子网,哪怕是是用掩码划开的同一IP段的不同子网段,都需要路由器(或者传到网关,然后网关再传回来)进行连接,否则无法通信。

 

 

再说vpn,其原意是“虚拟专用网”。

一般用途是这样的,比如你在家想看一下公司服务器上的某个文件,而基于安全考虑,服务器只有内网连接,不对公网服务,这时候你就需要vpn,一般是你公司的防火墙、路由器这些设备会开放vpn服务。你在家连接上公司vpn以后呢,实际上你家里的计算机和公司的服务器是处于同一个内网段,既然是同一内网,那么就和上面说的交换机工作原理相同,可以直连而不需要其他设备,也就是“虚拟专用网”的意思了。再比如我们常用的“翻墙”这个功能,因为国内打不开某些国外网站,所以我们买个vps什么的,自己架设个vpn,然后我们在家里或者手机上面连接vpn,这时候呢,我们家里的计算机就和这个vps处于同一局域网了,而vps同时又承担了网关的功能,所以我们就可以通过vps访问一些国外网站了,示意路径:手机--vpn--vps内网--vps外网,大概原理就是这样的。

 

那么各位经常提到的一些问题,大概也可以理清思路了。因为你的计算机--你的路由--运营商网络--国际出口--数据中心各种设备--你的vps,这中间的环节很多,单纯一个错误号我也说不清到底是怎么回事。最主要的是我一直强调要用加密代理,因为vpn和普通代理本身是明文传输的,所以各位连上vpn或者明文代理,然后开个facebook或者google一下,接着你的vps立马被墙了,这个情况是很常见的,而且据我所知,有些vps服务商那里是直接屏蔽vpn所需要的一些底层协议的,也就是说,在有些服务商那里买的vps你根本不可能架起来vpn的,比如阿里云的境外服务器好像全都屏蔽vpn了。

 

另外茂强朋友说的这个情况,有几点要注意,首先你的路由或者网关要能够透传协议和端口,vpn我记得是tcp还是udp的1723,这两个端口先指向服务器,然后需要透传gre协议,这个在普通家用或者企业级的路由器上面是没有这功能的,个人估计你vpn就是给卡在这里了。不过有个变通的办法我没测试过,你可以试试看:设置路由器所有接受的数据直接透传给服务器(有些路由设备称作dmz,有些称作虚拟服务器),按道理是可以的,没测试,不打保票,如果这个路数还不行,那你只能用服务器直连外网了。

还有一点就是,我们普通的家用路由器包括很多所谓的“企业级路由器”,其实更倾向于“NAT”设备,也就是一个简单的网关设备,所以很多人笑称为“阉割版路由器”,呵呵。所以呢,其实功能是很有限的,有些我们认为应该能搞定的应用却无法痛快的实现,这个么,非人力所及了,除非你愿意花钱,呵呵。所以你的这个情况,如果你公司的网络需要拨号,那建议你最好直接去换个有vpn功能的路由或者网关什么的,便宜的大概几百块千把块就办了,这样最方便,如果不需要拨号,那应该是“互联网专线”或者其他什么,反正应该是交换网络了,这个好办,要么给服务器一个公网ip,然后交换出去,要么就按我说的,在你网关设备上面做全透传,也都不麻烦的。

作者 听涛

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注