配置常用工具代理

2024-05-06 {Tech 技术} [proxy, environment, wsl]

以下 server 一般都是 127.0.0.1,而 port 就看使用的代理工具设置了(如 CFW 就是 7890)。

配置 Shell 代理 #

根据不同 Shell 在对应配置文件中加入以下别名(以下示例仅在 Zsh 和 Bash 中验证,在 pwsh 中应该需要更改),即可输入 proxyon 启用代理,输入 proxyoff 关闭代理:

alias proxyon="
  export http_proxy=socks5://127.0.0.1:7890;
  export https_proxy=socks5://127.0.0.1:7890;
  export all_proxy=socks5://127.0.0.1:7890;
  export no_proxy=socks5://127.0.0.1:7890;
  export HTTP_PROXY=socks5://127.0.0.1:7890;
  export HTTPS_PROXY=socks5://127.0.0.1:7890;
  export ALL_PROXY=socks5://127.0.0.1:7890;
  export NO_PROXY=socks5://127.0.0.1:7890;
  echo "proxyon""

alias proxyoff="
  unset http_proxy;
  unset https_proxy;
  unset all_proxy;
  unset no_proxy;
  unset HTTP_PROXY;
  unset HTTPS_PROXY;
  unset ALL_PROXY;
  unset NO_PROXY;
  echo "proxyoff""

配置 Git 代理 #

Git 同时支持 HTTP 代理和 Socks5 代理,二选一即可

# http  
git config --global http.proxy http://server:port  
git config --global https.proxy http://server:port 

# socks5  
git config --global http.proxy socks5://server:port 
git config --global https.proxy socks5://server:port

取消 Git 代理:

git config --global --unset http.proxy
git config --global --unset https.proxy

或者直接去 ~/.gitconfig 修改即可。

配置 npm 代理 #

npm 原生支持 HTTP 代理类型,但是不支持 Socks5 代理类型,如果还想要使用 Socks5 代理,可能还需要使用一个工具使用 HTTP 监听 Socks5 代理 (禁止套娃),此处不做讨论。

# http  
npm config set proxy http://server:port  
npm config set https-proxy http://server:port

取消 NPM 代理:

npm config delete proxy
npm config delete https-proxy

或者直接去 ~/.npmrc 修改即可。

配置 curl 代理 #

在使用 nvm 时发现其用 curl 作为下载工具,也需要配置代理才能正常使用。 在 ~/.curlrc 配置文件中添加:

proxy = server:port

配置 wget 代理 #

直接在 ~/.wgetrc 配置文件中添加:

use_proxy = yes
http_proxy = http://server:port
https_proxy = https://server:port

配置 SSH 协议代理 #

修改 ~/.ssh/config 配置文件(没有就创建)

# macOS
# 全局  
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p

# 只为特定域名设定,
Host github.com  
    ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
    # 或者
    # ProxyCommand socat - PROXY: 127.0.0.1:%h:%p, proxyport = 8080


# Windows
# 全局  
ProxyCommand connect -S 127.0.0.1:1080 %h %p

# 只为特定域名设定  
Host github.com  
    ProxyCommand connect -S 127.0.0.1:1080 %h %p

解释:

注意:上面的端口号 1080 是默认的 HTTP 端口号,8080 是默认的 Socks5 端口号,实际使用中应替换为代理软件端口。

附:WSL2 配置代理 #

2024.02.01

参考 官方文档,在较新版本的 WSL2 中配置代理已十分容易,编辑(默认不存在,可自行创建)在 %UserProfile% 目录(即 C:\Users\%USERNAME%\)下的 .wslconfig 文件:

[wsl2]
networkingMode = mirrored
autoProxy = True

以上指令为启用镜像网络模式和强制 WSL 使用 Windows 的 HTTP 代理信息,更多详细配置请见:WSL 中的高级设置配置

2025.01.01 添加

已经有官方 GUI 应用 WSL Settings 可以直接设置关于 WSL 的各种信息了,请前往 Microsoft Store 更新 WSL 到最新版本。

参考 #