Apt.conf "Acquire::http:Proxy "proxyserver:port", похоже, не используется (Ubuntu 13.04 под Virtual Box на Win7)

Это для установки рабочего стола Ubuntu 13.04 в виртуальной машине VirtualBox.Я нахожусь в корпоративной сети с HTTP-прокси по адресу x.y.z.251:9090. Я настроил гостевую ОС с помощью скрипта автоконфигурации, поэтому Firefox работает нормально, но я не могу получить "apt-get" или "Ubuntu Software Center" для подключения с помощью прокси-сервера.

Я создал файл "/etc/apt/apt.conf", теперь он содержит одну строку текста:

Acquire::http:Proxy "http://x.y.z.251:9090"

что и делает файл proxy.pac, который я указал в "Системные настройки /Сеть /Сетевой прокси" и применил ко всей системе.

Когда я использую Firefox, трассировка пакетов показывает, что TCP-соединение выполняется через корпоративный прокси-сервер на порту 9090, когда я запускаю "Ubuntu Software Center" и "apt-get", трассировка пакетов показывает пакеты TCP SYN с конечным IP-адресом назначения и портом 80. Конечно, нет никакого ответа на пакеты SYN, поскольку корпоративный брандмауэр блокирует вход или выход TCP-соединений на порту 80.

С помощью "sudo apt-get" в окне терминала я всегда вижу:

Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en_USIgn cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-enIgn cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en_USIgn cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-enErr http://extras.ubuntu.com raring Release.gpg   Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed outErr http://archive.canonical.com raring Release.gpg   Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]Err http://us.archive.ubuntu.com raring Release.gpg   Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]Err http://us.archive.ubuntu.com raring-updates Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]Err http://us.archive.ubuntu.com raring-backports Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]59% [Connecting to security.ubuntu.com (91.189.91.14)]

В конце концов, я вижу:

Err http://security.ubuntu.com raring-security Release.gpg  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]Reading package lists... Done                          W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]W: Failed to fetch http://archive.canonical.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/raring/Release.gpg  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed outW: Some index files failed to download. They have been ignored, or old ones used instead.

Я совсем не уверен, что я делаю не так.

--- Обновление ----Я тоже пробовал:

Acquire::http:proxy "http://user:pass@x.y.z.251:9090/"

"x.y.z", конечно, являются владельцами мест; я сомневаюсь, что сотрудники службы безопасности моего работодателя будут благосклонно относиться к тому, что я публикую фактические цифры. Я не вижу никакой разницы в трассировке пакетов - "apt-get" по-прежнему использует реальные IP-адреса и порт 80. Я допустил преднамеренную ошибку в файле apt.conf, и "apt-get" вышел с ошибкой, поэтому я уверен, что он видит эту строку конфигурации для прокси-сервера, просто, похоже, не соблюдает ее.

Я использую сетевое соединение "NAT", поскольку это противоречит политике ИТ здесь для соединения между сетями, а DHCP-сервер предоставляет адреса только для известных MAC-адресов. Я не хочу, чтобы ИТ-служба безопасности стучала по моему кубу (снова).

Основываясь на моем прошлом опыте, в целом Ubuntu (GNOME) не очень хорошо работает с PAC (Automatic Config). Pac (Proxy Auto-config) - это в основном логика JavaScript для определения ближайшего или наиболее подходящего для вас прокси-сервера, я настоятельно рекомендую используя прокси-серверы напрямую (в вашем случае Network - Сетевой прокси).

Несколько вещей, которые нужно проверить

Проверьте свой файл /etc/apt/apt.conf

Сеть -Графический интерфейс сетевого прокси-сервера обновится /etc/apt/apt.conf и установите там информацию о прокси-сервере.

Узнайте информацию о прокси-сервере у pac

Вы можете узнать подробности, прочитав proxy.pac в любом случае, файл.

Так что /etc/apt/apt.conf> должно выглядеть так, как показано ниже (предположим, что прокси-сервер = proxy.company.com порт 80), не используйте URL-адрес pac.

Acquire::http::proxy "http://proxy.company.com:80/";Acquire::https::proxy "https://proxy.company.com:80/";Acquire::ftp::proxy "ftp://proxy.company.com:80/";

