热门问题
时间线
聊天
视角

代理服务器

網路代理 来自维基百科,自由的百科全书

代理服务器
Remove ads

代理(英語:proxy)也称网络代理,是一种特殊的网络服务,允许一个终端(一般为客户端)通过这个服务与另一个终端(一般为服务器)进行非直接的连接。一些网关路由器等网络设备具备网络代理功能。一般認為代理服务有利于保障网络終端的私隱或安全,在一定程度上能够阻止网络攻击

Thumb
图解:左边和右边的电脑在通讯时候,需要经过中间的电脑中转,而中间的那部电脑就是代理服务器。

提供代理服务的電腦系统或其它类型的网络终端称为代理服务器。一个完整的代理请求过程为:客户端首先根据代理服务器所使用的代理协议,与代理服务器建立连接,接着按照协议请求对目标服务器建立连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下載至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接傳回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。

另外在部分实行网络审查的国家(如中华人民共和国),可以通过使用代理服务器的方式以突破网络审查(俗称“翻墙”)

持有资源实体的服务器被称为源服务器,从源服务器返回的响应经过代理服务器后再传给客户端。

Remove ads

代理协议

SOCKS

SOCKS4 / SOCKS5

SOCKS4

SOCKS4 是较早的版本,特点包括:

  • 主要支持 TCP(适合网页浏览、下载、SSH 等基于 TCP 的连接)
  • 不支持 UDP(很多实时/多媒体/部分游戏或某些 DNS 相关需求会用到 UDP)
  • 认证能力较弱:标准 SOCKS4 只有一个“User ID”字段,通常不算真正的安全认证
  • 域名支持有限:经典 SOCKS4 只支持 IPv4 + 目标 IP
SOCKS4a(扩展)
  • SOCKS4a 是 SOCKS4 的扩展,可支持“把域名交给代理服务器解析”(更常用)
  • 如果看到“SOCKS4 支持域名”,多半实际上指的是 SOCKS4a

SOCKS5

SOCKS5 是更现代、通用的版本,特点包括:

  • 支持 TCP 和 UDP(功能更全面)
  • 支持更完善的认证:可无认证,也可用户名/密码认证;还支持可扩展的认证方式
  • 支持域名、IPv4IPv6:可以把域名直接发给代理,让代理端解析(也能直接发 IP)
  • 功能更灵活:协议层面还支持一些额外能力(例如不同的命令类型),实际应用中更常见、更兼容

HTTP

HTTP 协议

HTTP 是一种客户端—服务器的应用层协议,最常见的就是:

  • 客户端:浏览器、App
  • 服务器:网站服务器

工作流程

  • 浏览器发出请求(Request):访问某个地址(URL)
  • 服务器返回响应(Response):返回网页、图片或数据

常见特征

  • 无状态:每次请求彼此独立(登录状态通常靠 Cookie/Session/Token 维持)
常见方法(动词)
  • GET:获取内容
  • POST:提交数据
  • PUT / PATCH:修改
  • DELETE:删除
状态码(示例)
  • 200:成功
  • 301 / 302:跳转
  • 404:找不到
  • 500:服务器错误

HTTP 默认端口通常是 80。


HTTPS

HTTPS 协议

HTTPS 本质上是:

HTTP + TLS(以前叫 SSL)加密层

它解决了 HTTP 的三个关键安全问题:

  • 保密性:传输内容被加密,旁人看不懂(防窃听)
  • 完整性:内容传输过程中不易被篡改(防篡改)
  • 身份认证:确认连接的是“真实网站”而不是假冒网站(防钓鱼/中间人攻击)

HTTPS 默认端口通常是 443。

HTTPS 的实现方式(简化)

  • 网站会有一个证书(Certificate),包含网站身份信息和公钥
  • 浏览器连接时会验证证书是否可信(由 CA 机构签发、域名匹配、未过期等)
  • 通过 TLS 握手协商出“会话密钥”,之后双方用它对数据加密传输


功能

提高访问速度
通常代理服务器都设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
控制对内部资源的访问
如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
过滤内容
例如限制对特定计算机的访问,将一种语言的数据翻译成另一种语言[需要解释],或是防御代理服务器两边的攻击性访问。
隐藏真实IP
上网者也可以通过代理服务器隐藏自己的IP,但是只有一个代理很难保证安全,更安全的方法是利用特定的工具建立代理链(如:Tor網路)。
突破网站的区域限制
通过代理服务器访问NetflixGoogle等对中国地區進行內容限制(如防火长城)的网站;非中国大陆用户也可通过代理服务器访问爱奇艺版权仅授予中国大陆地区的网站。
突破网络审查,访问被过滤网站
防火長城對中國境內互聯網存取的限制可透過使用代理服务器绕过。(俗称「翻墙」、“科学上网”等)

种类

常见代理服务器类型

以下列出常见的代理服务器类型、主要用途与常见端口(端口号可能因部署环境而变化):

FTP 代理服务器

  • 主要用于访问 FTP 服务器,通常用于文件上传与下载。
  • 常见端口:20、21、2121。

HTTP 代理服务器

  • 主要用于访问网页(HTTP)。
  • 常见功能:内容过滤、缓存。
  • 常见端口:80、8080、3128。

SSL/TLS 代理(HTTPS 代理)

  • 主要用于访问 HTTPS 网站(通过 TLS/SSL 加密的 HTTP)。
  • 常见端口:443。

RTSP 代理

  • 主要用于通过 RTSP 访问流媒体服务器(例如传统 RealNetworks/RealPlayer 生态的流媒体服务)。
  • 常见功能:缓存。
  • 常见端口:554。

Telnet 代理

  • 主要用于 Telnet 远程控制连接的转发。
  • 常见端口:23。
  • 注意:Telnet 明文传输,安全性较低;现代场景更常用 SSH。个别情况下也可能被用于隐藏来源或滥用。

POP3 / SMTP 代理

  • 主要用于通过 POP3/SMTP 协议收发电子邮件的连接转发。
  • 常见功能:缓存(部分实现)。
  • 常见端口:POP3 为 110,SMTP 为 25。

SOCKS 代理

  • 工作方式:在传输层对数据进行转发,通常不关心上层应用协议,因此适用面较广。
  • 常见端口:1080。


根据匿名程度区分

高度匿名代理
高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理服务器的IP。
普通匿名代理
普通匿名代理会在数据包上做一些改动,服务端上有可能发现这是个代理服务器,也有一定几率追查到客户端的真实IP。代理服务器通常会加入的HTTP头有HTTP_VIA和HTTP_X_FORWARDED_FOR 。
透明代理
透明代理不但改动了数据包,还会告诉服务器客户端的真实IP。这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并無其他顯著作用。(最常见的例子是:内网中的硬件防火墙)
间谍代理
间谍代理指组织或个人建立的,用于记录使用者传输的数据,然后进行研究、监控等目的代理服务器。

反向代理服务器

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器(如Web服务器)的工作量。安装反向代理服务器有几个原因:

  • 负载平衡
  • 缓存静态内容
  • 压缩数据
  • 外网发布

维基百科使用开放源代码Varnish代理服务器。

参见

参考文献

注释

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads