sintaks untuk proksi SOCKS di apt.conf

23

Saya ingin menambahkan pengaturan proxy SOCKS ke /etc/apt/apt.conf. Apa sintaksinya? Apakah sama dengan sintaksis http dan ftp?

Terima kasih.

Pengguna aktif
sumber

Jawaban:

31

Solusi yang mungkin dapat digunakan tsocks, aplikasi yang dapat mengarahkan lalu lintas jaringan melalui proxy kaus kaki. Instal tsockspaket, modifikasi /etc/tsocks.confuntuk menetapkan alamat dan nomor port proxy kaus kaki Anda, dan jalankan:

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

atau

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

Anda dapat memikirkan sejumlah opsi, untuk menyederhanakan dan mengotomatiskan penggunaannya.
Jangan lupa titik terkemuka, Manpage memiliki lebih banyak deatails pada ini.

Sunting : cara yang lebih singkat untuk menggunakannya:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade
enzotib
sumber
11
Sepertinya tsocks tidak diinstal secara default, jadi saya harus menjalankannya sudo tsocks apt-get install tsocks. Hahahahahaha ...
fikr4n
1
Anda dapat menggunakan curl untuk mengunduh tsocks, menginstalnya dan kemudian menggunakan :)
neutrinus
3
Juga: Pada apt 1.3 ~ rc1 (versi Debian, tidak yakin persis versi Ubuntu mana, meskipun dugaan saya tidak sampai Zesty), Anda dapat menggunakan Acquire::http::Proxy "socks5h://hostname:port/". Lihat changelog di anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/…
derobert
1
Yah ... itu lucu. Untuk membuat pekerjaan yang tepat, Anda harus ... apt-get something!
Equidamoid
2
sedikit koreksi ke baris @derobert: Acquire::socks::Proxy "socks5h://hostname:port/";lakukan triknya. Http tidak - coba saja dengan Tor dan Anda akan melihat respons standar "Tor bukan proxy http", jadi httpdiganti dengan socks- dan berfungsi!
Alexey Vesnin
17
Acquire::http::proxy "socks5h://server:port";

Ini berfungsi untuk saya di Ubuntu 18.04. Seperti yang dikatakan halaman manual, socks5h, bukan socks5, didukung oleh apt, yang berarti proxy socks5 dengan kemampuan penyelesaian DNS.

苏永刚
sumber
1
Ini benar dan tampaknya berfungsi di Ubuntu 18.04. Meskipun orang mungkin ingin memasukkan Acquire :: https :: proxy dan Acquire :: ftp :: proxy juga (dengan nilai yang sama).
Hamy
1
menambahkan aturan proxy Acquire::https::proxy "socks5h://server:port";ke apt.conf.dfile (seperti /etc/apt/apt.conf.d/12proxy) berfungsi dengan baik. Saya menyarankan untuk tetap menggunakan https kecuali jika diperlukan.
codegenki
Juga untuk server proxy yang memerlukan otentikasi, baris ini dimodifikasi sebagai Acquire::http::proxy "socks5h://user:pass@server:port";. Aturan di atas berfungsi dengan baik di Ubuntu 18.04. Di sini socks5hmenerapkan resolusi DNS di server proxy.
codegenki
Adakah yang tahu apakah ini berfungsi di Ubuntu 16.04?
becko
tidak bekerja pada 14,04
razieh babaee
8

Menggunakan baris konfigurasi berikutnya berfungsi untuk saya:

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

Untuk menjaga apt.confkebersihan dan menghindari masalah pada peningkatan Linux saya membuat file baru ( /etc/apt/apt.conf.d/12proxy) dan menambahkan file konfigurasi ke dalamnya.

Bit-Man
sumber
apa arti angka awal dalam foler
Kris Roofe
Itu hanya perintah eksekusi skrip
Bit-Man
Ini salah. Ini tidak bekerja
dedunumax
Apa yang gagal bagimu @dedunumax? Ada kesalahan? Ada petunjuk?
Bit-Man
1
Seharusnya Acquire :: http :: proxy dan juga socks5 h untuk resolusi dns di sisi proxy
ZAB
4

Saya tidak dapat menemukan apa pun di Acquire :: socks :: proxy di manual apt.conf Ubuntu Xenial. Anda dapat memperbaikinya dengan menjalankan proksi http lokal yang mendukung proksi kaus kaki hulu, misalnya Polipo. Anda perlu mengonfigurasi Polipo sebagai berikut:

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

dan kemudian atur proxy http di file apt.conf Anda:

Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";
Mos
sumber
3

Atau tou dapat meletakkan sesuatu di /etc/apt/apt.conf Anda seperti ini:

Acquire::socks::proxy "socks://user:pass@host:port/";
mrkbbk
sumber
2
Ini sepertinya tidak berfungsi di Ubuntu 12.04
Shnatsel
Bekerja di 13.10.
isaaclw
4
Saya cukup yakin ini salah sintaks, artinya "proksi semua URL yang dimulai dengan kaus kaki: // melalui kaus kaki: // pengguna: pass @ host: port /". Sungguh, seharusnya ini:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner
@ Hans-ChristophSteiner: Ini membuat koneksi ke host dan port yang ditunjukkan, tetapi koneksi tidak menggunakan protokol kaus kaki. Sepertinya protokol proxy http, tapi saya tidak memeriksa dengan proxy http yang sebenarnya.
Seth Robertson
Pada titik ini, saya yakin itu Acquire::socksuntuk mengatur proxy untuk URL yang dimulai dengan socks://. Sehingga berarti Anda tidak perlu proxy untuk mengakses internet, dan apttidak menggunakan proxy untuk ftp://, http://atau https://.. apthanya mendukung HTTP proxy, yaitu Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner
0

Di Debian, Anda dapat membaca halaman manual apt-transport-http(1)dan mencari skema URI yang didukung. Seperti yang dijawab sebelumnya, tulis

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

di

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

Anda dapat membaca lebih lanjut tentang konfigurasi APT secara umum di apt.conf(5)dan membaca contoh-contoh yang /usr/share/doc/apt/examples/configure-index.gzdisebutkan di akhir halaman manual.

Ini dapat dikombinasikan dengan ssh -D <LOCAL PORT> <USER>@<HOST>untuk membuat proxy SOCKS ke sistem yang berbeda sehingga apt kemudian dapat menggunakan proxy seolah-olah semuanya berasal <HOST>.

Jika Anda menggunakan ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>atau ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(untuk IPv6) untuk mengaktifkan sistem lain untuk menggunakan proxy SOCKS pada semua antarmuka. Ini bisa menjadi risiko keamanan atau pelanggaran kebijakan (perusahaan). Pastikan Anda tahu apa yang Anda lakukan.

AdamKalisz
sumber