在 Linux 中,终端配置代理和在系统设置中设置代理有所不同,主要体现在影响的范围和适用的场景上。

[!Tip] 这个也不一定使得任何命令行工具都走代理,比如: fedora 的 dnf 命令你就要手动在配置文件 /etc/dnf/dnf.conf 里面配置 proxy 字段

  1. 终端配置代理
    • 影响范围:终端配置代理通常只会影响通过命令行终端运行的程序,例如通过 curlwget 等命令下载文件,或者通过命令行运行的应用程序。如果你设置了代理环境变量(如 http_proxyhttps_proxy 等),它们只会在当前终端会话中生效,或者需要手动配置每个使用网络的命令。
    • 配置方式:你通常通过设置环境变量来配置代理,具体方法是编辑 ~/.bashrc~/.zshrc 等 shell 配置文件。例如:

      export http_proxy="http://127.0.0.1:8080"
      export https_proxy="https://127.0.0.1:8080"
      

      然后运行 source ~/.bashrc 使配置生效。对于代理设置,可以临时使用以下命令:

      export http_proxy="http://127.0.0.1:8080"
      export https_proxy="https://127.0.0.1:8080"
      

      或者你也可以在运行特定命令时临时设置:

      http_proxy="http://127.0.0.1:8080" wget http://example.com
      

使用 echo 设置就只能在本次终端中临时使用

  1. 系统设置代理
    • 影响范围:在系统设置中设置代理会影响系统上所有支持代理的应用程序,包括==图形化界面==中的浏览器、软件包管理器(如 aptdnf)以及图形化的网络配置工具等。这种设置是全局性的,通常会影响整个系统的网络行为。
    • 配置方式:你可以通过图形化界面的设置面板(比如 GNOME 设置)来设置系统代理,通常位置在 设置 > 网络 > 网络代理 中。这里的设置会影响大部分依赖系统网络设置的应用程序,并且通常会保存设置,不需要在每次启动终端时手动配置。

总结区别

  • 终端配置代理:只影响通过终端命令行运行的程序,配置需要在每次使用时保证有效,或者手动添加到配置文件中。
  • 系统设置代理:全局设置,影响整个系统中大多数图形化程序和终端程序。

如果你只需要在终端中使用代理,可以通过终端配置;如果需要在整个系统中使用代理,建议通过系统设置来配置。