Bagaimana cara mengubah pengaturan proxy saya tergantung pada jaringan yang saya hubungkan?

20

Jaringan perusahaan perusahaan saya mengharuskan saya untuk mengatur proxy jaringan untuk mengakses internet, tetapi ketika saya berada di tempat lain, saya tidak memerlukannya. Pengaturan proxy di Ubuntu (System -> Preferences -> Proxy server) memungkinkan saya untuk membuat "lokasi" yang dapat saya pilih secara manual. Kemudian saya memiliki lokasi "default" (tanpa proxy) dan lokasi "work" (dengan proxy perusahaan saya di dalamnya).

Apakah ada cara untuk membuat Ubuntu secara otomatis memilih lokasi "kerja" berdasarkan koneksi yang saya gunakan? Saya pikir saya bisa menggunakan subnet IP (sangat spesifik) untuk mendeteksi keberadaan saya, tetapi saya tidak tahu cara mengaturnya ...

Sunting: Saya benar-benar perlu mengatur pengaturan proxy di tingkat sistem. Semua koneksi jaringan saya (IMAP, SMTP, chat, dll) harus melalui proxy. Bukan hanya browser web.

Jawa kecil
sumber

Jawaban:

7

Saya bisa memikirkan satu cara, tetapi pengaturannya akan sedikit tidak jelas.

Pada dasarnya Anda bisa menggunakan PAC file

Instal server web di sistem Anda, server web kecil mana pun akan melakukannya, Anda tidak perlu sistem besar seperti apache.

Buat file wpad.datdengan arahan PAC yang cocok berdasarkan alamat sumber Anda, dan kemudian konfigurasikan sistem Anda untuk menggunakan proxy yang benar.

Di firefox, konfigurasikan proxy untuk menunjuk ke file PAC lokal Anda. Mungkin akan seperti itu http://localhost/wpad.dat.

File PAC Anda mungkin terlihat seperti ini ( belum diuji ). Lihat di sini untuk contoh PAC lainnya .

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

Saya belum pernah mencobanya, dan saya tidak pada sistem untuk menguji, tetapi Anda bahkan mungkin dapat menentukan file PAC menggunakan file://URL di firefox, yang berarti Anda bisa melewatkan pengaturan server web.

Tentu saja ada juga solusi cepat dan mudah, tetapi itu memang membutuhkan sedikit usaha di pihak Anda saat Anda bergerak di antara lokasi. Instal ekstensi Proxy Firefox Cepat , dan klik tombol pada bilah alat Anda untuk mengaktifkan atau menonaktifkan proxy. Jika Anda bersedia menangani ini dengan ekstensi Firefox Anda juga dapat mencoba FoxyProxy , ia mendukung pengaturan beberapa profil proxy, dan Anda dapat dengan mudah beralih di antara profil.

Sakit kepala
sumber
Menarik ... Saya harus menguji. Saya akan memberi tahu Anda bagaimana hasilnya. Saya pikir ekstensi Firefox tidak akan melakukannya: Proxy digunakan untuk semua protokol, tidak hanya HTTP. Maka saya membutuhkannya juga untuk Empati, Evolusi, semuanya.
Little Jawa
Oh, dan satu hal lagi. Anda bisa meminta pria IT untuk menyiapkan WPAD. Maka Anda hanya dapat menggunakan opsi proxy otomatis.
Zoredache
Yah ... membuat ITU melakukan apa pun bukanlah pilihan yang saya khawatirkan. Saya dapat membuat permintaan, tetapi saya pasti tidak akan melihat apa pun terjadi. Tidak ada pembenaran bisnis berarti tidak ada sumber daya untuk melakukannya. Dan saya akan lebih cepat melakukannya sendiri daripada menuliskan justifikasi :-)
Little Jawa
Baik. Setelah membaca sedikit lagi, saya tidak puas dengan solusi ini. Tampaknya itu akan berfungsi (saya belum mencoba mengimplementasikannya), tetapi tidak akan tersedia di seluruh sistem. Ini hanya akan berfungsi untuk browser web, karena (menurut findproxyforurl.com/index.html ) sistem hanya didukung di browser web (karena bergantung pada Javascript).
Little Jawa
5

Di Ubuntu 10.10, skrip .pac berfungsi dengan baik. Seperti yang dijelaskan Zoredache, atur server web, letakkan file pac di sana, buka System-> Preferences-> Network Proxy dan setel "Autoconfiguration URL" ke lokasi file pac.

