Apakah ada cara untuk mengatur proxy jaringan di seluruh sistem?

18

Jika saya ingin memiliki aplikasi GNOME (dan juga Firefox dan Chrome) mengakses jaringan melalui proxy, saya hanya perlu menggunakan gnome-network-properties(GUI yang bagus dan sederhana yang harus saya katakan). Untuk aplikasi lain (mis. APT, Transmisi, XChat), saya harus menggunakan cara spesifik untuk melakukannya.

Apakah ada cara untuk menghindari ini, sesuatu yang bisa saya nyalakan dan matikan saat berada di jaringan yang memerlukan proxy (hostname: port)?

tepang
sumber
1
Saya pikir http_proxyvariabelnya adalah apa yang Anda cari. Lihatlah di Dukungan Proxy howto.
sakisk

Jawaban:

11

Saya pikir hampir semua perangkat lunak linux / unix yang menggunakan jaringan akan menghormati variabel lingkungan http_proxydan ftp_proxy. Bergantung pada bagaimana distribusi Anda diatur, /etc/environmentakan ada dan dibaca secara default oleh shell login.

Anda dapat menambahkan garis yang mengatakan

http_proxy=123.45.67.89:1011

di /etc/environmentcukup mudah, tetapi perubahan dalam file yang hanya akan memegang pada saat Anda memulai proses shell - dan hanya dalam proses shell. Saya tidak berpikir Anda dapat memodifikasi variabel global dalam shell selain yang Anda miliki saat ini.

Shadur
sumber
1
... dengan pengecualian untuk Firefox dan Thunderbird askubuntu.com/a/23123
akraf - Reinstate Monica
dan tampaknya, node tidak juga
Brad Parks
ya, dan memuat ulang shell dengan kata lain berarti logout dan kemudian login lagi untuk shell grafis.
Himanshu Shekhar
6

Saya setuju bahwa cara terbaik untuk menggunakan server proxy adalah dengan variabel lingkungan http_proxy, seperti yang ditunjukkan oleh jawaban lain. Sayangnya, tidak semua aplikasi menghormati variabel lingkungan http_proxy, itulah sebabnya saya masih menggunakan tsocks untuk beberapa program menggunakan LD_PRELOAD untuk memaksa koneksi jaringan melalui proxy SOCKS.

jsbillings
sumber
3

Selain tsocks - yang masih AFAICT mengharuskan Anda untuk meluncurkan program dengan lingkungan yang benar untuk bekerja - Anda harus memeriksa tun2socks . Dengan itu Anda mengatur antarmuka TUN (yaitu antarmuka jaringan baru, seperti VPN akan buat) dan paket apa pun yang dikirim ke sana diproksi ke server SOCKS5 Anda. Anda kemudian mengatur rute sistem Anda untuk benar-benar mengirim lalu lintas ke ini. Sepertinya pendekatan yang bagus.

(Saya juga menemukan redsocks melalui pos ini . Ini sepertinya tidak seelegan menggunakan antarmuka TUN untuk saya - misalnya tidak benar-benar menangani UDP sama sekali, sebagai permulaan.)

natevw
sumber
3

Saya menggunakan alat ini , yang pada dasarnya adalah beberapa skrip untuk mengkonfigurasi pengaturan untuk aplikasi yang berbeda dari satu titik.

PS: Saya menulis dan memelihara alat itu.

Himanshu Shekhar
sumber
2

Tidak ada solusi satu-untuk-semua. Setiap program menggunakan caranya sendiri untuk terhubung ke server proxy.

Saya memiliki masalah serupa di kantor saya. Saya menemukan bahwa cara terbaik untuk melakukan ini adalah dengan menggunakan koneksi VPN. Saat Anda terhubung, seluruh lalu lintas jaringan sistem akan melewati VPN. Jika Anda tidak memiliki akses ke server VPN, Anda dapat menjalankan yang baru secara manual, dan menghubungkannya ke server proxy yang Anda miliki.

Jika Anda memiliki aplikasi yang tidak mendukung proxy, Anda dapat menggunakan sesuatu seperti socksify , untuk membungkus koneksi jaringannya.

Aidin
sumber
Jadi, Anda sudah mencoba ini dan gagal?
tshepang
0

Saya memiliki masalah yang sama, tetapi bagi saya untuk menyelesaikan proxy sistem akan mengatasi kernel Linux iptables. Menambah dan menghapus aturan penerusan di iptables(alamat, port & protokol khusus), yang bekerja pada lapisan jaringan adalah satu-satunya cara untuk memastikan proxy sistem yang luas, yang tidak dapat ditimpa oleh pengaturan khusus aplikasi apa pun di lapisan aplikasi.

Nihad Nagi
sumber
0

Ini bekerja untuk saya
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"

juga
vi /etc/yum.conf:

proxy=http://proxysrv:8080
Shawn Jones
sumber