我们的服务器位于企业网络上,需要企业代理身份验证(例如输入企业用户名和密码)。在该网络上的 Windows 计算机上这不是问题 - 当打开 Web 浏览器时,系统会提示用户进行身份验证。但是,在 Linux 上使用浏览器时,不会提示用户进行身份验证,浏览器只是显示一条消息,说明需要进行身份验证。
互联网接入将会很有用
目前,如果我需要查找某些内容,我必须走到另一层楼的办公桌前,因为我无法(或不知道如何)进行身份验证,因此无法从这台计算机访问互联网。能够进行身份验证会很有用,这样我就可以使用网络浏览器。
包无法更新
当我尝试使用sudo apt-get update
或执行更新时sudo apt-get install [package]
,出现错误,我认为这是由于缺乏身份验证造成的。
执行后sudo apt-get update
,我收到类似的错误W: Failed to fetch [link] 401 Authorization Required
。 (由于某种原因一些http://us.archive.ubuntu.com可信/来源工作正常,有些会抛出相同的错误)。
这是一个主要问题,因为我需要能够更新服务器上的软件包。
- 我已经
cntlm
通过安装了sudo apt-get install cntlm
(它可以从少数几个随机工作的 Ubuntu 存储库之一运行)。 - 我编辑了配置
/etc/cntlm.conf
并添加了我的用户名、域和代理。 - 我启动了该服务(
sudo /etc/init.d/cntlm start
)。 - 我测试了服务 (
sudo cntlm -I -M http://www.google.com/
) 并得到了响应Config Profile 1/4... Auth not required (HTTP code: 307) Your proxy is open, you don't need another proxy
。 - 我尝试
sudo apt-get update
再次执行,但仍然收到相同的错误消息。 (401 Authorization Required
) - (哎呀!我的错误!我发现我需要
apt
手动配置代理设置...) - 我将该行添加
Acquire::http::Proxy "http://localhost:3128";
到/etc/apt/apt.conf
. - 我重新启动
cntlm
。 (sudo /etc/init.d/cntlm stop
,sudo /etc/init.d/cntlm start
) - 我表演了
sudo apt-get update
……然后它就击中了0% [Waiting for headers] [Waiting for headers] [Waiting for headers] [Waiting f
——然后就停在那里了。
采取的步骤(询问后)
- 我在
sudo apt-get clean
表演之前表演了sudo apt-get update
- 这开始工作,然后停在19% [Waiting for headers]
sudo apt-get clean
在表演之前,我再次表演sudo apt-get update
- 这开始起作用,然后停在0% [Waiting for headers]
我第三次尝试了这个(
sudo apt-get clean
,sudo apt-get update
),它停在20% [Waiting for headers]
我研究了这个后续问题并发现AskUbuntu 上的答案,表明这可能是 IPv6 的一个问题,导致 ICS 在接收并发连接时暂停一段时间。
- 我检查了该
/etc/sysctl.conf
文件,发现 IPv6 似乎已被禁用...(行net.ipv6.conf.all.disable_ipv6 = 1
、net.ipv6.conf.default.disable_ipv6 = 1
和net.ipv6.conf.lo.disable_ipv6 = 1
已在配置文件中。) - (我现在有点空白!这些症状与假设的 IPv6 问题相符,但是,如果它已经被禁用,那似乎就不能成为原因)
- 我表演了
sudo apt-get clean
第四sudo apt-get update
次(到底是什么——为什么不呢?)这次它挂了24% [Waiting for Headers]
,但首先它攻击了一堆存储库。以前触发错误的存储库现在不再这样做 (http://cran.rstudio.com trusty /
),但以前触发错误的存储库现在触发了不同的错误,Received HTTP code 501 from proxy after CONNECT
。
答案1
这可能与您组织中的 ISA 代理设置有关。我在为我的组织配置虚拟服务器时遇到了同样的问题。
打开终端。在终端中输入以下命令:
sudo nano /etc/apt/apt.conf
此命令旨在打开 apt.conf 文件并使其可用于配置。如果系统提示您输入密码,请输入密码。
将以下行添加到文件中:
Acquire::http::proxy "http://[username]:[password]@[proxy_address]:[port]";
Acquire::https::proxy "https:// [username]:[password]@[proxy_address]:[port]";
Acquire::ftp::proxy "ftp:// [username]:[password]@[proxy_address]:[port]";
Acquire::socks::proxy "[username]:[password]@[proxy_address]:[port]";
其中: 用户名 - 您的代理用户名 密码 - 您的代理密码 proxy_address - 代理服务器的地址 端口 - 地址服务器上允许流量通过的端口
保存 apt.conf 文件。尝试运行 apt-get 命令,它应该会给出与此类似的内容
sudo apt-get install [package]
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
………
Do you want to continue? [Y/n] y:
如果您看到此响应,则意味着该软件包已准备好安装。