为了在公司网络上成功使用 apt-get,通过代理进行身份验证时遇到一些问题

为了在公司网络上成功使用 apt-get,通过代理进行身份验证时遇到一些问题

我们的服务器位于企业网络上,需要企业代理身份验证(例如输入企业用户名和密码)。在该网络上的 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 cleansudo apt-get update),它停在20% [Waiting for headers]

  • 我研究了这个后续问题并发现AskUbuntu 上的答案,表明这可能是 IPv6 的一个问题,导致 ICS 在接收并发连接时暂停一段时间。

  • 我检查了该/etc/sysctl.conf文件,发现 IPv6 似乎已被禁用...(行net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.disable_ipv6 = 1net.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:

如果您看到此响应,则意味着该软件包已准备好安装。

相关内容