Из-за чего у меня перестали работать репозитории Debian/Ubuntu через http?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: использую официальные репозитории дистрибутива, проблему заметил как на Debian, так и на Ubuntu. Недавно перестали работать репозитории по http, при использовании https проблема исчезает. Хочу узнать в чём может быть причина подобного.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

Если официальные репозитории Debian/Ubuntu по HTTP внезапно перестали работать, а по HTTPS работают, причина обычно не в apt как таковом. Частые варианты: провайдер/корпоративная сеть режет или подменяет HTTP, зеркало изменило правила, прокси/кэш сломался, DNS отдает не тот адрес, либо на пути появился фильтр, который ломает plain HTTP.

Сначала проверьте конкретную ошибку apt. Важно различать timeout, 403, Hash Sum mismatch, Clearsigned file isn't valid, Connection failed и т.д.

sudo apt update
curl -I http://archive.ubuntu.com/ubuntu/
curl -I https://archive.ubuntu.com/ubuntu/

sudo apt update curl -I http://archive.ubuntu.com/ubuntu/ curl -I https://archive.ubuntu.com/ubuntu/

Если HTTP возвращает 403/redirect/странный HTML, сеть или зеркало подменяет ответ. Если timeout - возможно блокировка или проблема маршрута. Если Hash Sum mismatch - часто виноват прозрачный прокси или кэширующее устройство.

Проверьте DNS и трассировку:

getent hosts archive.ubuntu.com
traceroute archive.ubuntu.com

getent hosts archive.ubuntu.com traceroute archive.ubuntu.com

На практике нормальное решение - перейти на HTTPS в sources.list. Современный apt поддерживает HTTPS штатно, отдельный apt-transport-https для новых версий обычно не нужен.

sudo sed -i 's|http://archive.ubuntu.com|https://archive.ubuntu.com|g' /etc/apt/sources.list
sudo sed -i 's|http://security.ubuntu.com|https://security.ubuntu.com|g' /etc/apt/sources.list
sudo apt update

sudo sed -i 's|http://archive.ubuntu.com|https://archive.ubuntu.com|g' /etc/apt/sources.list sudo sed -i 's|http://security.ubuntu.com|https://security.ubuntu.com|g' /etc/apt/sources.list sudo apt update

Для Debian аналогично замените http://deb.debian.org на https://deb.debian.org. Если у вас старый дистрибутив, убедитесь, что установлены ca-certificates и системное время корректное:

sudo apt install ca-certificates
timedatectl

sudo apt install ca-certificates timedatectl

Вывод: если HTTPS стабильно работает, используйте HTTPS. HTTP для репозиториев допустим за счет подписи пакетов, но он хуже переносит подмены, прокси и сетевые фильтры. Если нужно найти корень - смотрите curl -I и реальный код ответа по HTTP.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно