Bagaimana cara saya mengatur proxy SOCKS lokal yang terowongan lalu lintas melalui SSH?

30

Asumsikan saya memiliki akses ke server SSH yang mendukung tunneling, dan saya menggunakan PC yang menjalankan * ubuntu, bagaimana cara saya mengatur proxy SOCKS lokal yang menghubungkan lalu lintas melalui server SSH sebelum mencapai Internet?

pzkpfw
sumber

Jawaban:

45

The sshbiner yang Anda gunakan ketika Anda terhubung ke server yang menjalankan ssh mendukung menjalankan SOCKS keluar proxy kotak, dengan -Dbendera. Contoh:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337memberitahu sshuntuk meluncurkan server SOCKS pada port 1337 secara lokal.
  • -f garpu proses ke latar belakang.
  • -C Menyalakan kompresi.
  • -q memungkinkan "mode Diam", karena tujuan di sini hanya untuk terowongan kita tidak terlalu peduli tentang output kesalahan dan semacamnya.
  • -Nmemberi tahu sshbahwa tidak ada perintah yang akan dikirim ( -fmengeluh jika kami tidak menentukan ini).
  • -pmenentukan port apa yang akan digunakan; jelas ini default ke 22 sehingga pernyataan di atas tidak ada gunanya, tetapi termasuk untuk kejelasan.

Ketika server SOCKS Anda aktif dan berjalan, Anda hanya perlu memastikan bahwa aplikasi Anda (biasanya browser web) sedang mencoba untuk terhubung ke proksi SOCKS lokal, dan bukan ke internet biasa.

Di Firefox 29 (dijelaskan di sini sebagai contoh), ini dicapai dengan masuk ke menu (tiga sosis di kanan atas), diikuti oleh Preferensi> Tingkat Lanjut> Jaringan> (Koneksi)> Pengaturan ... - pastikan Anda hanya isi bidang SOCKS! Karena proxy Anda berada di sistem yang sama, Anda dapat menggunakan localhostatau 127.0.0.1menunjuk kembali port apa pun yang Anda atur pada sistem yang sama.

Jika Anda memerlukan permintaan DNS untuk disalurkan juga (jika tidak, pencarian DNS Anda akan mengungkapkan situs web apa yang ingin Anda kunjungi), Anda dapat memeriksa "Remote DNS" atau melakukan seluruh konfigurasi ini di about:config. Dalam kasus terakhir, buka dan atur nilai-nilai ini:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

Anda mungkin juga memerlukan pengaturan ini untuk mengecualikan domain atau situs tertentu dari tunneling:

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

Jawaban ini ditulis dari Perancis, tetapi diteruskan melalui Swedia :)

pzkpfw
sumber
Ini hanya akan bekerja pada firefox.
Braiam
4
Ini sama sekali bukan Firefox-spesifik, saya memasukkan bagian Firefox sebagai layanan karena biasanya itulah yang digunakan orang-orang untuk menggunakan tunneling SSH, itu akan berfungsi dalam aplikasi apa pun yang mendukung proxy SOCKS (ssh tidak peduli).
pzkpfw
2
Berbicara tentang pengaturan browser untuk menggunakan proxy. Jika Anda menggunakan google chrome, Anda perlu mendeklarasikan proxy di pengaturan jaringan ubuntu, karena inilah yang akan digunakan oleh google chrome. Opsi CLI tidak resmi telah tersedia untuk mendeklarasikan proxy tanpa ini. Tetapi pada beberapa minggu yang lalu ini tidak mungkin lagi.
MadMike
Terima kasih, Anda membuat saya keluar dari neraka. Dan saya hanya sampai di sana karena saya tidak membaca jawaban Anda dengan baik sekitar 10 jam yang lalu. Seharusnya memperhatikan -Ddan -pberpisah.
lakesare
Juga lebih mudah diingat:ssh -D 1337 user@host
Alcalyn