Làm cách nào để thay đổi cài đặt proxy của tôi tùy thuộc vào mạng tôi kết nối?


20

Mạng công ty của công ty tôi yêu cầu tôi đặt proxy mạng để truy cập mạng, nhưng khi tôi ở bất kỳ nơi nào khác, tôi không cần nó. Cài đặt proxy trong Ubuntu (Hệ thống -> Tùy chọn -> Máy chủ proxy) cho phép tôi tạo "vị trí" mà tôi có thể chọn thủ công. Sau đó, tôi có một vị trí "mặc định" (không có proxy) và vị trí "làm việc" (có proxy của công ty tôi trong đó).

Có cách nào để Ubuntu tự động chọn vị trí "làm việc" dựa trên kết nối tôi đang sử dụng không? Tôi nghĩ rằng tôi có thể sử dụng mạng con IP (rất cụ thể) để phát hiện tôi đang ở đâu, nhưng tôi không biết làm cách nào để thiết lập nó ...

Chỉnh sửa: Tôi thực sự cần phải cài đặt proxy ở cấp hệ thống. Tất cả các kết nối mạng của tôi (IMAP, SMTP, trò chuyện, v.v.) cần phải đi qua proxy. Không chỉ trình duyệt web.

Câu trả lời:


7

Tôi có thể nghĩ về một cách, nhưng thiết lập nó sẽ hơi mơ hồ.

Về cơ bản, bạn có thể sử dụng tệp PAC

Cài đặt một máy chủ web trên hệ thống của bạn, bất kỳ máy chủ web nhỏ nào cũng được, bạn không cần một hệ thống lớn như apache.

Tạo một tệp wpad.datvới các chỉ thị PAC khớp với địa chỉ nguồn của bạn và sau đó định cấu hình hệ thống của bạn để sử dụng proxy chính xác.

Trong firefox, định cấu hình proxy để trỏ đến tệp PAC cục bộ của bạn. Nó có lẽ sẽ là một cái gì đó như http://localhost/wpad.dat.

Tệp PAC của bạn có thể trông giống như thế này ( chưa được kiểm tra ). Xem ở đây để biết thêm ví dụ PAC .

function FindProxyForURL(url, host) {   
  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 1.2.3.4:8080; PROXY 4.5.6.7:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

Tôi chưa bao giờ thử nó và tôi không ở trong hệ thống để kiểm tra, nhưng bạn thậm chí có thể chỉ định tệp PAC bằng file://URL trong firefox, điều đó có nghĩa là bạn có thể bỏ qua việc thiết lập máy chủ web.

Tất nhiên đó cũng là giải pháp nhanh chóng và dễ dàng, nhưng nó đòi hỏi một chút nỗ lực từ phía bạn khi bạn di chuyển giữa các địa điểm. Cài đặt tiện ích mở rộng Quick Proxy Firefox và chỉ cần nhấp vào nút trên thanh công cụ của bạn để bật hoặc tắt proxy. Nếu bạn sẵn sàng giải quyết vấn đề này với tiện ích mở rộng Firefox, bạn cũng có thể dùng thử FoxyProxy , nó hỗ trợ thiết lập nhiều cấu hình proxy và bạn có thể dễ dàng chuyển đổi giữa các cấu hình.


Thú vị ... tôi sẽ phải kiểm tra. Tôi sẽ cho bạn biết làm thế nào nó bật ra. Tôi nghĩ rằng tiện ích mở rộng Firefox sẽ không làm được: Proxy được sử dụng cho tất cả các giao thức, không chỉ HTTP. Sau đó, tôi cũng cần nó cho sự đồng cảm, tiến hóa, tất cả mọi thứ.
Little Jawa

Ồ, và một điều nữa. Bạn có thể yêu cầu anh chàng IT thiết lập WPAD. Sau đó, bạn chỉ cần sử dụng tùy chọn proxy tự động.
Zoredache

Chà ... làm cho CNTT làm bất cứ điều gì không phải là một lựa chọn tôi sợ. Tôi có thể đưa ra yêu cầu, nhưng tôi chắc chắn sẽ không thấy điều gì xảy ra. Không biện minh kinh doanh có nghĩa là không có tài nguyên để làm điều đó. Và tôi sẽ nhanh chóng làm điều đó hơn là viết ra một lời biện minh :-)
Little Jawa

Được. Sau khi đọc thêm một chút, tôi không hài lòng với giải pháp này. Có vẻ như nó sẽ hoạt động (tôi chưa thử thực hiện nó), nhưng nó sẽ không có sẵn trên toàn hệ thống. Nó chỉ hoạt động cho trình duyệt web, vì (theo findproxyforurl.com/index.html ) hệ thống chỉ được hỗ trợ trong trình duyệt web (vì nó phụ thuộc vào Javascript).
Little Jawa

5

