我在公司网络内运行 Ubuntu 12.04 服务器。它需要代理才能访问外部网络。我在安装期间配置了代理。之后,我发现我的代理设置保存在 /etc/apt/apt.conf 中。但它不在环境变量中。但是,wget 也能够通过代理下载网页。wget(和其他程序)在哪里读取我的代理设置?
答案1
像往常一样,我想没有人关心集成 Linux/Ubuntu 中使用的程序的所有通信设置,这很遗憾。
在 11.10 中,您可以在多个位置进行系统范围的设置:
/etc/环境
...
http_proxy="user:[email protected]:port
...
/etc/apt/apt.conf.d/02/proxy
该命令apt
在此文件中有其设置:
Acquire::http::proxy "http:/user:[email protected]:port"
/etc/wgetrc
该命令wget
在此文件中的设置遵循与上面提到的文件相同的格式/etc/environment
。
http_proxy="user:[email protected]:port
假设 12.04 与 11.10 在这三个程序方面具有相同的文件配置,您可以为服务器编辑这些文件。
我有一个脚本文件,可以在工作和家庭之间来回更改 11.10 中的所有这些内容,但现在我不会使用该脚本,直到我了解有关 12.04 如何处理这些问题的更多详细信息。
答案2
wget
您/etc/wgetrc
可以在其中找到 HTTP 和 HTTPS 代理行,取消注释并使用您的代理设置进行编辑。
答案3
许多 Linux 命令行可以使用环境变量http_proxy
和ftp_proxy
。只需在 .bashrc 文件中设置这些变量,或在运行命令(如apt
或wget
等)之前设置一个 shell 脚本来设置这些环境变量。
export http_proxy=http://proxyserver:port/
export ftp_proxy=http://proxyserver:port/
答案4
wget 和许多其他程序都从 http_proxy 环境变量获取代理信息。echo $http_proxy
在 shell 中尝试该命令以确保已设置。