怎样通过“ Http-proxy”使用“ apt-get”?


20

我正在尝试在使用apt-get代理的网络上使用命令,如下所示:

我们在端口80上使用10.114.7.7作为Http-proxy,然后出现一个身份验证窗口,询问用户名和密码。

我们的用户名/域是这样的:username@urmia.ac.ir

我想知道http_proxy=http://User:Pass@Proxyserver:Port在这种情况下如何使用!我还尝试了10.114.7.7和urmia.ac.ir作为代理服务器,但没有结果!

Answers:


35

要通过代理使用apt-get,请在/etc/apt/apt.conf.d/名为proxy 的文件中创建一个您会识别的文件,或者进行制作(如果不存在)/etc/apt/apt.conf并插入以下行:

Acquire::http::Proxy "http://username:password@proxy.server:port/";

只需用您的登录详细信息替换用户名和密码,然后用正确的地址(在您的情况下为10.114.7.7:80)替换proxy.server:port,这样您的行将最终如下所示:

Acquire::http::Proxy "http://username:password@10.114.7.7:80";

如果您需要@在用户名中使用该符号,则必须使用反斜杠(username@urmia.ac.ir)对其进行转义。

虽然使用反斜杠转义字符不起作用(例如\@in exportwget),但是可以使用URL编码对特殊字符进行转义。例如,username:my@pass@server.com:port变为username:my%40pass@server.com:port。有关更多信息,请参见此URL编码字符列表


提议的在/ etc / apt内添加代理条目的解决方案对我有用,但是我注意到,如果您的代理服务器缓存凭据,则可以通过在不同过程中简单地通过代理服务器进行身份验证来避免将凭据嵌入配置文件中(例如Windows中的Web浏览器),然后在bash shell中运行apt命令。通过这样做,我能够将/ etc / apt内的代理条目指定为“ server:port ”而不是“ username:password @ server:port ”。
彼得·桑萨

6

或者,您可以将以下内容放入 /etc/apt/apt.conf

Acquire::http::Proxy "http://proxy.server.port:8080";

8080是端口号,我认为是标准端口号。

不要忘记引号或结尾的分号。


4

这应该可以解决您的问题:

export http_proxy=http://username:password@10.114.7.7:80/

EXPORT HTTP_proxy=http://username:password@10.114.7.7:80/在Bash中运行会导致EXPORT: command not found
大卫·佛斯特

导出和http均为小写。Bash区分大小写。否则它应该起作用。至少它已经为我工作了两年。
s3lph

6
适用于卷曲,但不适用于apt。
FGM 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.