ПРИМЕЧАНИЕ: Если в файлах конфигурации apt не указан прокси-сервер, apt-get вернется к http_proxy переменная среды.

Со справочной страницы apt.conf ответьте на комментарий от @Braiam

   http       HTTP URIs; http::Proxy is the default http proxy to use. It is in       the standard form of http://[[user][:pass]@]host[:port]/. Per host       proxies can also be specified by using the form http::Proxy::<host>       with the special keyword DIRECT meaning to use no proxies. If no       one of the above settings is specified, http_proxy environment       variable will be used.

Проверьте переменные среды прокси-сервера

Вы можете проверить настройки прокси-сервера, выполнив в терминале следующее

echo $http_proxyecho $https_proxyecho $ftp_proxy

Если вы правильно установили переменные env, вы должны иметь возможность обновлять в CLI.

Предпочитаю IPv4

Я заметил apt-get пытался подключиться к серверам обновлений, используя их ipv6-адрес. Это может вызвать проблемы (иногда срок действия IPV6-адресов истекает или они меняются).

Вы можете редактировать /etc/gai.conf и добавить precedence ::ffff:0:0/96 100 предпочесть ipv4 ipv6.

Более подробная информация

Я считаю, что у меня была именно эта проблема, и ответ прост. Синтаксис имеет решающее значение. Это должно выглядеть примерно так:

Acquire::http::Proxy "http://x.y.z.251:9090";

(Есть дополнительное ":" и завершающее ";")

@Braiam

Я думаю, что лучше начать с отдельного ответа, чтобы прояснить ситуацию.

Я провел быстрый тест с использованием Vagrant и виртуальной машины Ubuntu 13.04 Raring x86_64 за брандмауэром.

версия apt-get - это 0.9.7.7ubuntu4

root@raring:~# apt-get --version apt 0.9.7.7ubuntu4 for amd64 compiled on Apr 12 2013 23:49:05Supported modules:*Ver: Standard .deb*Pkg:  Debian dpkg interface (Priority 30) Pkg:  Debian APT solver interface (Priority -1000) S.L: 'deb' Standard Debian binary tree S.L: 'deb-src' Standard Debian source tree Idx: Debian Source Index Idx: Debian Package Index Idx: Debian Translation Index Idx: Debian dpkg status file Idx: EDSP scenario file

Обновление: Он работает точно так же на Precise 12.04.3

root@support:/etc/apt# uname -aLinux support 3.8.0-30-generic #44~precise1-Ubuntu SMP Fri Aug 23 17:33:45 UTC 2013 i686 i686 i386 GNU/Linuxroot@support:/etc/apt# lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription:    Ubuntu 12.04.3 LTSRelease:        12.04Codename:       preciseroot@support:/etc/apt# apt-get --versionapt 0.8.16~exp12ubuntu10.14 for i386 compiled on Sep  8 2013 03:26:42

1-й - очистить файлы конфигурации apt

Я очистил настройки прокси-сервера в /etc/apt/apt.conf. Я также сделал ack и ag сканирование всех файлов и подкаталогов /etc/apt чтобы убедиться, что в файлах конфигурации apt не установлен прокси-сервер.

По умолчанию {http_proxy,https_proxy,ftp_proxy} переменные env не заданы.

apt-get не удалось подключиться к серверам обновлений.

root@raring:~# apt-get -o Debug::Acquire::http=true update0% [Connecting to au.archive.ubuntu.com (202.158.214.106)] [Connecting to security.ubuntu.com (91.189.91.13)] [Connecting to ppa.launchpad.net (91.189.95.83)]

2 - й набор переменных окружения

Просто установите переменные прокси-сервера

export {http_proxy,https_proxy,ftp_proxy}="http://10.xxx.xxx.231:80"

apt-get теперь может подключаться!

Смотрите отладочный вывод (это то, что я никогда не пробовал).

