在 Linux 系统中设置全局代理,可以通过配置环境变量来实现。
http_proxy
用于配置 HTTP 请求的代理。https_proxy
用于配置 HTTPS 请求的代理。ftp_proxy
用于配置 FTP 请求的代理。all_proxy
用于配置所有协议的代理。它可以用于不区分协议的程序或工具。no_proxy
用于设置不需要使用代理的地址或主机。可以列出多个地址,以逗号分隔。
环境变量的优先级
如果同时设置了多个代理环境变量,以下是它们的优先级顺序(从高到低):
- 协议特定代理:
- http_proxy
- https_proxy
- ftp_proxy
- socks_proxy
- 通用代理:
- all_proxy
- 不使用代理的地址:
- no_proxy
代理设置
根据自己的需求选择不同的代理设置方式,参考如下格式快速进行设置
HTTP/HTTPS 代理
export http_proxy="http://proxy_address:port"
export https_proxy="http://proxy_address:port"
export ftp_proxy="http://proxy_address:port"
全局代理
export all_proxy="http://proxy_address:port"
认证代理
如果代理服务器需要身份验证(用户名和密码),可以在代理 URL 中指定用户名和密码。
export http_proxy="http://username:password@proxy_address:port"
export https_proxy="http://username:password@proxy_address:port"
export ftp_proxy="http://username:password@proxy_address:port"
特定协议的代理设置(其他协议)
用于 SOCKS 代理配置(支持 SOCKS4 和 SOCKS5)。一些程序(如 curl
、wget
等)也支持这个环境变量。
# 用于 SOCKS 代理配置(支持 SOCKS4 和 SOCKS5)。一些程序(如 curl、wget 等)也支持这个环境变量。
export socks_proxy="socks5://proxy_address:port"
# 这是 socks_proxy 的变体,专门针对 SOCKS5 代理配置。
export socks5_proxy="socks5://proxy_address:port"
示例配置
假设你希望设置 HTTP 和 HTTPS 的代理,同时希望指定本地地址不通过代理访问,可以使用以下环境变量:
export http_proxy="http://proxy_address:8080"
export https_proxy="http://proxy_address:8080"
export no_proxy="localhost,127.0.0.1,.example.com"
如果还希望为所有协议统一设置代理,可以同时设置 all_proxy
:
export all_proxy="http://proxy_address:8080"
export all_proxy="socks5://10.0.0.200:7891"
export ALL_PROXY="socks5h://10.0.0.200:7891"
设置永久代理
如果希望永久应用这些代理设置,可以将上述环境变量添加到以下文件之一,取决于你的系统和使用的 shell:
- Bash Shell:
将代理设置添加到~/.bashrc
或/etc/profile
中。 - Zsh Shell:
将代理设置添加到~/.zshrc
中。 - System-wide:
如果希望所有用户都使用这些设置,可以将代理环境变量添加到/etc/environment
或/etc/profile
文件中。
例如,在 ~/.bashrc
中添加:
export http_proxy="http://proxy_address:8080"
export https_proxy="http://proxy_address:8080"
export no_proxy="localhost,127.0.0.1,.example.com"
export all_proxy="http://proxy_address:8080"
然后,执行 source ~/.bashrc
使设置生效。
取消代理
要取消已经设置的代理,你只需要清除之前配置的代理环境变量。
临时取消代理(当前会话)
如果你仅仅希望在当前终端会话中取消代理,可以使用 unset
命令来删除相关的环境变量:
unset http_proxy
unset https_proxy
unset ftp_proxy
unset all_proxy
unset no_proxy
unset socks_proxy
此操作会立即取消代理设置,但只会对当前会话生效。如果关闭终端窗口或重新启动系统,代理设置仍然会生效。
永久取消代理
如果你希望永久取消代理设置(即在系统重启后生效),需要编辑相关的配置文件,并删除其中的代理设置。
1. 删除 .bashrc
或 .zshrc
中的代理设置
如果你在 ~/.bashrc
、~/.zshrc
或其他用户的 shell 配置文件中设置了代理,可以编辑该文件并删除相关的代理行。
打开 ~/.bashrc
或 ~/.zshrc
文件:
nano ~/.bashrc
# 或者
nano ~/.zshrc
查找并删除类似以下的行:
export http_proxy="http://proxy_address:port"
export https_proxy="http://proxy_address:port"
export all_proxy="http://proxy_address:port"
export no_proxy="localhost,127.0.0.1,.example.com"
保存并退出后,执行以下命令使更改生效:
source ~/.bashrc # 或者 source ~/.zshrc
2. 删除 /etc/environment
或 /etc/profile
中的代理设置
如果你将代理设置添加到系统范围的配置文件中(如 /etc/environment
或 /etc/profile
),则需要编辑这些文件并删除代理设置。
例如,编辑 /etc/environment
文件:
sudo nano /etc/environment
然后删除以下行(如果存在):
http_proxy="http://proxy_address:port"
https_proxy="http://proxy_address:port"
ftp_proxy="http://proxy_address:port"
all_proxy="http://proxy_address:port"
no_proxy="localhost,127.0.0.1,.example.com"
保存文件并退出后,重新启动计算机或重新登录以使更改生效。
检查代理是否被完全清除
清除代理环境变量后,可以使用以下命令检查是否仍然有代理配置:
echo $http_proxy
echo $https_proxy
echo $ftp_proxy
echo $all_proxy
echo $no_proxy
文章评论