我使用大学代理,并且对 Ubuntu 的代理设置感到很困惑,如果有人能帮我解释一下我会很高兴。
如果我往里面看,/etc/apt/apt.conf
它有我自定义的代理设置
Acquire::http{Proxy "http://user:pass@proxy:port";};
Acquire::http::proxy "http://user:pass@proxy:port/";
Acquire::https::proxy "https://user:pass@proxy:port/";
Acquire::ftp::proxy "ftp://user:pass@proxy:port/";
Acquire::socks::proxy "socks://user:pass@proxy:port/";
里面/etc/environment
有
http_proxy="http://proxy:port/"
https_proxy="https://proxy:port/"
ftp_proxy="ftp://proxy:port/"
socks_proxy="socks://proxy:port/"
但如果我这样做,echo $http_proxy
我就会得到
http://differentproxy:differentport
我不知道它从哪里“回显”。有什么解释吗?我知道我可以将 $http_proxy 变量导出到正确的代理,但我只是想了解 Ubuntu 用于代理的所有文件/设置。
答案1
Linux 代理设置并不是世界上最友好的设置。标准化或创建全局设置的尝试并没有取得特别的成功。
全局配置文件(例如 /etc/environment)不是每个应用程序或每次启动时都会读取的,并且特定于 Linux 发行版。
应用程序可以使用 DE(例如 Gnome 或 KDE)环境设置。
用户首选项,例如来自 shell 环境的设置可能会(并且应该)覆盖主机或系统全局设置。
不同配置源之间的优先级顺序非常难以管理,例如系统全局配置文件、桌面环境设置和登录脚本设置。
应用程序特定的设置可能会覆盖环境设置。
更改“全局”设置通常需要重新启动应用程序,有时甚至需要重新启动主机,因此在每个应用程序中使用特定于应用程序的设置更为方便。
最终结果是设置不是特别动态。
在这种情况下,APT 和 /etc/environment 的设置很可能来自您在安装期间指定的设置。
终端中看到的值很可能在您的登录脚本或 shell 配置文件中被覆盖,也可能被用户的 Gnome 全局首选项中覆盖。