在linux中通过环境变量设置代理可解决命令行网络访问问题,需正确配置http_proxy、https_proxy、ftp_proxy和no_proxy变量,支持临时导出或写入~/.bashrc等文件实现永久生效,注意大小写和认证格式,并针对wget、git等特殊工具单独设置。
在linux系统中,通过环境变量设置代理是常见做法,适用于命令行工具如cURL、wget以及大多数支持代理的应用程序。以下是具体配置方法和注意事项。
常用代理环境变量
Linux中主要通过以下环境变量来指定代理:
- http_proxy:设置HTTP流量的代理
- https_proxy:设置HTTPS流量的代理
- ftp_proxy:用于FTP请求的代理
- no_proxy:定义不走代理的地址列表,如本地网络或内网服务
注意:变量名通常小写,部分程序也支持大写,但推荐使用小写以确保兼容性。
临时设置代理(当前会话有效)
在终端中直接导出变量,仅对当前shell会话生效:
export http_proxy=http://proxy.example.com:8080
export https_proxy=https://proxy.example.com:8080
export ftp_proxy=http://proxy.example.com:8080
export no_proxy=”localhost,127.0.0.1,.example.com”
如果代理需要认证,用户名密码可嵌入URL:
export http_proxy=http://username:password@proxy.example.com:8080
永久配置代理(用户或系统级)
要让代理设置在每次登录时自动生效,可将变量写入shell配置文件。
- 对当前用户:编辑 ~/.bashrc、~/.bash_profile 或 ~/.profile
- 对所有用户:修改系统级文件如 /etc/environment 或在 /etc/profile.d/ 下创建脚本
例如,在 ~/.bashrc 中添加:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
export no_proxy=”localhost,127.0.0.1,.internal.net”
保存后执行 source ~/.bashrc 使配置立即生效。
特殊应用的代理配置
部分工具不读取标准环境变量,需单独设置:
- wget:在 ~/.wgetrc 中添加http_proxy = http://proxy.example.com:8080
- git:使用命令git config –global http.proxy http://proxy.example.com:8080
- curl:支持环境变量,也可通过 ~/.curlrc 配置
基本上就这些。合理设置代理环境变量能解决大部分命令行网络访问问题,关键是确保大小写正确、no_proxy配置合理,避免内网服务被错误代理。