Contoh file PAC yang memeriksa alamat IP sendiri: /var/www/selectProxy.pac:

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

Dalam Preferensi proxy jaringan: URLnya adalah:

http://localhost/selectProxy.pac

sumber
3

Sebagai tambahan untuk jawaban Zoredache, Anda bisa menggunakan skrip di /etc/network/if-up.d untuk menghasilkan snippet di /etc/profile.d/ yang berisi variabel shell proxy Anda. Perhatikan bahwa ini hanya akan bekerja pada shell baru.

Selain itu, metode ini dapat digunakan untuk menghasilkan file WPAD, yang Anda bisa arahkan browser yang mendukung ini.

Michel
sumber
2

Ini adalah posting yang cukup lama, tetapi saya menemukan ini. Lihat: http://marin.jb.free.fr/proxydriver/

Anda dapat menginstal paket .deb yang disediakan untuk Ubuntu. Ini pada dasarnya adalah skrip shell yang mengubah variabel lingkungan ketika jaringan Anda berubah. Anda dapat mengkonfigurasi pengaturan untuk setiap jaringan dengan mengedit file konfigurasi (secara otomatis) dibuat di/etc/proxydriver.d/

pengguna60158
sumber
2
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Eliah Kagan
0

Saya memiliki masalah yang sama. Harap generalisasikan jawaban apa pun untuk memasukkan situasi saya.

Saya menggunakan laptop saya di rumah menggunakan nirkabel: - selalu antarmuka alamat IP statis eth1 (192.168.1.10)

Ketika saya pergi bekerja saya pasang: - selalu eth0 antarmuka alamat IP dinamis (10.10.xx.xx), DAN proxy: 10.10.123.123 port 8888

Saya ingin Ubuntu secara otomatis mengatur alamat IP dan proxy berdasarkan antarmuka yang saya gunakan.

(Saya telah mengacaukan di / etc / network / interfaces [lihat "man interfaces" dan /etc/resolv.conf tetapi tidak berhasil.


sumber
1
Jika saya mengerti: kartu Wifi Anda memiliki IP statis - maka sudah diatur "secara otomatis". Dan jaringan kabel Anda diatur oleh DHCP - yang juga otomatis ... Lalu apa yang ingin Anda tambahkan ke sana, mengenai pengaturan IP? Saya mengerti kebutuhan Proxy, tetapi tidak IP.
Little Jawa
Anda tahu, saya pikir Anda benar. Saya kembali bekerja setelah menunggu dan sepertinya berfungsi secara otomatis. Saya pikir satu-satunya masalah adalah proxy. Saya akan menyelidiki lebih banyak besok.
0

Saya menggunakan pendekatan file PAC dan itu bekerja dengan baik untuk browsing tetapi tidak begitu baik untuk banyak aplikasi lain yang tidak mengerti file PAC - Saya menduga bahwa ketika sebuah aplikasi meminta "konfigurasi proxy" melalui API, mereka hanya mendapatkan URL file PAC kembali jika Anda menggunakannya.

Untuk aplikasi pengguna yang tidak memiliki dukungan proxy atau tidak memahami file PAC (seperti Empati), saya menggunakan tsocks (karena saya menggunakan terowongan SSH untuk dukungan proxy saya).

Menautkan mesin JavaScript atau pengurai PAC ke setiap aplikasi yang mendukung konfigurasi proxy dasar sepertinya berlebihan. Ini tampaknya merupakan kasus yang dapat mengambil manfaat dari beberapa dukungan platform yang mendasarinya dengan panggilan API yang benar-benar menginterpretasikan file PAC dan mengembalikan hasilnya, alih-alih URL-nya.

Adrian
sumber
0

ini adalah pos lama pada saat ini, tetapi saya datang ke sini mencari cara untuk melakukan ini dan menemukan jawaban yang berbeda. Jawaban yang saya kerjakan terletak pada paket yang disebut 'whereami' dan mengharuskan Anda untuk mendefinisikan sub-net karya Anda dalam file detect.conf dan kemudian menentukan server proxy pada file whereami.conf. Harus bekerja, dan saya akan memposting dengan masalah yang saya miliki.

Semoga berhasil!

Beex
sumber
1
Selamat Datang di Tanya Ubuntu! Jadi ... bagaimana seseorang benar-benar melakukan ini? Bisakah Anda memberikan instruksi? Saat ini ini tidak benar-benar menjawab pertanyaan ...
Eliah Kagan