root@raring:~# apt-get -o Debug::Acquire::http=true update0% [Working]GET http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg HTTP/1.1Host: security.ubuntu.comCache-Control: max-age=0User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)GET http://au.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg HTTP/1.1Host: au.archive.ubuntu.comCache-Control: max-age=0User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)GET http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/raring/Release.gpg HTTP/1.1Host: ppa.launchpad.netCache-Control: max-age=0User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)HTTP/1.1 200 OKDate: Fri, 27 Sep 2013 12:12:20 GMTETag: "16e20bb4-3a5-4db2e154a1dc0"Server: Apache/2.2.3 (Red Hat)Content-Type: text/plain; charset=UTF-8Accept-Ranges: bytesLast-Modified: Thu, 25 Apr 2013 11:54:39 GMTContent-Length: 933Proxy-Connection: Keep-AliveGet:1 http://au.archive.ubuntu.com raring Release.gpg [933 B]0% [1 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg HTTP/1.1Host: au.archive.ubuntu.comCache-Control: max-age=0User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)99% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             Date: Fri, 27 Sep 2013 12:12:20 GMTETag: "16e20ee7-3a5-4e7594ace9200"Server: Apache/2.2.3 (Red Hat)Content-Type: text/plain; charset=UTF-8Accept-Ranges: bytesLast-Modified: Fri, 27 Sep 2013 08:30:00 GMTContent-Length: 933Proxy-Connection: Keep-AliveGet:2 http://au.archive.ubuntu.com raring-updates Release.gpg [933 B]50% [2 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg HTTP/1.1Host: au.archive.ubuntu.comCache-Control: max-age=0User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)100% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             Date: Fri, 27 Sep 2013 12:12:21 GMTETag: "16e0083d-3a5-4e6844f477fc0"Server: Apache/2.2.3 (Red Hat)Content-Type: text/plain; charset=UTF-8Accept-Ranges: bytesLast-Modified: Mon, 16 Sep 2013 18:24:07 GMTContent-Length: 933Proxy-Connection: Keep-AliveGet:3 http://au.archive.ubuntu.com raring-backports Release.gpg [933 B]67% [3 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OKDate: Fri, 27 Sep 2013 12:12:20 GMTETag: "3a5-4e75c5d969600"Server: Apache/2.2.22 (Ubuntu)Expires: Fri, 27 Sep 2013 13:05:00 GMTAccept-Ranges: bytesCache-Control: max-age=3159, s-maxage=3300, proxy-revalidateLast-Modified: Fri, 27 Sep 2013 12:10:00 GMTContent-Length: 933Proxy-Connection: Keep-Alive

......

3-й - сбросьте настройки переменных среды

>сбросьте переменные среды = unset {http_proxy,https_proxy,ftp_proxy}

Теперь apt-get не удалось подключиться.

Вывод

Просто как что man apt.conf говорит, если http::Proxy не установлен, http_proxy будет использоваться переменная окружения.

кстати: Я также являюсь пользователем Arch Linux. Pacman работает аналогичным образом, если я не использую wget или curl с прокси-сервером в pacman.conf, он будет использовать переменные среды `{http_proxy,https_proxy,ftp_proxy}'.

Обновлениеsudo не сохраняет переменные среды. Вот почему sudo apt-get update неудачи. Чтобы обойти проблему (сохранить переменные среды прокси-сервера), используйте sudo -E apt-get update.

коснитесь /etc/apt/apt.conf && sudo vi etc/apt/apt.conf

Получить::http:прокси "http://user:pass@x.y.z.00:80/";Получить::https:прокси "https://user:pass@x.y.z.00:80/";

>>Замените x.y.z.00:80 -- ваш прокси-адрес или IP-адрес

Каждый день узнавайте что-то новое. Похоже, что “/etc/apt/apt.conf” обновляется только в том случае, если вы используете опцию ручной настройки прокси-сервера в разделе “Системные настройки / Сеть /Сетевой прокси”. Затем я вошел и закомментировал записи, которые я сделал в этом файле вручную, и отключил IPv6. Записи, созданные графическим интерфейсом, были в значительной степени идентичны тому, с чего я начал, но теперь работает “apt-get”. Было бы неплохо иметь возможность отключить IPv6 через графический интерфейс, но редактирование “/etc /sysctl.conf” работает нормально. Большое спасибо @terry-wang

Не могли бы вы добавить это в качестве ответа? Ваша проблема заключалась в том, что ipv6, а не в неправильно установленном прокси-сервере.

Может быть, вы пропустили двоеточие “:” больше между “http” и “Прокси”? http::Proxy " вместо этого http:Proxy `.