代理与vpn

本文最后更新于:11 分钟前

先了解下 OSI 7层网络模型

7bf72af07226ccbea19ac48d31373a60.png

每层具有的协议如下:

OSI对应的层 功能 TCP/IP对应的协议 设备
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet /
表示层 数据格式化,代码转换,数据加密 / /
会话层 建立管理和维护会话 / /
传输层 建立管理维护端到端的连接 TCP,UDP 四层交换机和四层路由
网络层 IP选址及路由 IP,ICMP,RIP,OSPF,BGP,IGMP 三层交换机和路由
数据链路层 传输有地址的帧以及错误检测功能 ARP,RARP,MTU,SLIP,CSLIP,PPP 网桥、交换机、网卡
物理层 以二进制数据形式在物理媒体上传输数据 中继器、集线器、双绞线

什么是代理?

代理(proxy)也称网络代理,是一种特殊的网络服务,允许一个终端(一般为客户端)通过这个服务与另外一个终端(一般为服务器)进行非直接的连接

提供代理服务的网络终端称为代理服务器(proxy server)

一个完整的代理请求过程为:客户端首先根据代理服务器所使用的代理协议,与代理服务器创建连接,接着按照协议请求对目标服务器创建连接、或者获得目标服务器的指定资源

常用代理协议

常用的代理协议有 Socks 和 HTTP(HTTPS)

Socks

SOCKS 是 SOCKet Secure 的缩写,根据 OSI 模型,SOCKS 是会话层的协议,位于表示层与传输层之间

SOCKS 代理协议只是简单地传递数据包,而不必关心是何种应用协议,所以速度比较快。SOCKS代理协议是1990年开发的,

SOCKS 协议具有 3 个常用版本:

  • SOCKS4 - 只支持 TCP 应用
  • SOCKS4a - 是 SOCKS4 协议的简单扩展,允许客户端对无法解析域名的目的主机进行访问
  • SOCKS5 - 比 SOCKS4a 多了验证、IPv6、UDP支持

这里要理解一个知识点,SOCKS 是会话层的协议,位于传输层之上,所以 SOCKS 协议可以转发 TCP/UDP 协议的数据包。而传输层之下的数据包,如网络层的 ICMP 数据包就无法被 SOCKS 协议处理。实际中我们可以尝试挂上 SOCKS 代理 ping 一下 google 测试一下

HTTP

HTTP 协议这里就不多说了,使用 HTTP 协议的代理服务也称为 HTTP 代理,对应的还有 HTTPS 代理

什么是VPN?

虚拟专用网络(英语:virtual private network,缩写:VPN)是指在公用网络上建立专用网络,进行加密通讯

VPN 会涉及隧道协议和加密技术,很多时候会看到人们统称为 VPN 协议

VPN 技术最早出现在20世纪90年代,那时的通信数据都是不加密的广播传输(要知道我们使用互联网时,发出的每个请求都会经过数个路由器,所以从这个角度上讲,我们的通信并不安全),像银行这种单位对隐私十分看中,想要保证隐私的通信往往需要铺设昂贵的专线,VPN 技术就是在这种情况下出现的

可以看出 VPN 最早的目的是在公用网络上搭建一条虚拟专用的网络隧道,并对其中的通信数据做了加密。然而人们却发现了一个意外的收获,比如客户利用 VPN 隧道成功和银行的服务器通信,这时他会发现银行位于内部网络其他的终端也能访问,位于国内的我们也便经常利用这一项技术完成翻墙的操作

常用的 VPN 协议

下面介绍一些常用的 VPN 协议

  • PPTP - Point to Point Tunneling Protocol,点对点隧道协议,初代 VPN 协议,于 1996年发布,该协议将PPP数据包封装在IP数据包内通过IP网络 (如Internet或Intranet) 进行传送
  • L2TP/IPsec - L2TP 又叫第2层隧道协议,本身不具备加密功能,往往需要和 IPsec 协议配置实现加密传输,所以该方法速度会偏慢
  • OpenVPN - 一种开源、跨平台、也是目前最常用的 VPN 加密协议
  • Shadowsocks - 是一种免费且开源的加密代理/VPN 协议。它是一款基于 Socks5 的代理协议

代理和VPN的区别

简单来说,VPN 和代理是两种常用的上网方式,这两者的基本功能都十分适合我们这种职业,甚至在我们的需求面前,两者的功能相差并不大,以至于很多人把这两者搞混淆。我们需要从以下几个方面去弄懂代理和VPN

  • 匿名性

代理和VPN的操作非常相似。它们都位于请求的中间,起到隐藏 IP 的效果

VPN 和代理两者的工作流程如下:

vpn-vs-proxy-workflow-difference-zh
  • 隐私性

我们通常使用的代理来自于供应商,其中代理服务器可能会记录我们的上网日志,VPN 服务商也可能会记录日志。最好的选择还是自己搭建代理服务器会VPN服务器

  • 加密

毫无疑问 VPN 协议加密做的更好

  • 协议

两者最大的区别首先就是使用的协议:

协议名称
VPN OpvenVPN、IPsec、IKEv2、PPTP、L2TP、WireGuard等
代理 HTTP、HTTPS、SOCKS、FTP、RTSP等

VPN 协议大多是作用在 OSI 的第二层和第三层之间,所以使用 VPN 时,几乎能转发所有的流量

参考:

OSI 七层网络模型:https://www.cxybb.com/article/uonele/106735758

https://laravelacademy.org/post/9336

代理(服务器)是什么:https://pandavpnpro.com/blog/zh-cn/what-is-proxy

VPN 和代理的区别的有哪些:https://pandavpnpro.com/blog/zh-cn/vpn-vs-proxy-difference

VPN 协议详解:https://pandavpnpro.com/blog/zh-cn/vpn-protocol

VPN协议:https://www.triadprogram.com/vpn-protocol/