cú pháp cho proxy SOCKS trong apt.conf


23

Tôi muốn thêm cài đặt proxy SOCKS vào /etc/apt/apt.conf. Cú pháp cho nó là gì? Có giống như cú pháp http và ftp không?

Cảm ơn.

Câu trả lời:


31

Một giải pháp khả thi có thể là sử dụng tsocks, một ứng dụng có thể chuyển hướng lưu lượng mạng thông qua proxy vớ. Cài đặt tsocksgói, sửa đổi /etc/tsocks.confđể đặt địa chỉ và số cổng của proxy vớ của bạn và chạy:

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

hoặc là

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

Bạn có thể nghĩ đến một số tùy chọn, để đơn giản hóa và tự động hóa việc sử dụng nó.
Đừng quên dấu chấm hàng đầu, Manpage có nhiều phần mềm hơn về điều này.

Chỉnh sửa : một cách ngắn hơn để sử dụng nó:

$ sudo tsocks apt-get update
$ sudo tsocks apt-get dist-upgrade

11
Có vẻ như tsocks không được cài đặt theo mặc định, vì vậy tôi cần phải chạy sudo tsocks apt-get install tsocks. Hahahahahaha ...
fikr4n

1
Bạn có thể sử dụng curl để tải xuống tsocks, cài đặt và sau đó sử dụng :)
neutrinus

3
Ngoài ra: Kể từ apt 1.3 ~ rc1 (phiên bản Debian, không chắc chắn chính xác phiên bản Ubuntu nào, mặc dù dự đoán của tôi không phải là cho đến khi Zesty), bạn có thể sử dụng Acquire::http::Proxy "socks5h://hostname:port/". Xem thay đổi tại anonscm.debian.org/gitweb/?p=apt/apt.git;a=blob;f=debian/iêu
derobert

1
Chà ... thật buồn cười. Để thực hiện công việc apt-get, bạn cần ... apt-get something!
Equidamoid

2
một chút chỉnh sửa cho dòng @derobert: Acquire::socks::Proxy "socks5h://hostname:port/";thực hiện thủ thuật. Http không - hãy thử với Tor và bạn sẽ thấy phản hồi tiêu chuẩn "Tor không phải là proxy http", do đó http, thay thế bằng socks- và nó hoạt động!
Alexey Vesnin

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

Điều này làm việc cho tôi trên Ubuntu 18.04. Như trang người đàn ông nói, vớ5h, không phải vớ5, được hỗ trợ bởi apt, có nghĩa là vớ5 proxy với khả năng phân giải DNS.


1
Điều này là chính xác và dường như hoạt động trên Ubuntu 18.04. Mặc dù người ta có thể muốn bao gồm cả Acquire :: https :: proxyAcquire :: ftp :: proxy (với cùng một giá trị).
Hamy

1
thêm quy tắc proxy Acquire::https::proxy "socks5h://server:port";vào một apt.conf.dtệp (như /etc/apt/apt.conf.d/12proxy) hoạt động tốt. Tôi sẽ đề nghị bám vào https trừ khi cần thiết.
codegenki

Ngoài ra đối với một máy chủ proxy yêu cầu xác thực, dòng này được sửa đổi thành Acquire::http::proxy "socks5h://user:pass@server:port";. Quy tắc trên chỉ hoạt động tốt trong Ubuntu 18.04. Ở đây socks5hthực thi độ phân giải DNS tại máy chủ proxy.
codegenki

Bất cứ ai cũng biết nếu điều này hoạt động trong Ubuntu 16.04?
vẫy tay

không hoạt động vào ngày 14.04
razieh babaee

8

Sử dụng dòng cấu hình tiếp theo hoạt động với tôi:

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

Để giữ apt.confsạch và tránh các sự cố khi nâng cấp Linux, tôi đã tạo một tệp mới ( /etc/apt/apt.conf.d/12proxy) và thêm tệp cấu hình vào đó.


số bắt đầu có ý nghĩa gì trong
foler

Đó chỉ là thứ tự thực thi tập lệnh
Bit-Man

Cái này sai. Điều này không hoạt động.
depunumax

Điều gì thất bại với bạn @dedunumax? Có lỗi gì không? Có manh mối nào không?
Bit-Man

1
Nó phải là Acquire :: http :: proxy và cả vớ5 h cho độ phân giải dns ở phía proxy
ZAB

4

Tôi không thể tìm thấy bất cứ điều gì trên Acquire :: vớ :: proxy trong hướng dẫn apt.conf của Ubuntu Xenial. Bạn có thể khắc phục điều này bằng cách chạy proxy http cục bộ hỗ trợ proxy vớ ngược dòng, ví dụ như Polipo. Bạn cần cấu hình Polipo như sau:

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

và sau đó đặt proxy http trong tệp apt.conf của bạn:

Acquire::http::proxy "http://127.0.0.1:8118/";
Acquire::https::proxy "https://127.0.0.1:8118/";

3

Hoặc tou có thể đặt trong /etc/apt/apt.conf của bạn một cái gì đó như thế này:

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

2
Điều này dường như không hoạt động trong Ubuntu 12.04
Shnatsel

Hoạt động trong 13.10.
isaaclw

4
Tôi khá chắc chắn đây là cú pháp sai, nó có nghĩa là "proxy tất cả các URL bắt đầu bằng vớ: // thông qua vớ: // user: pass @ host: port /". Thực sự, nó phải là thế này:Acquire::http::proxy "socks://user:pass@host:port/";
Hans-Christoph Steiner

@ Hans-ChristophSteiner: Điều này tạo kết nối đến máy chủ và cổng được chỉ định, nhưng kết nối không sử dụng giao thức vớ. Nó trông giống như một giao thức proxy http, nhưng tôi đã không kiểm tra với một proxy http thực tế.
Seth Robertson

Tại thời điểm này, tôi chắc chắn rằng đó Acquire::sockslà để đặt proxy cho các URL bắt đầu bằng socks://. Vì vậy, đó có nghĩa là bạn không cần một proxy để truy cập Internet, và aptkhông được sử dụng bất kỳ proxy cho ftp://, http://hoặc https://.. aptchỉ hỗ trợ HTTP proxy, tức là Acquire::http::proxy "http://localhost:8118.
Hans-Christoph Steiner

0

Trong Debian, bạn có thể đọc manpage apt-transport-http(1)và tìm kiếm các lược đồ URI được hỗ trợ. Như đã được trả lời trước, đặt

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

trong

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

Bạn có thể đọc thêm về APT-config nói chung apt.conf(5)và đọc các ví dụ /usr/share/doc/apt/examples/configure-index.gzđược đề cập ở cuối trang.

Điều này có thể được kết hợp với ssh -D <LOCAL PORT> <USER>@<HOST>để tạo proxy SOCKS cho một hệ thống khác để apt có thể sử dụng proxy như thể mọi thứ bắt nguồn từ đó <HOST>.

Nếu bạn sử dụng ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST>hoặc ssh -D [::]:<LOCAL PORT> <USER>@<HOST>(đối với IPv6) để cho phép các hệ thống khác sử dụng proxy SOCKS trên tất cả các giao diện. Đây có thể là rủi ro bảo mật hoặc vi phạm chính sách (doanh nghiệp). Hãy chắc chắn rằng bạn biết những gì bạn đang làm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.