‘apt-get’不适用于Proxy

对于命令

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连接,我使用代理服务器进行身份validation。 我尝试使用gnome-network-proxy工具在系统范围内设置代理设置。

之后/etc/environment已由http_proxy变量更新,格式为http://my_proxy:port/ ,没有validation数据。

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

可能它在某种程度上与代理在Windows域中的事实相关,任何想法?

我的代理名称是http-proxy 。 ‘ ‘这是一个特殊角色吗?

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

 http://[username]:[password]@[proxy-webaddress]:[port] 

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

 [domain]\[username] 

例如:

 http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080 

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

 gksudo gedit /etc/apt/apt.conf.d/01proxy 

添加了以下文字:

 Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080"; 

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

 Acquire::http::Proxy "http://askubuntu-proxy.com:8080"; 

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

 sudo apt-get update 

我发现进入“网络代理”小程序的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/"; 

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

 User = Domain/Username 

(Windows用户使用/不是\

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

尝试将http_proxy设置为http:// user:pass @ proxyserver:port /

编辑:
如果设置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进行设置设置 – >首选项 – >网络
然后在“手动代理配置”中设置代理设置。

cntlm有一个发现选项,可帮助找到正确的配置以使用您网络的NTLM身份validation,请尝试以下操作:

 cntlm -I -M http://test.com 

将结果复制并粘贴到/etc/cntlm.conf中

重启cntlm

我在MS ISA代理后面,我正在使用Cntlm身份validation代理; 在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/"; 
  1. 打开终端并将以下行添加到/etc/apt/apt.conf。

     gksu gedit /etc/apt/apt.conf 
  2. 添加以下两行:

     Acquire::http::Proxy "http://user:pass@proxy-host:port/"; Acquire::ftp::Proxy "http://user:pass@proxy-host:port/"; 
  3. 保存并退出。

    现在apt-get update并且应该在代理之后工作, 但是你会发现仍然有些东西不起作用,那就是add-apt-repository命令。

    为了能够在代理后面添加存储库,请键入以下命令:

     # export https_proxy="http://192.168.1.5:8080" # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py` 

    现在,您可以使用LANG = C add-apt-repository在Lucid和Natty中添加存储库

    例:

    root @ ubuntu:〜#LANG = C add-apt-repository ppa:motumedia / mplayer-daily

通过Unixmen

如何在Ubuntu中应用apt-get更新或安装? 我在代理服务器后面,在安装Ubuntu后,使用apt-get命令更新或安装任何东西。 搜索后我发现apt软件包已经更改,现在/ etc / apt目录下没有apt.conf了。

我为解决这个问题所做的是以下内容:

打开终端和文件

 sudo -H gedit /etc/bash.bashrc 

并在文件的底部添加这两行:

 #proxy export http_proxy=http://user:password@host:port/ export ftp_proxy=http://user:pass@host:port/ 

现在保存并退出,现在您将能够在Ubuntu中更新,升级或安装软件包

使用BlueCoat代理,对我来说, apt.conf文件的格式必须如下所示:

 Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/"; Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/"; Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/"; 

^ ^ ^ ^第3代理行后的空行,不要输入此行。 ^ ^ ^ ^

这个一直在为我工作!!

(通过系统设置 – >网络等从GUI手动添加代理应该工作)但是如果没有,你从终端导出env变量:

 export http_proxy=http://: 

并再次为https:

 export https_proxy=  

最重要的是添加-E:要运行sudo apt-get installsudo apt-get update您必须运行:

 sudo -E  

“ – E”使用您的用户环境变量为root(sudo),就此而言您刚刚导出的http_proxy / https_proxy。

希望能帮助到你 :)

安装Ubuntu 18.04后出现同样的问题。 对我有用的是:

  1. 在网络设置中打开网络代理屏幕
  2. 选择手动并添加http和https代理信息
  3. 另外将Ignore Hosts字段设置为:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. 重启Ubuntu

至于第3点,不确定添加上述条目是否有效,但此步骤适用于我

  1. 启动Synaptic(转到系统 – >管理 – > Gnome 2中的Synaptic ,或在Unity中的Dash中键入“synaptic” )。
  2. 在菜单栏上,单击“设置” ,然后单击 首选项”
  3. 出现“首选项”窗口时,单击“ 网络”选项卡。
  4. 选择手动代理配置单选按钮,然后输入您的代理信息。
  5. 要应用validation信息,请单击“ validation”按钮,然后输入用户名和密码。
  6. 单击“确定”关闭“HTTP身份validation”窗口。
  7. 单击“确定”关闭“首选项”窗口。
  8. 单击“重新加载”按钮以更新包列表。

请注意,此设置更改也会影响Update Manager

这个单线解决方案对我有用:

 sudo env http_proxy=http://: apt-get update