Setting Proxy Pada Linux Console

Nyobain yum atau command lainnya yang ngambil data dari internet tetapi selalu gagal karena terhalang proxy? bahkan meskipun di web browsernya sudah disetting dengan akun yang terautentikasi pula? nah itulah yang saya alami… (karena akses internet di kampus mesti make akun AI3 untuk bisa lewat si cumi)… solusinya? Secara umum, dari apa yang saya baca di salah satu thread forum yang membahas ini, akses dari console (command line di linux) memang tidak secara otomatis ikut tersetting. Untuk itu kita perlu menset akses proxy dengan menambahkan environment variable http_proxy pada shell, caranya adalah dengan mengetikkan command pada linux console:

export http_proxy="http://namausernya:passwordnya@alamatproxyservernya:nomerportnya/"
# Contoh:
export http_proxy="http://faisalman:password@cache1.itb.ac.id:8080/"
export ftp_proxy="http://faisalman:password@cache1.itb.ac.id:8080/"
export no_proxy="localhost, 127.0.0.1, .itb.ac.id, 167.205.0.0/16"

Sebaliknya, jika sudah kembali menggunakan akses internet yang direct connection (tidak menggunakan proxy), set ulang dengan command pada linux console:

export http_proxy=""
export ftp_proxy=""
export no_proxy=""

Untuk memeriksa settingan proxy mana yang sedang digunakan kita dapat melihatnya dengan mengetikkan command pada linux console:

echo $http_proxy
echo $ftp_proxy
echo $no_proxy

Alternatif lain, kita dapat mendefinisikan sendiri sebuah fungsi untuk mensetting akun proxy dengan menggunakan shell script sehingga nantinya tinggal mengetikkan nama fungsi pada shell dan mengisi variabel-variabel yang dibutuhkan. Caranya yaitu dengan buat sebuah file shell script di dalam folder /etc/profile.d berekstensi .sh jika menggunakan bash (yang paling umum digunakan di linux) atau .csh untuk c-shell, kita bisa mengecek jenis shell apa yang digunakan ketikkan perintah pada consolenya:

echo $SHELL

Misalkan file shell script yang akan dibuat namanya settinganproxy.sh, maka ketikkan perintah pada linux console:

sudo nano /etc/profile.d/settinganproxy.sh

Berikan baris script berikut pada file shell script tersebut dalam nano[1] text editor:

# Setting akses proxy
function setaksesproxy()
{
  echo -n "proxy: "
  read -e alamatproxy
  echo -n "port: "
  read -e nomerport
  echo -n "username: "
  read -e namauser
  echo -n "password: "
  read -es proxypass
  echo -n "domain tanpa proxy: "
  read -e exclude
  echo ""
  export http_proxy="http://$namauser:$proxypass@$alamatproxy:$nomerport/"
  export ftp_proxy="http://$namauser:$proxypass@$alamatproxy:$nomerport/"
  export no_proxy="localhost, 127.0.0.1, $exclude"
}

# Clear proxy
function setnoproxy()
{
  export http_proxy=""
  export ftp_proxy=""
  export no_proxy=""
}

Sehingga di shell consolenya linux kita tinggal mengetikkan nama fungsinya saja dan mengisi input-inputnya sajah 😀

Konfigurasi di atas menggunakan asumsi bahwa jaringan ber-proxy tidak digunakan setiap saat, atau menggunakan jaringan ber-proxy yang berbeda-beda, atau akun yang digunakan berbeda-beda. Sedangkan jika setting proxy dibutuhkan setiap saat, mungkin perlu juga untuk menyimpan akun dan password proxy pada user tertentu yaitu dengan mengedit file .bash_profile (file gak kelihatan karena hidden) yang terletak di home directory dari user yang diinginkan untuk diberikan autentikasi proxynya, tinggal ketikkan perintah pada linux console:

nano /home/namauseryangdiinginkan/.bash_profile

Berikan baris perintah berikut pada file tersebut:

export http_proxy="http://namausernya:passwordnya@alamatproxynya:nomerportnya/"
export ftp_proxy="http://namausernya:passwordnya@alamatproxynya:nomerportnya/"
export no_proxy="domain-atau-IP-address-tanpa-proxy-misalnya-127.0.0.1"

Footnote:
[1] Nano merupakan program editor pada console linux yang biasanya sudah terinstall secara default, jika tidak ada silakan menggunakan editor favorit lain semisal vim, emacs, dll

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s