składnia proxy SOCKS w apt.conf

23

Chcę dodać ustawienia proxy SOCKS do /etc/apt/apt.conf. Jaka jest jego składnia? Czy to to samo, co składnia http i ftp?

Dzięki.

Ubuntuser
źródło

Odpowiedzi:

31

Możliwym rozwiązaniem może być użycie tsocksaplikacji, która może przekierowywać ruch sieciowy za pośrednictwem proxy skarpet. Zainstaluj tsockspakiet, zmodyfikuj, /etc/tsocks.confaby ustawić adres i numer portu serwera proxy skarpet, i uruchom:

$ sudo -s
# tsocks apt-get update
# tsocks apt-get dist-upgrade
# exit
$

lub

$ sudo -s
# . tsocks -on
# apt-get update
# apt-get dist-upgrade
# . tsocks -off # not really necessary, given the exit
# exit
$

Możesz pomyśleć o szeregu opcji, aby uprościć i zautomatyzować jego użycie.
Nie zapomnij o wiodącej kropce, na Manpage znajdziesz więcej szczegółów.

Edycja : krótszy sposób użycia:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
enzotib
źródło
11
Wygląda na to, że tsocks nie jest domyślnie instalowany, więc muszę uruchomić sudo tsocks apt-get install tsocks.
Hahahahahaha
1
Możesz użyć curl, aby pobrać tsocks, zainstalować, a następnie użyć :)
neutrinus
3
Ponadto: Począwszy od apt 1.3 ~ rc1 (wersja Debian, nie jestem pewien, która dokładnie wersja Ubuntu, choć przypuszczam, że dopiero w Zesty), możesz użyć Acquire::http::Proxy "socks5h://hostname:port/". Zobacz dziennik
derobert
1
Cóż ... to zabawne. Aby apt-get działał, musisz ... apt-get something!
Equidamoid,
2
mała korekta do linii @derobert: załatwia sprawę Acquire::socks::Proxy "socks5h://hostname:port/";. Http nie - wypróbuj go z Torem, a zobaczysz standardową odpowiedź „Tor nie jest serwerem proxy HTTP”, więc httpzastępuje go socks- i działa!
Alexey Vesnin,
17
Acquire::http::proxy "socks5h://server:port";

Działa to dla mnie na Ubuntu 18.04. Jak mówi strona podręcznika, socks5h, a nie socks5, jest obsługiwany przez apt, co oznacza, że ​​socks5 proxy z funkcją rozpoznawania nazw DNS.

苏永刚
źródło
1
Jest to poprawne i rzeczywiście działa na Ubuntu 18.04. Chociaż można również dołączyć Acquire :: https :: proxy i Acquire :: ftp :: proxy (o tej samej wartości).
Hamy
1
dodanie reguły proxy Acquire::https::proxy "socks5h://server:port";do apt.conf.dpliku (jak /etc/apt/apt.conf.d/12proxy) działa dobrze. Proponuję trzymać się protokołu https, chyba że jest to konieczne.
codegenki
Również w przypadku serwera proxy wymagającego uwierzytelnienia linia ta jest modyfikowana jako Acquire::http::proxy "socks5h://user:pass@server:port";. Powyższa reguła działa dobrze w Ubuntu 18.04. socks5hWymusza tutaj rozpoznawanie DNS na serwerze proxy.
codegenki
Czy ktoś wie, czy to działa w Ubuntu 16.04?
becko
nie działa w dniu 14.04
razieh babaee
8

Użycie następnej linii konfiguracji działa dla mnie:

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

Aby zachować apt.confczystość i uniknąć problemów podczas aktualizacji systemu Linux, stworzyłem nowy plik ( /etc/apt/apt.conf.d/12proxy) i dodałem do niego plik konfiguracyjny.

Bit-Man
źródło
co oznacza liczba początkowa w folerze
Kris Roofe
To tylko polecenie wykonania skryptu
Bit-Man,
To jest źle. To nie działa
dedunumax
Co ci się nie udało @dedunumax? Jakieś błędy? Jakieś wskazówki?
Bit-Man,
1
Powinien to być Acquire :: http :: proxy, a także socks5 h dla rozdzielczości dns po stronie proxy
ZAB
4

Nic nie znalazłem na Acquire :: socks :: proxy w instrukcji apt.conf Ubuntu Xenial. Możesz to naprawić, uruchamiając lokalny serwer proxy HTTP, który obsługuje serwer proxy skarpet nadrzędnych, na przykład Polipo. Musisz skonfigurować Polipo w następujący sposób:

proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "sockshost:socksport"
socksProxyType = socks5

a następnie ustaw proxy HTTP w pliku apt.conf:

Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";
Mos
źródło
3

Lub tou może umieścić w pliku /etc/apt/apt.conf coś takiego:

Acquire::socks::proxy "socks://user:pass@host:port/";
mrkbbk
źródło
2
To nie wydaje się działać w Ubuntu 12.04
Shnatsel
Działa w 13.10.
isaaclw
4
Jestem prawie pewien, że to zła składnia, oznacza to „proxy wszystkich adresów URL zaczynających się od socks: // przez socks: // user: pass @ host: port /”. Naprawdę powinno być tak:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner
@ Hans-ChristophSteiner: Nawiązuje połączenie ze wskazanym hostem i portem, ale połączenie nie używa protokołu skarpet. Wygląda jak protokół proxy HTTP, ale nie sprawdziłem rzeczywistego proxy proxy.
Seth Robertson
W tym momencie jestem pewien, że Acquire::socksjest to ustawienie proxy dla adresów URL zaczynających się od socks://. To znaczy, nie trzeba proxy do uzyskania dostępu do Internetu, a aptnie za pomocą dowolnego proxy ftp://, http://albo https://.. aptobsługuje tylko HTTP proxy, tj Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner,
0

W Debianie możesz przeczytać stronę podręcznika apt-transport-http(1) i poszukać obsługiwanych schematów URI. Jak już wcześniej odpowiedziano, postaw

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

w

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

Możesz przeczytać więcej o konfiguracji APT w ogóle apt.conf(5)i przeczytać przykłady /usr/share/doc/apt/examples/configure-index.gzwspomniane na końcu strony podręcznika.

Można to połączyć z ssh -D <LOCAL PORT> <USER>@<HOST> tworzeniem proxy SOCKS do innego systemu, aby apt mógł następnie używać proxy tak, jakby wszystko powstało <HOST>.

Jeśli używasz ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>lub ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(dla IPv6), aby umożliwić innym systemom korzystanie z proxy SOCKS na wszystkich interfejsach. Może to stanowić zagrożenie bezpieczeństwa lub naruszenie zasad (korporacyjnych). Upewnij się, że wiesz, co robisz.

AdamKalisz
źródło