终端默认是不走代理的,即使我们已经打开了网络代理客户端的 “全局代理”。
用 curl 或 wget 下载 GitHub 上的文件时出现的 443 错误就是没有挂代理导致的。
使用环境变量(推荐)
很多 Linux 和 Unix 命令行工具(比如 curl,wget,lynx 等)使用名为 http_proxy
,https_proxy
,ftp_proxy
的环境变量来获取代理信息。它允许你通过代理服务器来连接那些基于文本的会话和应用。
HTTP,HTTPS,FTP 是三个最常见的 TCP/IP 协议。
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890 # 对于 https 的内容,只会使用 https 代理
export all_proxy=socks5://127.0.0.1:7891
# 使用用户名和密码的代理,在 proxyAddres 前加上 user:password@
export http_proxy=http://user:password@proxyAddress:port
使用命令选项
# 通过代理服务器访问 URL
wget -e http_proxy=127.0.0.1:7890 <url> # 如果是 https 内容,需要使用 https_proxy
curl -x 127.0.0.1:7890 <url>
curl -x socks5://127.0.0.1:7891 <url>
使用
protocol://
的格式指定协议。若不指定,则默认值为http://
端口默认为 1080
设置配置文件
在 ~/.curlrc
中添加以下内容:
proxy = 127.0.0.1
proxy-user = "user:passward"
此后使用 curl 都会默认走代理。
如果临时不需要代理使用以下参数:
curl --noproxy "*" url
设置 Linux 全局代理别名
在 ~/.bashrc
中添加以下内容:
alias set_proxy="export http_proxy='http://127.0.0.1:7890' https_proxy=$http_proxy all_proxy='socks5://127.0.0.1:7891'; echo 'Proxy on'"
alias unset_proxy="unset http_proxy https_proxy all_proxy; echo 'Proxy off'"
以后需要走代理时,输入 set_proxy
即可一步设置代理环境变量。不需要走代理时,输入 unset_proxy
即可删除代理环境变量。