在 Linux 终端中设置临时代理,最直接的方式是设置环境变量。这样设置后,代理仅对当前终端会话有效,关闭终端后即失效。
使用 export 设置代理环境变量
HTTP 代理:
export http_proxy="http://your_proxy_address:your_proxy_port"
export HTTP_PROXY="http://your_proxy_address:your_proxy_port"HTTPS 代理:
export https_proxy="http://your_proxy_address:your_proxy_port"
export HTTPS_PROXY="http://your_proxy_address:your_proxy_port"SOCKS 代理:
export socks_proxy="socks5://your_proxy_address:your_proxy_port" # 或者 socks4
export SOCKS_PROXY="socks5://your_proxy_address:your_proxy_port" # 或者 socks4同时设置 HTTP 和 HTTPS 代理(通常推荐):
export http_proxy="http://your_proxy_address:your_proxy_port"
export https_proxy="http://your_proxy_address:your_proxy_port"
export HTTP_PROXY="http://your_proxy_address:your_proxy_port"
export HTTPS_PROXY="http://your_proxy_address:your_proxy_port"包含用户名和密码的代理(如果需要):
export http_proxy="http://username:password@your_proxy_address:your_proxy_port"
export https_proxy="http://username:password@your_proxy_address:your_proxy_port"
export HTTP_PROXY="http://username:password@your_proxy_address:your_proxy_port"
export HTTPS_PROXY="http://username:password@your_proxy_address:your_proxy_port"不使用代理的域名或 IP 地址列表(NO_PROXY):
export no_proxy="localhost,127.0.0.1,your_internal_domain.com"
export NO_PROXY="localhost,127.0.0.1,your_internal_domain.com"多个地址用逗号分隔。
为单个命令指定代理
某些命令可能不读取标准环境变量,或者你只想让某一次请求走代理,可以使用命令自身的选项:
wget:wget --proxy=on -e 'http_proxy=http://your_proxy_address:your_proxy_port' http://www.example.comcurl:curl -x http://your_proxy_address:your_proxy_port http://www.example.com
验证代理是否生效
使用 curl 或 wget 访问一个外部网站,并观察是否通过代理服务器连接。
curl -v http://www.example.com # 查看详细连接信息
wget http://www.example.com # 下载网页如果使用了代理,你应该能在输出中看到代理服务器的地址。
取消代理
使用 unset 命令清除环境变量:
unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY
unset no_proxy
unset NO_PROXY完整示例
假设你的代理服务器地址是 192.168.1.100,端口是 8080,你可以这样设置代理:
export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export HTTP_PROXY="http://192.168.1.100:8080"
export HTTPS_PROXY="http://192.168.1.100:8080"然后,你可以使用 curl 或 wget 来测试代理是否生效。
curl http://www.example.com重要注意事项
- 替换占位符:将
your_proxy_address和your_proxy_port替换为你的实际代理服务器地址和端口。 - 大小写:环境变量名称区分大小写,但通常建议同时设置大小写两种形式(
http_proxy和HTTP_PROXY)以确保兼容性。 - 安全性:如果代理需要用户名和密码,请谨慎处理,避免泄露。尽量不要将密码直接写在脚本中。
- 终端会话:这些设置仅在当前终端会话有效。关闭终端后,代理设置将失效。
- SOCKS 版本:确认你的 SOCKS 代理是 SOCKS4 还是 SOCKS5,并在
socks_proxy环境变量中指定正确的协议。 NO_PROXY:NO_PROXY环境变量用于指定不需要通过代理连接的域名或 IP 地址。这对于访问本地网络资源非常有用。- 不同应用:有些应用可能不使用标准的
http_proxy环境变量。你可能需要查阅特定应用的文档,了解如何配置代理。例如,git有自己的代理配置。
— 感谢阅读 —
一起交流
分享你的思考,让讨论更进一步。