“apt-get”不适用于代理

tom*_*myk 56 apt

对于命令

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )
Run Code Online (Sandbox Code Playgroud)

我正在使用 VirtualBox 运行安装在 Windows XP 上的 Ubuntu 10.10。对于 Internet 连接,我使用带有身份验证的代理服务器。我尝试使用gnome-network-proxy工具在系统范围内设置代理设置。

在使用 format/etc/environmenthttp_proxy变量更新之后,http://my_proxy:port/没有身份验证数据。

我用 Firefox 检查了这个。浏览器询问我的登录名和密码,一切正常。不幸的是,apt-get 并非如此。我也试过按照这里的描述去做。不幸的是它不起作用。

可能与代理位于 Windows 域中的事实有某种关系,有什么想法吗?

我的代理名称是http-proxy。' - ' 是一个特殊字符吗?

fos*_*dom 56

对于我的公司网络,我的管理员为我提供了以下格式的代理名称:

http://[username]:[password]@[proxy-webaddress]:[port]
Run Code Online (Sandbox Code Playgroud)

对于我们的 Windows 网络,我们的用户名格式如下:

[domain]\[username]
Run Code Online (Sandbox Code Playgroud)

例如:

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080
Run Code Online (Sandbox Code Playgroud)

这已添加到以下新文件中(默认情况下不存在):

gksudo gedit /etc/apt/apt.conf.d/01proxy
Run Code Online (Sandbox Code Playgroud)

添加了以下文字:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";
Run Code Online (Sandbox Code Playgroud)

如果您使用匿名代理,则不需要登录凭据:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";
Run Code Online (Sandbox Code Playgroud)

保存文件,然后检查一切是否正常:

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

  • 这非常有效。除非您之前使用错误的 Acquire 行设置了 /etc/apt/apt.conf。我就是这样做的,我所要做的就是返回并删除该行。 (2认同)

小智 13

我发现输入到“网络代理”小程序中的 USERNAME 和 PASSWORD 没有存储到 apt.conf 文件中,您必须在 /etc/apt/apt.conf 文件中手动添加用户名和密码。

“网络代理”小程序只存储主机名和端口。

基本语法是

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Windows 用户名和密码,请遵循以下建议:

User = Domain/Username
Run Code Online (Sandbox Code Playgroud)

(windows 用户/不使用\)

如果您使用的是带有特殊字符的 Windows 强/复杂密码,则必须对值使用 URL 编码,例如密码中的“@”将是“%40”。


Cas*_*der 9

尝试设置http_proxyhttp://user:pass@proxyserver:port/

编辑:
如果设置http_proxy不起作用尝试编辑apt.conf. 在
Ubuntuapt.conf中,/etc/apt/apt.conf.d/目录是碎片化的。
在此目录中编辑/etc/apt/apt.conf.d/01ubuntu

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};
Run Code Online (Sandbox Code Playgroud)

或尝试使用 Synaptic 进行设置设置 -> 首选项 -> 网络
然后在“手动代理配置”中设置您的代理设置。

  • 你的意思是 /etc/environment 文件? (3认同)

小智 5

我使用 MS ISA 代理并使用 Cntlm 身份验证代理;在apt.conf我有4行;我在某处读到最后一行必须为空,但我不确定。它工作完美:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";
Run Code Online (Sandbox Code Playgroud)