我需要配置代理。没有apt.conf文件,etc/apt/所以我使用nano.
但我不明白我需要在那里写什么。我已经在http_proxy = http://lgn:pwd@192.168.1.254:8080/那里写了
然后重新启动networking。但是当我尝试apt-get update- 它不起作用。
其实我不明白我应该在apt.conf文件中写什么端口和ip (有192.168.1.254ip和8080端口的例子所以我决定使用它们)。
lau*_*ent 129
要使用代理,您需要一个代理服务器。IP 和端口必须来自此代理服务器。login 和 pwd 必须是您在代理服务器上的用户名和密码(如果代理需要登录)。
APT配置文件方法
此方法使用位于 /etc/apt/ 目录中的 apt.conf 文件。如果您只希望 apt-get(而不是其他应用程序)永久使用 http-proxy,则此方法很有用。
在某些安装中,不会设置 apt-conf 文件。使用您选择的编辑器编辑 apt-conf 文件(如果您还没有,则创建一个新文件)。
Run Code Online (Sandbox Code Playgroud)sudo nano /etc/apt/apt.conf将此行添加到您的 /etc/apt/apt.conf 文件(用您的详细信息替换您的代理地址和代理端口)。
Run Code Online (Sandbox Code Playgroud)Acquire::http::Proxy "http://yourproxyaddress:proxyport";保存 apt.conf 文件。
如果您的代理需要登录名/密码,请替换:
"http://yourproxyaddress:proxyport";
Run Code Online (Sandbox Code Playgroud)
和:
"http://username:password@yourproxyaddress:proxyport";
Run Code Online (Sandbox Code Playgroud)
使用来自代理服务器的用户名和密码。
mat*_*eal 38
这是一个更通用的答案以及 apt config。
由于有很多地方可以配置代理设置,一开始可能会让人感到困惑。让我总结一些事情并提出一些好的做法。
例如:wget、git 和几乎所有连接到互联网的控制台应用程序。
如果由于某种原因每次运行命令时都想配置代理,请使用以下命令设置环境变量。
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
Run Code Online (Sandbox Code Playgroud)
否则,如果您想每次为所有用户使用相同的设置,请使用这些设置。
在 bashrc 中配置
$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
Run Code Online (Sandbox Code Playgroud)
配置 /etc/environment
$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/"
ftp_proxy="http://myproxy.server.com:8080/" ...
Run Code Online (Sandbox Code Playgroud)
使用 GUI 配置
打开网络设置并设置系统范围的网络代理。
网络 -> 网络代理 -> 配置 -> 在系统范围内应用。
但是,如果您对代理进行了身份验证,这可能没有用。
您需要为 apt 做一些额外的工作,因为 apt 不遵守环境变量,
$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";
Run Code Online (Sandbox Code Playgroud)
对于此范围之外的所有内容,必须有一个选项可以在应用程序本身中配置代理设置。如果没有,我很抱歉;)
Den*_*ker 23
像下面这样的东西应该工作:
Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";
Run Code Online (Sandbox Code Playgroud)
您还可以尝试使用 运行命令sudo -E,这将采用环境设置。当我尝试更新、添加 apt-repository 和安装时,它似乎对我有用。例子:
sudo -E add-apt-repository ppa:xxxxx
Run Code Online (Sandbox Code Playgroud)
根据@David Foerster 的说法,这仅适用于使用 shell 的手动交互,但它不适用于在没有用户交互的情况下调用 Apt 的自动化任务和服务。
小智 5
如果您需要在代理后面使用 apt,可能其他所有内容也都需要代理配置。我喜欢在一个地方管理我的代理设置,这将是环境变量。
为此,我创建了一个/etc/profiles.d/99-proxy.sh,其中包含必要的代理设置(如 larent 所述):
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy
Run Code Online (Sandbox Code Playgroud)
这样,该机器上的所有用户都可以访问代理。(不要忘记chmod a+x)
当您以用户身份使用 apt 或 apt-get 时,该用户可以使用 sudo。就像 Frank Qiu 描述的那样,sudo 不传递环境变量。为此,您可以添加
Defaults env_keep += "http_proxy https_proxy ftp_proxy"
Run Code Online (Sandbox Code Playgroud)
到(例如)
/etc/sudoers.d/00-environment
Run Code Online (Sandbox Code Playgroud)
或直接进入
/etc/sudoers
Run Code Online (Sandbox Code Playgroud)
文件。这样您只需在一处管理代理设置。
| 归档时间: |
|
| 查看次数: |
438068 次 |
| 最近记录: |