对于命令
sudo apt-get update
我收到以下错误:
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. )
我正在使用 VirtualBox 在 Windows XP 上运行安装的 Ubuntu 10.10。对于 Internet 连接,我使用带有身份验证的代理服务器。我尝试使用gnome-network-proxy
工具在系统范围内设置代理设置。
之后已通过格式的变量/etc/environment
进行更新,没有任何身份验证数据。http_proxy
http://my_proxy:port/
我用 Firefox 检查了这一点。浏览器要求我输入登录名和密码,一切正常。不幸的是,apt-get 不是这种情况。我也尝试过按照描述进行操作这里。不幸的是,它不起作用。
这是否与代理位于 Windows 域中的事实有某种关系,有什么想法吗?
我的代理名称是http 代理。 是 '-'这里有一个特殊字符吗?
答案1
对于我的公司网络,管理员为我提供了以下格式的代理名称:
http://[username]:[password]@[proxy-webaddress]:[port]
对于我们的 Windows 网络,我们的用户名格式为:
[domain]\[username]
例如:
http://mywindowsdomain\fossfreedom:[email protected]:8080
这被添加到以下新文件中(默认情况下不存在):
gksudo gedit /etc/apt/apt.conf.d/01proxy
添加了以下文本:
Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:[email protected]:8080";
如果您使用匿名代理,则不需要登录凭据:
Acquire::http::Proxy "http://askubuntu-proxy.com:8080";
保存文件然后检查一切是否正常:
sudo apt-get update
答案2
我发现在“网络代理”小程序中输入的用户名和密码没有存储在 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/";
如果您使用 Windows 用户名和密码,请遵循以下建议:
User = Domain/Username
(Windows 用户/
不使用\
)
如果您使用带有特殊字符的 Windows 强/复杂密码,则必须对值使用 URL 编码,例如密码中的“@”将是“%40”。
答案3
尝试设置http_proxy
为http://用户:密码@代理服务器:端口/
编辑:
如果设置http_proxy
不起作用,请尝试编辑apt.conf
。在
Ubuntu中,目录apt.conf
是碎片化的/etc/apt/apt.conf.d/
。
在此目录中编辑/etc/apt/apt.conf.d/01ubuntu
:
APT {
Acquire {
http {
Proxy "http://user:password@server:port";
};
};
};
或者尝试使用 Synaptic 进行设置:设置 -> 偏好设置 -> 网络
然后在“手动代理配置”中设置您的代理设置。
答案4
cntlm 有一个发现选项,可以帮助找到适合你的网络 NTLM 身份验证的正确配置,请尝试以下操作:
cntlm -I -M http://test.com
复制结果并粘贴到 /etc/cntlm.conf 中
重新启动cntlm