热门问题
时间线
聊天
视角
代理服务器
網路代理 来自维基百科,自由的百科全书
Remove ads
代理(英語:proxy)也称网络代理,是一种特殊的网络服务,允许一个终端(一般为客户端)通过这个服务与另一个终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般認為代理服务有利于保障网络終端的私隱或安全,在一定程度上能够阻止网络攻击。

提供代理服务的電腦系统或其它类型的网络终端称为代理服务器。一个完整的代理请求过程为:客户端首先根据代理服务器所使用的代理协议,与代理服务器建立连接,接着按照协议请求对目标服务器建立连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下載至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接傳回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。
另外在部分实行网络审查的国家(如中华人民共和国),可以通过使用代理服务器的方式以突破网络审查(俗称“翻墙”)
持有资源实体的服务器被称为源服务器,从源服务器返回的响应经过代理服务器后再传给客户端。
Remove ads
代理协议
SOCKS
SOCKS4 是较早的版本,特点包括:
- SOCKS4a 是 SOCKS4 的扩展,可支持“把域名交给代理服务器解析”(更常用)
- 如果看到“SOCKS4 支持域名”,多半实际上指的是 SOCKS4a
SOCKS5 是更现代、通用的版本,特点包括:
HTTP
HTTP 是一种客户端—服务器的应用层协议,最常见的就是:
- 客户端:浏览器、App
- 服务器:网站服务器
- 浏览器发出请求(Request):访问某个地址(URL)
- 服务器返回响应(Response):返回网页、图片或数据
- 无状态:每次请求彼此独立(登录状态通常靠 Cookie/Session/Token 维持)
- GET:获取内容
- POST:提交数据
- PUT / PATCH:修改
- DELETE:删除
- 200:成功
- 301 / 302:跳转
- 404:找不到
- 500:服务器错误
HTTP 默认端口通常是 80。
HTTPS
HTTPS 本质上是:
- HTTP + TLS(以前叫 SSL)加密层
它解决了 HTTP 的三个关键安全问题:
- 保密性:传输内容被加密,旁人看不懂(防窃听)
- 完整性:内容传输过程中不易被篡改(防篡改)
- 身份认证:确认连接的是“真实网站”而不是假冒网站(防钓鱼/中间人攻击)
HTTPS 默认端口通常是 443。
- 网站会有一个证书(Certificate),包含网站身份信息和公钥
- 浏览器连接时会验证证书是否可信(由 CA 机构签发、域名匹配、未过期等)
- 通过 TLS 握手协商出“会话密钥”,之后双方用它对数据加密传输
功能
- 提高访问速度
- 通常代理服务器都设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
- 控制对内部资源的访问
- 如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
- 过滤内容
- 例如限制对特定计算机的访问,将一种语言的数据翻译成另一种语言[需要解释],或是防御代理服务器两边的攻击性访问。
- 隐藏真实IP
- 上网者也可以通过代理服务器隐藏自己的IP,但是只有一个代理很难保证安全,更安全的方法是利用特定的工具建立代理链(如:Tor網路)。
- 突破网站的区域限制
- 通过代理服务器访问Netflix、Google等对中国地區進行內容限制(如防火长城)的网站;非中国大陆用户也可通过代理服务器访问爱奇艺等版权仅授予中国大陆地区的网站。
- 突破网络审查,访问被过滤网站
- 如防火長城對中國境內互聯網存取的限制可透過使用代理服务器绕过。(俗称「翻墙」、“科学上网”等)
种类
常见代理服务器类型
以下列出常见的代理服务器类型、主要用途与常见端口(端口号可能因部署环境而变化):
- 主要用于访问 FTP 服务器,通常用于文件上传与下载。
- 常见端口:20、21、2121。
- 主要用于访问网页(HTTP)。
- 常见功能:内容过滤、缓存。
- 常见端口:80、8080、3128。
- 主要用于访问 HTTPS 网站(通过 TLS/SSL 加密的 HTTP)。
- 常见端口:443。
- 主要用于通过 RTSP 访问流媒体服务器(例如传统 RealNetworks/RealPlayer 生态的流媒体服务)。
- 常见功能:缓存。
- 常见端口:554。
- 主要用于 Telnet 远程控制连接的转发。
- 常见端口:23。
- 注意:Telnet 明文传输,安全性较低;现代场景更常用 SSH。个别情况下也可能被用于隐藏来源或滥用。
- 主要用于通过 POP3/SMTP 协议收发电子邮件的连接转发。
- 常见功能:缓存(部分实现)。
- 常见端口:POP3 为 110,SMTP 为 25。
- 工作方式:在传输层对数据进行转发,通常不关心上层应用协议,因此适用面较广。
- 常见端口:1080。
- 高度匿名代理
- 高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理服务器的IP。
- 普通匿名代理
- 普通匿名代理会在数据包上做一些改动,服务端上有可能发现这是个代理服务器,也有一定几率追查到客户端的真实IP。代理服务器通常会加入的HTTP头有HTTP_VIA和HTTP_X_FORWARDED_FOR 。
- 透明代理
- 透明代理不但改动了数据包,还会告诉服务器客户端的真实IP。这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并無其他顯著作用。(最常见的例子是:内网中的硬件防火墙)
- 间谍代理
- 间谍代理指组织或个人建立的,用于记录使用者传输的数据,然后进行研究、监控等目的代理服务器。
反向代理服务器
反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器(如Web服务器)的工作量。安装反向代理服务器有几个原因:
- 负载平衡
- 缓存静态内容
- 压缩数据
- 外网发布
参见
参考文献
注释
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
