Bağlandığım ağa bağlı olarak proxy ayarlarım nasıl değiştirilir?


20

Şirketimin kurumsal ağı, ağa erişmek için bir ağ proxy'si kurmamı gerektiriyor, ancak başka bir yerde olduğumda ihtiyacım yok. Ubuntu'daki proxy ayarları (Sistem -> Tercihler -> Proxy sunucusu), manuel olarak seçebileceğim "konumlar" oluşturmamı sağladı. Sonra bir "varsayılan" konum (proxy olmadan) ve bir "iş" konumu (şirketimin proxy'sinde) var.

Ubuntu'yu kullandığım bağlantıya göre otomatik olarak "çalışma" konumunu seçmenin bir yolu var mı? Nerede olduğumu tespit etmek için IP alt ağını (çok özel) kullanabileceğimi düşündüm, ama nasıl ayarlanacağı hakkında hiçbir fikrim yok ...

Düzenleme: Gerçekten proxy ayarlarının sistem düzeyinde ayarlanması gerekiyor. Tüm ağ bağlantılarımın (IMAP, SMTP, sohbet vb.) Proxy üzerinden geçmesi gerekiyor. Sadece web tarayıcısı değil.

Yanıtlar:


7

Bir yol düşünebilirim, ama onu ayarlamak biraz belirsiz olacak.

Temel olarak bir PAC dosyası kullanabilirsiniz

Sisteminize bir web sunucusu kurun, herhangi bir küçük web sunucusu yapacak, apache gibi büyük bir sisteme ihtiyacınız yoktur.

wpad.datKaynak adresinize göre eşleşen PAC direktifleriyle bir dosya oluşturun ve sisteminizi doğru proxy kullanacak şekilde yapılandırın.

Firefox'ta proxy'yi yerel PAC dosyanıza işaret edecek şekilde yapılandırın. Muhtemelen böyle bir şey olurdu http://localhost/wpad.dat.

PAC dosyanız bu şekilde görünüyor olabilir ( denenmemiş ). Daha fazla PAC örneği için buraya bakınız .

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";
  }
}

Hiç denemedim ve test edeceğim bir sistemde değilim, ancak file://firefox'ta bir URL kullanarak PAC dosyasını belirtebilirsiniz , bu da web sunucusunu ayarlamayı atlayabileceğiniz anlamına gelir.

Tabii ki aynı zamanda hızlı ve kolay bir çözüm var, ancak konumlar arasında hareket ederken sizin açınızdan biraz çaba gerektiriyor. Hızlı Proxy Firefox uzantısını yükleyin ve proxy'yi açıp kapatmak için araç çubuğundaki düğmeyi tıklamanız yeterlidir. Bununla bir Firefox eklentisi ile ilgilenmeye istekliysen , FoxyProxy'i de deneyebilirsin , birden fazla proxy profili oluşturmayı destekler ve profiller arasında kolayca geçiş yapabilirsin.


İlginç ... Test etmek zorundayım. Size bunun nasıl olacağını anlatacağım. Firefox eklentisinin yapamayacağını düşünüyorum: Proxy sadece HTTP için değil, tüm protokoller için kullanılıyor. O zaman Empathy, Evolution, her şey için de ihtiyacım var.
Küçük Jawa

Oh ve bir şey daha var. IT'den WPAD kurmasını isteyebilirsin. Sonra sadece otomatik proxy seçeneğini kullanın.
Zoredache

Şey ... BT'nin bir şey yapmasını sağlamak, korktuğum bir seçenek değil. Bir talepte bulunabilirim ama kesinlikle bir şey olduğunu görmeyeceğim. İş gerekçesi yok, yapacak hiçbir kaynak yok. Ve kendimi yapmak için bir gerekçe yazacağımdan daha hızlı olacağım :-)
Little Jawa

