正向代理、反向代理机制与 Windows和Linux系统代理设置
0、什么是代理?
代理 是一种位于客户端和目标服务器之间的中间服务器。
客户端 <---> 代理服务器 <---> 目标服务器
1、正向代理(为客户端代理)
1.1、概念
当客户端向目标服务器发起请求时,不会直接连接目标服务器。
客户端将请求发送至代理服务器,由代理服务器代替客户端去和目标服务器进行通信,最后再将目标服务器的响应返回给客户端。
1.2、典型应用场景
- 突破访问限制:比如在某些网络环境下,部分网站被限制访问,用户可以通过设置代理服务器来绕过这些限制,也就是俗称的“翻墙”。
- 提高访问速度:代理服务器可以缓存经常访问的网页内容,当客户端再次请求相同内容时,代理服务器可以直接从缓存中提供数据,而无需再次向目标服务器请求。
1.3、在系统中设置代理
1.3.1、Windows系统
1.3.1.1、桌面环境设置代理
通过“设置”——“网络和Internet”——“代理”,如下图:
1.3.1.1、设置临时代理
你可以在命令行中设置环境变量,此方法仅在当前打开的命令行窗口生效,关闭窗口后设置就会失效。
- HTTP 代理设置
set http_proxy=http://代理服务器地址:端口号
- HTTPS 代理设置
set https_proxy=http://代理服务器地址:端口号
注意:设置
https_proxy
,后面也是http://
,而不是https://
示例:假设代理服务器地址是127.0.0.1
,端口号为7890
,则可使用以下命令进行设置:
set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890
1.3.1.2、设置永久代理
可以通过“环境变量”设置永久代理,选择“用户变量”是对当前用户生效,选择“系统变量”是对所有用户生效,如下图:
1.3.2、Linux系统
1.3.2.1、设置临时代理
临时设置仅对当前终端会话有效,关闭终端后设置即失效。可以通过设置环境变量来实现。
# 设置 HTTP 代理
export http_proxy=http://代理服务器地址:端口号
# 设置 HTTPS 代理
export https_proxy=http://代理服务器地址:端口号
# 设置 FTP 代理
export ftp_proxy=http://代理服务器地址:端口号
# 设置不需要使用代理的地址列表
export no_proxy="localhost,127.0.0.1,本地地址"
1.3.2.2、设置永久代理
要让代理设置在每次系统启动后都生效,需要将环境变量配置添加到相应的配置文件中。
对于使用 Bash shell 的用户,比如Ubuntu、CentOS、Fedora 等,可以将代理设置添加到 ~/.bashrc
或 /etc/profile
文件中,在文件末尾添加以下内容:
export http_proxy=http://代理服务器地址:端口号
export https_proxy=http://代理服务器地址:端口号
export ftp_proxy=http://代理服务器地址:端口号
export no_proxy="localhost,127.0.0.1,本地地址"
保存并退出文件,然后执行以下命令使配置生效:
source ~/.bashrc
2、反向代理(为目标服务器代理)
2.1、概念
当客户端向目标服务器发起请求时,不会直接连接目标服务器。
客户端以为直接在和目标服务器进行通信,但实际上是在和反向代理服务器通信,反向代理服务器依据预设规则接收、处理请求,并将请求转发至后端真实的目标服务器。
2.2、典型应用场景
- 隐藏服务器真实IP:对外只暴露反向代理服务器的IP地址,隐藏了内部真实服务器的IP,提高了服务器的安全性。
- 负载均衡:将客户端的请求均匀地分配到多个真实服务器上,避免单个服务器负载过高,提高系统的处理能力和响应速度。