Відповіді:
Можливим рішенням може бути використання tsocks
програми, яка може перенаправляти мережевий трафік через проксі-носок. Встановіть tsocks
пакет, змініть, /etc/tsocks.conf
щоб встановити адресу та номер порту проксі-носка, і запустіть:
$ sudo -s
# tsocks apt-get update
# tsocks apt-get dist-upgrade
# exit
$
або
$ sudo -s
# . tsocks -on
# apt-get update
# apt-get dist-upgrade
# . tsocks -off # not really necessary, given the exit
# exit
$
Можна продумати ряд варіантів, щоб спростити та автоматизувати його використання.
Не забувайте про головну крапку, на Manpage є більше деталей щодо цього.
Редагувати : коротший спосіб його використання:
$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
tsocks
, встановлення та використання :)
apt-get something
!
Acquire::socks::Proxy "socks5h://hostname:port/";
робить фокус. Http зовсім НЕ - спробуйте з Tor і ви побачите стандартну відповідь «Tor не є HTTP - проксі», тому http
йде замінений socks
- і це працює!
Acquire::http::proxy "socks5h://server:port";
Це працює для мене на Ubuntu 18.04. Як зазначається підрукова сторінка, socks5h, а не socks5 підтримується apt, що означає проксі socks5 з можливістю вирішення DNS.
Acquire::https::proxy "socks5h://server:port";
до apt.conf.d
файлу (як /etc/apt/apt.conf.d/12proxy
) працює чудово. Я б запропонував дотримуватися https, якщо інше не потрібно.
Acquire::http::proxy "socks5h://user:pass@server:port";
. Вищезазначене правило працює чудово в Ubuntu 18.04. Тут socks5h
застосовується роздільна здатність DNS на проксі-сервері.
Використання наступного рядка конфігурації працює для мене:
Acquire::socks::proxy "socks5://server:port";
Щоб зберегти apt.conf
чистоту та уникнути проблем при оновленнях Linux, я створив новий файл ( /etc/apt/apt.conf.d/12proxy
) та додав до нього конфігураційний файл.
Я не зміг знайти нічого на Acquire :: socks :: proxy в посібнику apt.conf Ubuntu Xenial. Ви можете виправити це, запустивши локальний http-проксі, який підтримує проксі-сервер для шкарпеток, наприклад Polipo. Вам потрібно налаштувати Polipo так:
proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "sockshost:socksport"
socksProxyType = socks5
а потім встановіть http-проксі у вашому файлі apt.conf:
Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";
Або tou може поставити у свій /etc/apt/apt.conf щось подібне:
Acquire::socks::proxy "socks://user:pass@host:port/";
Acquire::http::proxy "socks://user:pass@host:port/";
Acquire::socks
це встановлення проксі для URL-адрес, які починаються з socks://
. Так що кошти вам не потрібен проксі - сервер для доступу в Інтернет, а також apt
не використовує проксі - сервери для ftp://
, http://
або https://
.. apt
підтримує тільки HTTP проксі, тобто Acquire::http::proxy "http://localhost:8118
.
У Debian ви можете прочитати сторінку пошуку apt-transport-http(1)
та шукати підтримувані схеми URI. Як відповіли раніше, покладіть
Acquire::http::proxy "socks5h://server:port";
в
/etc/apt/apt.conf.d/12proxy
Ви можете прочитати більше про APT-конфігурацію загалом apt.conf(5)
і прочитати приклади, /usr/share/doc/apt/examples/configure-index.gz
згадані в кінці сторінки.
Це може поєднуватися із ssh -D <LOCAL PORT> <USER>@<HOST>
створенням проксі-сервера SOCKS до іншої системи, щоб apt потім міг використовувати проксі-сервер так, як ніби все виникло <HOST>
.
Якщо ви використовуєте ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>
або ssh -D [::]:<LOCAL PORT> <USER>@<HOST>
(для IPv6), щоб дозволити іншим системам використовувати проксі-сервер SOCKS на всіх інтерфейсах. Це може бути ризиком для безпеки або порушенням (корпоративної) політики. Переконайтеся, що ви знаєте, що робите.
sudo tsocks apt-get install tsocks
.