Có cách nào để thiết lập hệ thống proxy toàn mạng không?


18

Nếu tôi muốn có các ứng dụng Gnome (cũng như Firefox và Chrome) truy cập mạng thông qua proxy, tôi chỉ cần sử dụng gnome-network-properties(tôi phải nói một GUI đơn giản và đẹp). Đối với các ứng dụng khác (ví dụ APT, Transmission, XChat), tôi phải sử dụng các cách thức cụ thể để thực hiện.

Có cách nào để tránh điều này không, một cái gì đó tôi có thể bật và tắt khi trong mạng yêu cầu proxy (tên máy chủ: cổng)?


1
Tôi nghĩ rằng http_proxybiến là những gì bạn đang tìm kiếm. Hãy xem cách hỗ trợ Proxy .
sakisk

Câu trả lời:


11

Tôi nghĩ rằng khá nhiều tất cả các phần mềm linux / unix sử dụng mạng sẽ tôn vinh các biến môi trường http_proxyftp_proxybiến. Tùy thuộc vào cách phân phối của bạn được thiết lập, /etc/environmentsẽ tồn tại và được đọc theo mặc định bởi các vỏ đăng nhập.

Bạn có thể thêm một dòng nói

http_proxy=123.45.67.89:1011

trong /etc/environmentmột cách dễ dàng đủ, nhưng những thay đổi trong tập tin đó sẽ chỉ mất giữ lần sau khi bạn bắt đầu một quá trình shell - và chỉ trong quá trình shell. Tôi không nghĩ rằng bạn có thể sửa đổi các biến toàn cục trong một vỏ khác với biến hiện tại của bạn.


1
... với ngoại lệ đáng chú ý là Firefox và Thunderbird Askubfox.com/a/23123
akraf - Tái lập lại

và nó xuất hiện, cũng node không
Brad

có, và tải lại shell theo cách khác có nghĩa là đăng xuất và sau đó đăng nhập lại cho shell đồ họa.
Himanshu Shekhar

6

Tôi đồng ý rằng cách tốt nhất để sử dụng máy chủ proxy là với biến môi trường http_proxy, như các câu trả lời khác đã chỉ ra. Thật không may, không phải tất cả các ứng dụng đều tôn trọng biến môi trường http_proxy, đó là lý do tại sao tôi vẫn sử dụng tsocks cho một số chương trình để sử dụng LD_PRELOAD để buộc các kết nối mạng phải đi qua proxy SOCKS.


3

Bên cạnh tsocks - vẫn còn AFAICT yêu cầu bạn khởi chạy các chương trình với môi trường chính xác để hoạt động - bạn nên kiểm tra tun2socks . Với nó, bạn thiết lập giao diện TUN (tức là giao diện mạng mới, giống như VPN sẽ tạo) và bất kỳ gói tin nào được gửi tới đó đều được ủy quyền cho máy chủ SOCKS5 của bạn. Sau đó, bạn thiết lập các tuyến hệ thống của mình để thực sự gửi lưu lượng đến đây. Có vẻ như một cách tiếp cận tốt đẹp.

(Tôi cũng thấy redsocks qua bài này này dường như không phải là thanh lịch như sử dụng một giao diện TUN với tôi -.. Ví dụ như nó không thực sự xử lý UDP ở tất cả, cho người mới bắt đầu)


3

Tôi sử dụng công cụ này , về cơ bản là một vài tập lệnh để cấu hình cài đặt cho các ứng dụng khác nhau từ một điểm.

PS: Tôi đã viết và duy trì công cụ đó.


2

Không có giải pháp nào cho tất cả. Mỗi chương trình sử dụng cách riêng để kết nối với máy chủ proxy.

Tôi có một vấn đề tương tự tại văn phòng của tôi. Tôi thấy rằng cách tốt nhất để làm điều này là sử dụng kết nối VPN. Khi bạn kết nối, toàn bộ lưu lượng mạng hệ thống sẽ đi qua VPN. Nếu bạn không có quyền truy cập vào máy chủ VPN, bạn có thể chạy một máy chủ mới theo cách thủ công và kết nối nó với máy chủ proxy mà bạn có.

Nếu bạn có một ứng dụng không hỗ trợ proxy, bạn có thể sử dụng một cái gì đó như vớify , để bọc kết nối mạng của nó.


Vì vậy, bạn đã thử điều này và thất bại?
tshepang

0

Tôi có một vấn đề tương tự, nhưng đối với tôi để thực hiện một proxy toàn hệ thống sẽ giải quyết kernel của Linux iptables. Thêm và xóa quy tắc chuyển tiếp trong iptables(địa chỉ, cổng & giao thức cụ thể), hoạt động trên lớp mạng là cách duy nhất để đảm bảo proxy toàn hệ thống, không thể bị ghi đè bởi bất kỳ cài đặt dành riêng cho ứng dụng nào trong lớp ứng dụng.


0

Điều này làm việc cho tôi
vi /etc/environment:

http_proxy="http://username:password@proxysrv:8080/"
https_proxy="https://username:password@proxysrv:8080/"
ftp_proxy="ftp://username:password@proxysrv:8080/"
no_proxy=".mylan.local,.domain1.com,host1,host2"

cũng
vi /etc/yum.conf:

proxy=http://proxysrv:8080
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.