程序员怎么让终端也走代理?
很多人开了客户端,浏览器能上网,终端里 git clone 还是慢,因为命令行默认不读系统代理。
一句话回答
浏览器走系统代理,命令行通常不走。要么给终端设置代理环境变量,要么在客户端里开启 TUN 模式,再配合规则分流。
方法一:终端环境变量
先在客户端里查看本地代理端口。下面以 7890 为例,端口以你的客户端设置为准。
# macOS / Linux(当前终端窗口有效)
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
# Windows PowerShell
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:HTTP_PROXY="http://127.0.0.1:7890"
方法二:git 单独设置
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# 取消
git config --global --unset http.proxy
git config --global --unset https.proxy
方法三:TUN 模式
部分客户端提供 TUN 模式,会创建一个虚拟网卡接管系统流量,命令行也会走代理,通常需要管理员权限。开启前先阅读客户端说明。
配合规则分流
不必所有流量都走代理。把 github.com、npmjs.org 等常用域名放进代理规则,国内镜像走直连,既快又省流量。
常见问题
npm、pip 也要单独设置吗?
它们通常读环境变量,设置了终端代理一般就能用;也可以使用国内镜像。
Docker 拉镜像怎么走代理?
Docker 守护进程有自己的代理配置,具体见 Docker 官方文档。