VPN, NAT, 代理服务器的原理

VPN,NAT,代理服务器,大家可能对后两者不太了解,但是VPN嘛,可能大家都听过,毕竟翻墙必备嘛。。。

但是,VPN只是用来翻墙吗?他们几者的原理又是什么呢?今天,我们就来学习一下其中的原理~


1. VPN

VPN,virtual private network的缩写也就是虚拟专用网。

为什么会出现这个东西?好像很复杂啊…实际这是有计算机网路发展的太迅速了造成的IP地址紧缺,一个机构所能申请的IP数往往小于本机构所具有的主机数;另一个,因特网本身也不是安全的,一个机构也没必要把每个主机都接入外部的因特网,现实中,很多机构如商城宾馆,只需要和本机构内部的主机通信即可,并不都需要因特网相连。

因此,这些计算机可以使用仅在本机构内有效的IP地址(本地地址),而不需要去申请全球唯一的IP地址(全球地址)。

这里写图片描述

这里写图片描述

VPN往往用于一个机构内部的通信,但是在现实生活,一个机构可能会有很多网点,比如北京,上海,西安等等,这样子如何实现通信呢?事实上,专用网不同网点之间的通信必须借助因特网,如果有安全的要求,可以对在因特网传输的数据加密。

这里写图片描述

这里写图片描述

在场所A,B内部,计算机通信都不经过因特网,但是一旦A内一个主机想和B内一个主机通信就必须跨越因特网,经过路由器R1,R2。

需要注意的几点是:

1. 在R1R2中间这一段往往需要加密措施以保证数据运输的安全性。 
2. R1R2只是粗略的说法,实际上,在因特网传输可能会经过很多网络和路由器,不过从逻辑上看,R1和R2之间好像是一条直通的点对点链路,因此我们称为“隧道”技术。 
3. VPN是基于TCP/IP协议的,因为要保证可靠传输。 
4. 远程接入VPN,如下图

这里写图片描述


2. NAT

NAT:network address translation(网络地址转换)

前面,我们聊了虚拟专用网,考虑这样一种情况:我们个一个专用网内一些主机已经分配了本地IP地址(专用地址只能在本地使用,不能接入互联网),如果我们现在又想和互联网的主机通信,该怎么办呢?

这时候,NAT技术就起作用了。它是在专用网连接到互联网的路由器上安装NAT软件,这种NAT路由器至少保证一个有效的全球IP地址,这样子一来,只需要将本地地址转化为全球IP地址即可和因特网通信。

我们来看教材上一个例子:

这里写图片描述

这里写图片描述

由此可见,当NAT路由器有n个全球IP地址,专用网内最多同时有n个主机能连入因特网,这样子就可以使专用网内较多数量的主机轮流使用NAT路由器有限的全球IP地址。

另外,需要注意的一点是,由上面的图示,我们发现,主动通信的一方只能是专用网内的主机,通过NAT转化为全球IP地址来接入互联网。而因特网如果主动发起通信,到NAT路由器就不知道把目的IP映射到那个本地IP了,因此,这就说明:专用网内主机是不能充当服务器的!!!


3. 代理服务器

代理服务器(Proxy Server)的工作机制很像我们生活中常常提及的代理商,如下图所示,假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么具体的连接过程是这样的:

首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。

这里写图片描述

代理服务器的功能:

  1. 突破自身IP访问限制,访问国外站点或者其他之前不能访问的站点。
  2. 提高访问速度:通常代理服务器都设置了一个较大的硬盘缓冲区,当有外界的信息通过的时候,同时也将其保存在缓冲区中,当其他用户在访问相同的信息时,则直接有缓冲区取出信息,传给用户,以提高访问速度
  3. 链接内网与Internet,充当防火墙:因为所有的内部网用户通过代理服务器访问外界时,只映射一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限
  4. 隐藏真实IP:上网者可以通过这种方式隐藏自己的IP,以免受到攻击;
  5. 设置用户验证和记账功能,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。

4. 代理服务器与NAT服务器的差异

在内部局域网络使用私有 IP 的客户端,不论透过 Proxy 或者 NAT 均可以直接取得 WWW 的服务,那么 NAT 与 Proxy 有没有什么不同的地方啊?

NAT 服务器的功能: Linux 的 NAT 功能主要透过封包过滤的方式, 并使用 iptables 的 nat 表格进行 IP 伪装 (SNAT) ,让客户端自行前往因特网上的任何地方的一种方式。主要的运作行为是在 OSI 七层协议的二、三、四层。由于是透过封包过滤与伪装,因此客户端可以使用的端口口号码 (第四层) 较弹性;

Proxy 服务器的功能:主要透过 Proxy 的服务程序 (daemon) 提供网络代理的任务,因此 Proxy 能不能进行某些工作,与该服务的程序功能有关。 举例来说,如果你的 Proxy 并没有提供邮件或 FTP 代理,那么你的客户端就是无法透过 Proxy 去取得这些网络资源。 主要运作的行为在 OSI 七层协议的应用层部分(所谓的比较“高阶”之意)

NAT 服务器是由较底层的网络去进行分析的工作,至于通过 NAT 的封包是干嘛用的, NAT 不去管他!

5. 代理服务器的分类

以下摘自百度百科:

1. HTTP代理

www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)时就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。

2. socks代理

相应的,采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、HTTP层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。

如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容: 
① SOCKS服务器的IP地址 
② SOCKS服务所在的端口 
③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令 
知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。 
在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和使用代理服务器上联众打游戏等等各种游戏应用软件当中。

3. VPN代理

指在共用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个结点之间的连接并没有传统专网建设所需的点到点的物理链路,而是架构在公用网络服务商ISP所提供的网络平台之上的逻辑网络。用户的数据是通过ISP在公共网络(Internet)中建立的逻辑隧道(Tunnel),即点到点的虚拟专线进行传输的。通过相应的加密和认证技术来保证用户内部网络数据在公网上安全传输,从而真正实现网络数据的专有性。

4. 反向代理

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量。 安装反向代理服务器有几个原因: 
加密和SSL加速 
负载平衡 
缓存静态内容 
压缩减速上传 
安全 外网发布 
大多使用开放源代代码的squid做反向代理

5. 其他类型

FTP代理:能够代理客户机上的FTP软件访问FTP服务器 
RTSP代理:代理客户机上的Realplayer访问Real流媒体服务器 
POP3代理:代理客户机上的邮件软件用POP3方式收发邮件

猜你喜欢

转载自blog.csdn.net/lxj434368832/article/details/79423383