‘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/";
-
打开终端并将以下行添加到/etc/apt/apt.conf。
gksu gedit /etc/apt/apt.conf
-
添加以下两行:
Acquire::http::Proxy "http://user:pass@proxy-host:port/"; Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
-
保存并退出。
现在
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 install
或sudo apt-get update
您必须运行:
sudo -E
“ – E”使用您的用户环境变量为root(sudo),就此而言您刚刚导出的http_proxy / https_proxy。
希望能帮助到你 :)
安装Ubuntu 18.04后出现同样的问题。 对我有用的是:
- 在网络设置中打开网络代理屏幕
- 选择手动并添加http和https代理信息
- 另外将Ignore Hosts字段设置为:
https://extensions.gnome.org*, *.extensions.gnome.org*
- 重启Ubuntu
至于第3点,不确定添加上述条目是否有效,但此步骤适用于我
- 启动Synaptic(转到系统 – >管理 – > Gnome 2中的Synaptic ,或在Unity中的Dash中键入“synaptic” )。
- 在菜单栏上,单击“设置” ,然后单击“ 首选项” 。
- 出现“首选项”窗口时,单击“ 网络”选项卡。
- 选择手动代理配置单选按钮,然后输入您的代理信息。
- 要应用validation信息,请单击“ validation”按钮,然后输入用户名和密码。
- 单击“确定”关闭“HTTP身份validation”窗口。
- 单击“确定”关闭“首选项”窗口。
- 单击“重新加载”按钮以更新包列表。
请注意,此设置更改也会影响Update Manager 。
这个单线解决方案对我有用:
sudo env http_proxy=http://: apt-get update