Trong Ubuntu 10.10, tập lệnh .pac hoạt động tốt. Như Zoredache đã giải thích, hãy thiết lập máy chủ web, đặt tệp pac ở đó, mở System-> Preferences-> Network Proxy và đặt "URL tự động cấu hình" thành vị trí tệp pac.

Ví dụ về tệp PAC kiểm tra địa chỉ IP của chính mình: /var/www/selectProxy.pac:

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "192.168.22.63") { 
 return "PROXY 192.168.22.8:8080";
 }
 else {
 return "DIRECT";
 }
 }

Trong Prefs proxy mạng: URL sẽ là:

http://localhost/selectProxy.pac

3

Ngoài câu trả lời của Zoredache, bạn có thể sử dụng tập lệnh trong /etc/network/if-up.d để tạo đoạn mã trong /etc/profile.d/ có chứa các biến vỏ proxy của bạn. Lưu ý rằng điều này sẽ chỉ hoạt động với vỏ mới.

Ngoài ra, phương pháp này có thể được sử dụng để tạo tệp WPAD mà bạn có thể trỏ bất kỳ trình duyệt nào hỗ trợ điều này.


2

Đây là một bài viết khá cũ, nhưng tôi tìm thấy điều này. Hãy xem: http://marin.jb.free.fr/proxydriver/

Bạn có thể cài đặt gói .deb được cung cấp cho Ubuntu. Về cơ bản, đây là một kịch bản shell thay đổi các biến môi trường khi mạng của bạn thay đổi. Bạn có thể định cấu hình cài đặt cho từng mạng bằng cách chỉnh sửa tệp cấu hình (tự động) được tạo trong/etc/proxydriver.d/


2
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Eliah Kagan

0

Tôi có cùng một vấn đề. Hãy khái quát bất kỳ câu trả lời để bao gồm tình huống của tôi.

Tôi sử dụng máy tính xách tay ở nhà trên mạng không dây: - luôn luôn giao diện địa chỉ IP tĩnh giao diện eth1 (192.168.1.10)

Khi tôi đi làm, tôi cắm nó vào: - luôn luôn địa chỉ IP động giao diện eth0 (10.10.xx.xx), và proxy: 10.10.123.123 cổng 8888

Tôi muốn Ubuntu tự động đặt địa chỉ IP và proxy dựa trên giao diện tôi đang sử dụng.

(Tôi đã loay hoay trong / etc / mạng / giao diện [xem "giao diện người đàn ông" và /etc/resolv.conf không có kết quả.


1
Nếu tôi hiểu: thẻ Wifi của bạn có IP tĩnh - thì nó đã được thiết lập "tự động". Và mạng có dây của bạn được đặt bởi DHCP - cũng là tự động ... Sau đó, bạn muốn thêm gì vào đó, liên quan đến cài đặt IP? Tôi hiểu Proxy cần, nhưng không phải IP.
Little Jawa

Bạn biết đấy, tôi nghĩ bạn đúng. Tôi đã trở lại làm việc sau khi tổ chức và nó dường như đang hoạt động tự động. Tôi nghĩ rằng vấn đề duy nhất là proxy. Tôi sẽ điều tra thêm vào ngày mai.

0

Tôi sử dụng cách tiếp cận tệp PAC và nó hoạt động tốt để duyệt nhưng không tốt cho nhiều ứng dụng khác không hiểu tệp PAC - Tôi đoán rằng khi một ứng dụng yêu cầu "proxy config" thông qua API, họ chỉ nhận được URL tệp PAC trở lại nếu bạn đang sử dụng một.

Đối với các ứng dụng người dùng không có hỗ trợ proxy hoặc không hiểu các tệp PAC (như Empathy), tôi sử dụng tsocks (vì tôi sử dụng đường hầm SSH cho hỗ trợ proxy của mình).

Liên kết công cụ JavaScript hoặc trình phân tích cú pháp PAC với mọi ứng dụng hỗ trợ cấu hình proxy cơ bản có vẻ như quá mức cần thiết. Đây dường như là một trường hợp có thể được hưởng lợi từ một số hỗ trợ nền tảng cơ bản với lệnh gọi API thực sự diễn giải tệp PAC và trả về kết quả, thay vì URL.


0

đây là một bài viết cũ vào thời điểm này, nhưng tôi đến đây để tìm cách làm điều này và tìm thấy một câu trả lời khác. Câu trả lời tôi đang làm việc với lời nói dối trong một gói có tên là 'whereeami' và yêu cầu bạn xác định mạng phụ của công việc của bạn trong tệp Det.conf của nó và sau đó xác định máy chủ proxy trên tệp whereeami.conf. Nên hoạt động, và tôi sẽ đăng với bất kỳ vấn đề nào tôi có.

Chúc may mắn!


1
Chào mừng bạn đến hỏi Ubuntu! Vậy ... làm thế nào một người thực sự sẽ làm điều này? Bạn có thể cung cấp hướng dẫn? Ngay bây giờ đây không thực sự là câu trả lời cho câu hỏi ...
Eliah Kagan
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.