Синтаксис для SOCKS прокси в apt.conf

Я хочу добавить настройки прокси-сервера SOCKS в /etc/apt/apt.conf. Каков синтаксис для этого? Это так же, как синтаксис http и ftp?

Благодарю.

5 ответов

Решение

Возможным решением может быть использование tsocks приложение, которое может перенаправлять сетевой трафик через прокси socks. устанавливать tsocks пакет, изменить /etc/tsocks.conf установить адрес и номер порта вашего прокси-сервера socks и запустить:

$ 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
Acquire::http::proxy "socks5h://server:port";

Это работает для меня на Ubuntu 18.04. Как говорится на странице руководства, apt поддерживает socks5h, а не socks5, что означает прокси socks5 с возможностью разрешения 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/";

Или вы можете вставить в ваш /etc/apt/apt.conf что-то вроде этого:

Acquire::socks::proxy "socks://user:pass@host:port/";

В Debian вы можете прочитать man-страницу apt-transport-http(1) и искать поддерживаемые схемы URI. Как ответили раньше, поставь

Acquire::http::proxy "socks5h://server:port";

в

/etc/apt/apt.conf.d/12proxy

Вы можете прочитать больше о APT-config в целом в 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 на всех интерфейсах. Это может быть угрозой безопасности или нарушением (корпоративной) политики. Убедитесь, что вы знаете, что делаете.

Другие вопросы по тегам