Bagaimana cara mengatur proxy untuk terminal?

36

Saya mencari untuk mengatur proxy untuk terminal. Yang saya butuhkan adalah saya ingin mengirim semua komunikasi terminal ke internet melalui proxy, katakan untuk tor.

Saya mencoba untuk mengatur pengaturan proxy yang lebar sistem. Tetapi Terminal tidak mematuhi konfigurasi proxy sistem yang luas.

Apakah ada cara lain untuk melakukan hal ini?.

Platypus Anonim
sumber
Maksudmu ssh atau telnet atau ...? Tolong jelaskan kepada kami "komunikasi terminal". Anda dapat melakukan telnet ke beberapa host melalui proxy atau ftp mereka, tetapi komunikasi dari minicom Anda tidak dapat mengirim melalui net ... kecuali seperti file log ....
2707974
1
Apakah mungkin untuk menetapkan proxy untuk semua aktivitas terkait jaringan yang dilakukan melalui terminal? Alih-alih mengatur proxy untuk wget, curl dan lainnya secara terpisah. Saya mencari solusi seperti itu.
Anonim Platypus
Ya, tetapi biasanya wget bekerja pada port 80 atau 443, ssh pada port 22, telnet pada 23, ftp pada 20 dan 21 ... Anda dapat menggunakan simpleproxy atau tinyproxy
2707974
Bagaimana cara mengatur proxy ini untuk terminal? Apakah saya secara eksplisit mengaturnya untuk aplikasi yang berbeda yang berjalan di terminal atau dapatkah saya mengaturnya di terminal sedemikian rupa sehingga semua perintah yang saya jalankan di terminal melewati proxy ini?
Anonim Platypus
terminal ubuntu membutuhkan proksi http, ketika Anda menggunakan proksi SOCKS5, seperti shadowsocks, Anda dapat menggunakan proxychainsuntuk menjembatani proksi SOCKS5 ke http. Lihat ini github.com/shadowsocks/shadowsocks/wiki/…
hakunami

Jawaban:

18

Terminal bukan aplikasi bersih. Mungkin lebih baik untuk mengatakan, dalam kasus Anda, terminal kontainer untuk aplikasi bersih seperti ssh, telnet, lftp, wget, lynx...

Edit Anda:

sudo -H gedit /etc/profile.d/proxy.sh

Masukkan detail dalam format ini.

export http_proxy=http://username:password@proxyhost:port/ 
export ftp_proxy=http://username:password@proxyhost:port/
export telnet_proxy=http://username:password@proxyhost:port/

Ini adalah ketika menggunakan wget, ftp, lftp, telnetdi terminal

sshtidak memiliki SOCKSdukungan klien asli , Anda perlu menggunakan ProxyCommanduntuk itu, misalnya dengan socat:

ssh -o ProxyCommand='socat - SOCKS4A:myproxy:%h:%p,socksuser=nobody' user@host

Atau menggunakan hal-hal seperti tsocksuntuk transparan menggunakan SOCKSuntuk TCPlalu lintas.

Untuk SOCKS5dengan socat 2:

ssh -o ProxyCommand='socat - "SOCKS5:%h:%p|tcp:myproxy:1080"' user@host

Untuk metode HTTP Proxy CONNECT dengan socat 2:

ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host
2707974
sumber
1
Perlu disebutkan bahwa file proxy.sh harus dapat dieksekusi.
Alireza
41

ekspor variabel di bawah ini di terminal

export http_proxy='http://proxyServerSddress:proxyPort'    
export https_proxy='https://proxyServerSddress:proxyPort'

dan gunakan perintah berikut untuk menonaktifkan proxy

unset http_proxy
unset https_proxy
PKumar
sumber
+1 untuk instruksi yang belum disetel :)
RezaSh
0

Saya menetapkan variabel ekspor

export http_proxy=http://username:password@proxyhost:port/ 
export https_proxy=https://username:password@proxyhost:port/
export ftp_proxy=http://username:password@proxyhost:port/

di ~ / .bashrc dan / etc / enviroment

Francuz
sumber
0

Dalam kasus saya, saya salah memasukkan koma terbalik di kedua sisi. menempatkan "http//.."itu salah dan tidak menempatkan sesuatu seperti http//...itu salah juga. Apa yang berhasil adalah .. ketika saya menggunakan koma tunggal terbalik di kedua sisi.

export http_proxy='http://username:password@proxyhost:port/' export https_proxy='https://username:password@proxyhost:port/' export ftp_proxy='http://username:password@proxyhost:port/'

Ingatlah ketiga perintah ini untuk dijalankan secara terpisah tiga kali.

surendrapanday
sumber