maaf kalau pertanyaan saya bodoh tapi saya tidak bisa mengerti dua hal. Mari kita asumsikan saya sedang melakukan expample yang ditulis di sini :
[...] Anda ingin terhubung dari laptop Anda ke http: //www.ubuntuforums org menggunakan terowongan SSH. Anda akan menggunakan nomor port sumber 8080 (port http alternatif), port tujuan 80 (port http), dan server tujuan www.ubuntuforums.org. :
ssh -L 8080:www.ubuntuforums.org:80 <host>
Di mana
<host>
harus diganti dengan nama laptop Anda.
T1: Apa yang sebenarnya bisa saya capai dengan ini? Di server jarak jauh, tidak ada sshd yang tersedia, jadi lalu lintas meninggalkan PC saya tidak terenkripsi, kan? Untuk apa saya membutuhkan ini?
T2: Saya mencoba melakukan ssh -L 4444: linuxpl.com: 80 localhost. Ketika saya memasukkan http: // localhost: 4444 di browser web saya, saya bisa melihat situs internal LiteSpeed Web Server. Ketika saya mencoba halaman lain, saya dapat melihat situs internal Apache. Ketika saya mencoba yang lain, saya dapat melihat halaman 404 situs ini tidak menemukan pesan. Beberapa dari mereka bekerja seperti yang diharapkan. Kenapa ini terjadi? Bagaimana memperbaikinya?
sumber
Jawaban:
T1: Anda tidak ingin melakukan itu. Halaman itu konyol dalam kata-katanya. Seperti yang Anda katakan, lalu lintas akan pergi dari komputer Anda ke komputer Anda dienkripsi, kemudian sama sekali tidak dienkripsi ke situs forum. Mereka bisa menjelaskannya dengan menggunakan komputer lain untuk meneruskan lalu lintas, misalnya untuk mem-bypass firewall.
Apa artinya tutorial adalah "Anda ingin terhubung ke forum melalui laptop Anda dari komputer lain" dan kemudian lebih masuk akal.
T2: Jika Anda membuka http: // localhost: 4444 / di komputer Anda, itu akan membuat HTTP meminta kembali ke forum, tetapi itu akan memberi tahu forum bahwa Anda menginginkan host
localhost
, bukanlinuxpl.com
. Server mungkin akan mengembalikan halaman default dan bukan host virtual aktual yang Anda inginkan karena menggunakan host virtual danlocalhost
tidak memetakan ke situs yang sama denganlinuxpl.com
.Jadi semuanya, meneruskan lalu lintas HTTP melalui terowongan ssh tidak akan bekerja semudah itu. Meneruskan ke proxy di suatu tempat akan bekerja jauh lebih baik.
Untuk membuat browser Anda mengirim header yang tepat, Anda mungkin berhasil dengan mengatur file host Anda untuk mengklaim alamat target adalah mesin Anda. Dengan cara ini ketika browser menyelesaikan alamat, itu akan terhubung ke mesin lokal Anda dan masih memberi tahu server HTTP nama host yang tepat.
Anda dapat mencoba ini dengan menambahkan baris
ke / etc / hosts
sumber
localhost
tetapihost
. Ini adalah tutorial yang sepenuhnya valid dan berlaku universal.laptop
adalah mesin yang dapat Anda sambungkan. Tidak ada yang mengatakan itu mesin yang sama. Bisa jadi, tentu saja, tetapi sekali lagi: Ini hanya tutorial untuk mempelajari sintaks perintah .T1: Saya menggunakan ini di lingkungan jika Anda tidak memiliki kontak dengan internet. Bayangkan Anda menjalankan laptop Anda di jaringan yang tidak memungkinkan koneksi ke dunia luar, tetapi ada satu mesin yang diizinkan untuk menghubungkan keduanya ke dunia luar dan jaringan di mana laptop Anda berada. Jadi untuk dapat menelusuri Anda harus shh ke mesin ini, karena lalu lintas internet Anda memasuki jaringan luar melalui mesin resmi.
Koneksi berlangsung kira-kira seperti ini: Ketika Anda mengetik http: // localhost: 4444 ssh akan mengambil permintaan, dan mengirimkannya ke host, yang kemudian akan mengirimkannya ke linuxpl.com:80. Koneksi antara laptop Anda dan host dienkripsi oleh ssh, koneksi antara host dan internet tidak dienkripsi, yaitu ssh hanya meneruskan dan mengenkripsi pesan antara dua mesin Anda.
T2: Tidak begitu mengerti apa masalahnya, tetapi ssh -L 4444: linuxpl.com: 80 localhost tidak masuk akal ... karena Anda melakukan tunneling antara mesin Anda dan mesin Anda ...
sumber