c377ebd48b3563b0041c9e6d0dc091manjaro_20240526_112448

一般 Linux 系统上的终端不会共享使用全局代理,需要额外配置

终端不走代理主要是终端不读取系统的配置,只认终端的变量,我们可以直接命令行设置代理,也可在~/.bashrc~/.zshrc文件中添加代理设置.

临时设置

  • http 代理

    export http_proxy="http://127.0.0.1:10809/"
    export https_proxy="https://127.0.0.1:10809/"
  • socks 代理

    export http_proxy="socks5://127.0.0.1:10809/"
    export https_proxy="socks5://127.0.0.1:10809/"
  • 全部走代理

    export all_proxy="socks5://127.0.0.1:10809/"

永久配置

添加到~/.bashrc~/.zshrc文件.

# 设置使用代理
alias setproxy="export http_proxy=http://127.0.0.1:10809/; export https_proxy=http://127.0.0.1:10809/; echo 'Set proxy successfully'"
# 设置取消使用代理
alias unsetproxy="unset http_proxy; unset https_proxy; echo 'Unset proxy successfully'"

使用方法:

# 在终端中输入:
❯ setproxy  # 设置代理
Set proxy successfully
❯ unsetproxy    # 取消代理
Unset proxy successfully

测试代理是否生效

curl -vv https://www.github.com

终端代理生效后,不一定能ping通,因为:ping 使用的是ICMP协议,ICMP 处于网络层(第三层),而SOCKS5是传输层代理协议(第四层),HTTPHTTPS是应用层协议(第五层或者第七层),协议层不同是无法代理的。