SSH -L penerusan port lokal dengan localhost menunjuk ke halaman yang salah

1

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?

pengguna532872
sumber
1
Kami bukan forum, jadi untuk membuatnya dapat digunakan untuk pengunjung masa depan: silakan ajukan satu pertanyaan per pertanyaan.
Arjan

Jawaban:

1

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, bukan linuxpl.com. Server mungkin akan mengembalikan halaman default dan bukan host virtual aktual yang Anda inginkan karena menggunakan host virtual dan localhosttidak memetakan ke situs yang sama dengan linuxpl.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

127.0.0.1        linuxpl.com

ke / etc / hosts

Sami Kuhmonen
sumber
Halaman itu tidak "konyol". Tidak dikatakan localhosttetapi host. Ini adalah tutorial yang sepenuhnya valid dan berlaku universal.
Daniel B
@DanielB Bisa dikatakan lebih baik. Sekarang ini menjelaskan bagaimana menghubungkan dari laptop Anda ke tempat lain, host menjadi laptop. Kemudian mereka memberitahu untuk terhubung ke localhost. Jadi hanya ada satu mesin. Karena itu penerowongan tidak benar-benar mencapai apa pun. Ini dalam pikiranku konyol. Jika itu menjelaskan bagaimana melakukan tunnel melalui mesin ketiga, itu akan dapat digunakan. Juga tidak ada artinya untuk menjelaskan bahwa tunneling ini bahkan tidak akan bekerja untuk host virtual, seperti yang diperhatikan OP.
Sami Kuhmonen
Tidak. Seluruh tutorial dibuat berdasarkan fakta bahwa itu laptopadalah 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 .
Daniel B
@DanielB Dikatakan "terhubung dari laptop Anda ke ubuntuforums.org menggunakan terowongan SSH" , yang berarti Anda berada di laptop dan Anda ingin terhubung dari sana menggunakan terowongan. Itu tidak mengatakan "terhubung melalui laptop Anda", atau jelaskan mengapa itu berbicara tentang laptop. Kata-katanya konyol. Seharusnya mengatakan "Anda ingin terhubung dari mesin A ke situs web X menggunakan terowongan melalui mesin B" dan itu akan menjadi tidak konyol. Dan tambahkan menyebutkan tentang protokol HTTP biasanya tidak senang tentang hal itu.
Sami Kuhmonen
@ user532872 Menambahkan cara untuk mencapainya dengan file hosts
Sami Kuhmonen
0

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 ...

berserck
sumber
Ya, tapi itulah yang diusulkan oleh situs yang saya tautkan di atas. Itu sebabnya saya bertanya apa gunanya melakukan itu dan mengapa itu tidak berhasil untuk beberapa situs. Contoh yang Anda berikan berbeda, termasuk mesin ke-3 dalam game dan menganggap itu menjalankan sshd.
user532872
Situs mengatakan host, bukan localhost
berserck