Tamam. Biraz daha okuduktan sonra bu çözümden memnun değilim. İşe yarayacak gibi görünüyor (uygulamayı denemedim), ancak sistem genelinde kullanılamayacaktı. Yalnızca web tarayıcısı için çalışır, çünkü ( findproxyforurl.com/index.html'e göre ) sistem yalnızca web tarayıcısında desteklenir (çünkü Javascript’e dayanır).
Küçük Jawa

5

Ubuntu 10.10'da .pac betiği iyi çalışıyor. Zoredache’ın açıkladığı gibi bir web sunucusu kurun, buraya bir pac dosyası yerleştirin, System-> Preferences-> Network Proxy’yi açın ve "Autoconfiguration URL" yi pac dosyası konumuna ayarlayın.

Kendi IP adresini kontrol eden bir PAC dosyası örneği: /var/www/selectProxy.pac:

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

Ağ proxy tercihlerinde: URL şöyle olur:

http://localhost/selectProxy.pac

3

Zoredache'in cevabına ek olarak, /etc/profile.d/ içinde proxy kabuk değişkenlerinizi içeren bir snippet oluşturmak için /etc/network/if-up.d dosyasındaki bir komut dosyasını kullanabilirsiniz. Bunun sadece yeni mermilerle işe yarayacağını unutmayın.

Ek olarak, bu yöntem, bunu destekleyen herhangi bir tarayıcıyı işaret edebileceğiniz bir WPAD dosyası oluşturmak için kullanılabilir.


2

Bu oldukça eski bir yazı, ama bunu buldum. Bir göz atın: http://marin.jb.free.fr/proxydriver/

Ubuntu için sağlanan .deb paketini yükleyebilirsiniz. Bu temelde ağınız değiştiğinde ortam değişkenlerini değiştiren bir kabuk betiğidir. Her ağ için ayarları, cihazda oluşturulan yapılandırma dosyalarını (otomatik olarak) düzenleyerek yapılandırabilirsiniz./etc/proxydriver.d/


2
Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Eliah Kagan,

0

Bende de aynı problem var. Lütfen durumumu eklemek için cevapları genelleştirin.

Dizüstü bilgisayarımı evde kablosuz kullanıyorum: - her zaman eth1 arabirimi statik IP adresi (192.168.1.10)

İşe gittiğimde prize taktım: - her zaman eth0 arayüz dinamik IP adresi (10.10.xx.xx), VE bir proxy: 10.10.123.123 port 8888

Ubuntu’nun, kullandığım arayüze bağlı olarak IP adresini ve proxy'yi otomatik olarak ayarlamasını istiyorum.

(Ben / etc / network / interfaces [içinde "man arayüzleri" ve /etc/resolv.conf 'u boşuna boşa harcadım.


1
Anlarsam: Wifi kartınızın statik bir IP adresi var - o zaman zaten "otomatik olarak" kurulmuştu. Ve kablolu ağınız DHCP ile ayarlandı - ki bu da otomatik ... IP ayarları ile ilgili olarak buna ne eklemek istiyorsunuz? Proxy ihtiyacını anlıyorum ama IP'yi değil.
Küçük Jawa

Biliyorsun, bence haklısın. İşim bittikten sonra işe döndüm ve otomatik olarak çalışıyor gibi görünüyor. Tek sorunun vekil olduğunu düşünüyorum. Yarın daha fazla araştıracağım.

0

PAC dosya yaklaşımını kullanıyorum ve tarama için iyi çalışıyor, ancak PAC dosyalarını anlamayan diğer birçok uygulama için iyi değil - Bir uygulama API üzerinden "proxy config" istediğinde, sadece PAC dosyası URL'sini kullanıyorsanız geri dönün.

Proxy desteği olmayan veya PAC dosyalarını anlamayan (Empati gibi) kullanıcı uygulamaları için tsocks kullanıyorum (çünkü proxy desteğim için SSH tüneli kullanıyorum).

Bir JavaScript motorunu veya bir PAC ayrıştırıcısını, temel proxy yapılandırmasını destekleyen her uygulamaya bağlamak aşırı yüklenme gibi görünüyor. Bu, aslında PAC dosyasını yorumlayan ve URL yerine sonucu döndüren bir API çağrısı ile bazı temel platform desteğinden faydalanabilecek bir durum gibi görünüyor.


0

Bu, bu noktada eski bir yazıdır, ancak buraya, bunu yapmanın bir yolunu aramaya geldim ve farklı bir cevap buldum. Çalıştığım cevap 'whereeami' adındaki bir pakette yatar ve çalışmanızın alt ağını det.conf dosyasında tanımlamanızı ve ardından proxy sunucusunu whereami.conf dosyasında tanımlamanızı gerektirir. İşe yaramalıyım ve sahip olduğum herhangi bir meseleyi postalayacağım.

İyi şanslar!


1
Ubuntu'ya Sormaya Hoş Geldiniz! Peki ... birisi bunu nasıl yapar? Talimat verebilir misin? Şu anda bu gerçekten sorunun cevabı değil ...
Eliah Kagan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.