详讲三种代理名称与方式
基础:
在计算机网络中,代理服务器是操作系统或应用程序用作从客户端寻求其他服务器资源的请求介以简化和控制复杂性。
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回缓存了的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖他们的网络活动,可以允许绕过互联网过滤实现网络访问。
功能:
- 提高访问速度:通常代理服务器都设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
- 控制对内部资源访问:如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
- 过滤内容:例如限制对特定计算机的访问,将一种语言的数据翻译成另一种语言,或是防御代理服务器两边的攻击性访问。
- 隐藏真实IP:上网者也可以通过代理服务器隐藏自己的IP,免受攻击。但是只一个代理很难保证安全,更安全的方法是利用特定的工具创建代理链。
- 突破自身IP访问限制:访问国外站点。中国教育网和169网等网络用户可以通过代理访问国外网站。
- 突破内容过滤机制限制,访问被过滤网站。如防火长城对中国境内互联网访问的限制可通过使用代理服务器浏览而突破。但是每到国庆、两会等敏感时期,防火长城的封锁力度会大大加强,大多数代理服务器和代理软件都会无法连接。
种类:
根据协议区分
FTP代理服务器
主要用于访问FTP服务器,一般有上传、下载以及缓存功能。端口一般为21、2121等。
HTTP代理服务器
主要用于访问网页,一般有内容过滤和缓存功能。端口一般为80、8080、3128等。
SSL/TLS代理
主要用于访问加密网站,一般有SSL或TLS加密功能(最高支持128位加密强度)。端口一般为443。
RTSP代理
主要用于Realplayer访问Real流媒体服务器,一般有缓存功能。端口一般为554。
Telnet代理
主要用于telnet远程控制(黑客入侵计算机时常用于隐藏身份)。端口一般为23。
POP3/SMTP代理
主要用于POP3/SMTP方式收发邮件,一般有缓存功能。端口一般为110/25。
SOCKS代理
只是单纯传递数据包,不关心具体协议和用法,所以速度快很多。一般有缓存功能。端口一般为1080。(SOCKS代理协议又分为SOCKS4和SOCKS5,SOCKS4协议只支持TCP,而SOCKS5协议支持TCP和UDP,还支持各种身份验证机制、服务器端域名解析等。简单来说:SOCK4能做到的SOCKS5都可以做到,但SOCKS5能做到的SOCK4不一定能做到)
根据匿名程度区分
正向代理
这个过程里:Proxy代理Alice去访问了Bob,然后把数据传回给Alice
有什么意义呢:
- 访问本无法访问:如内部资源、内容过滤
- 加速访问:如加速本机网络
- 访问授权:如网络许可
- 隐藏行踪:如 tor
反向代理
这个过程里:Proxy作为了Web Server的加速节点
有什么意义呢:
- 降低服务器负载压力:负载均衡、上传减速
- cache:缓存静态内容、压缩
- 加密和SSL加速:CDN
- 安全:保护服务器 IP
- 外网发布
透明代理
透明代理不但改动了数据包,还会告诉服务器客户端的真实IP。
这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并无其他显著作用。(最常见的例子是:内网中的硬件防火墙)
价值:
对网络安全的贡献
它的内容过滤功能有利于防止骇客破坏电脑,保护计算机安全。
它的匿名功能可以帮助你隐藏真实IP,以免被骇客盯上。
对网络安全的破坏
它的匿名功能可以帮助骇客隐藏自己的真实IP,进行破坏,这样就加大了警方的取证难度。(较常见的做法是只挂一个代理,但是安全性更高的做法是用好几台代理服务器串成“代理链”,或者入侵完成后将代理服务器的日志、缓存擦除掉。)还有一些恶意用户常常挂了代理之后随意留言,所以一些网站在用户使用代理的时候可能会给你“禁言”。
它的中转功能在使用时,所有发往服务器的数据都基本全部明文,一个前文提到过的“间谍代理”就有可能记录下所有经过的数据(包括用户名密码),所以如果可能的话,需要通过代理传输用户名密码时尽量使用SSL、TLS等协议先行加密。