Odpowiedzi:
Możliwym rozwiązaniem może być użycie tsocks
aplikacji, która może przekierowywać ruch sieciowy za pośrednictwem proxy skarpet. Zainstaluj tsocks
pakiet, zmodyfikuj, /etc/tsocks.conf
aby 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
tsocks
, zainstalować, a następnie użyć :)
apt-get something
!
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 http
zastępuje go socks
- i działa!
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.
Acquire::https::proxy "socks5h://server:port";
do apt.conf.d
pliku (jak /etc/apt/apt.conf.d/12proxy
) działa dobrze. Proponuję trzymać się protokołu https, chyba że jest to konieczne.
Acquire::http::proxy "socks5h://user:pass@server:port";
. Powyższa reguła działa dobrze w Ubuntu 18.04. socks5h
Wymusza tutaj rozpoznawanie DNS na serwerze proxy.
Użycie następnej linii konfiguracji działa dla mnie:
Acquire::socks::proxy "socks5://server:port";
Aby zachować apt.conf
czystość 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.
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/";
Lub tou może umieścić w pliku /etc/apt/apt.conf coś takiego:
Acquire::socks::proxy "socks://user:pass@host:port/";
Acquire::http::proxy "socks://user:pass@host:port/";
Acquire::socks
jest to ustawienie proxy dla adresów URL zaczynających się od socks://
. To znaczy, nie trzeba proxy do uzyskania dostępu do Internetu, a apt
nie za pomocą dowolnego proxy ftp://
, http://
albo https://
.. apt
obsługuje tylko HTTP proxy, tj Acquire::http::proxy "http://localhost:8118
.
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.gz
wspomniane 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.
sudo tsocks apt-get install tsocks
.