синтаксис проксі-сервера SOCKS в apt.conf


23

Я хочу додати налаштування проксі-сервера SOCKS до /etc/apt/apt.conf. Який для нього синтаксис? Це те саме, що синтаксис http та ftp?

Спасибі.

Відповіді:


31

Можливим рішенням може бути використання 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

11
Здається, tsocks не встановлено за замовчуванням, тому мені потрібно запустити sudo tsocks apt-get install tsocks.
Хахахахаха

1
Ви можете використовувати curl для завантаження tsocks, встановлення та використання :)
neutrinus

3
Також: Щодо apt 1.3 ~ rc1 (версія Debian, не впевнений, яка саме версія Ubuntu, хоча, напевно, не до Zesty), ви можете використовувати Acquire::http::Proxy "socks5h://hostname:port/". Дивіться журнал
derobert

1
Ну ... це смішно. Щоб власноруч працювати, вам потрібно ... apt-get something!
Equidamoid

2
невелика корекція до лінії @derobert: Acquire::socks::Proxy "socks5h://hostname:port/";робить фокус. Http зовсім НЕ - спробуйте з Tor і ви побачите стандартну відповідь «Tor не є HTTP - проксі», тому httpйде замінений socks- і це працює!
Олексій Веснін

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

Це працює для мене на Ubuntu 18.04. Як зазначається підрукова сторінка, socks5h, а не socks5 підтримується apt, що означає проксі socks5 з можливістю вирішення DNS.


1
Це правильно, і справді, здається, працює над Ubuntu 18.04. Хоча можна включити також Acquire :: https :: proxy та Acquire :: ftp :: proxy (з тим же значенням).
Хамі

1
додавання правила проксі Acquire::https::proxy "socks5h://server:port";до apt.conf.dфайлу (як /etc/apt/apt.conf.d/12proxy) працює чудово. Я б запропонував дотримуватися https, якщо інше не потрібно.
codegenki

Також для проксі-сервера, який потребує автентифікації, ця рядок змінено як Acquire::http::proxy "socks5h://user:pass@server:port";. Вищезазначене правило працює чудово в Ubuntu 18.04. Тут socks5hзастосовується роздільна здатність DNS на проксі-сервері.
codegenki

Хтось знає, чи працює це в Ubuntu 16.04?
бекко

не працює 14.04
razieh babaee

8

Використання наступного рядка конфігурації працює для мене:

Acquire::socks::proxy "socks5://server:port";

Щоб зберегти apt.confчистоту та уникнути проблем при оновленнях Linux, я створив новий файл ( /etc/apt/apt.conf.d/12proxy) та додав до нього конфігураційний файл.


що означає номер початку у фолєрі
Кріс Руф

Це просто наказ про виконання сценарію
Bit-Man

Це неправильно. Це не працює.
дедунумакс

Що вам не вдалося @dedunumax? Будь-яка помилка? Якась підказка?
Bit-Man

1
Слід придбати :: http :: proxy, а також socks5 h для роздільної здатності dns на стороні проксі
ZAB

4

Я не зміг знайти нічого на 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/";

3

Або tou може поставити у свій /etc/apt/apt.conf щось подібне:

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

2
Схоже, це не працює в Ubuntu 12.04
Шнацель

Працює в 13.10.
isaaclw

4
Я впевнений, що це неправильний синтаксис, це означає "проксі всі URL-адреси, які починаються з шкарпеток: // через socks: // user: pass @ host: port /". Дійсно, так має бути:Acquire::http::proxy "socks://user:pass@host:port/";
Ганс-Крістоф Штайнер

@ Hans-ChristophSteiner: Це з’єднує вказаний хост і порт, але для з'єднання не використовується протокол шкарпеток. Це схоже на протокол http проксі, але я не перевіряв фактичний http проксі.
Сет Робертсон

На даний момент я впевнений, що Acquire::socksце встановлення проксі для URL-адрес, які починаються з socks://. Так що кошти вам не потрібен проксі - сервер для доступу в Інтернет, а також aptне використовує проксі - сервери для ftp://, http://або https://.. aptпідтримує тільки HTTP проксі, тобто Acquire::http::proxy "http://localhost:8118.
Ганс-Крістоф Штайнер

0

У 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 на всіх інтерфейсах. Це може бути ризиком для безпеки або порушенням (корпоративної) політики. Переконайтеся, що ви знаєте, що робите.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.