Mengakses mysql di belakang firewall dengan ssh port forwarding


0

Saya memiliki arsitektur yang terlihat seperti ini:

            |    - DMZ -    |
 ________   |   ________    |   _______
| CLIENT |  |  | SERVER |   |  | MYSQL |
|________|  |  |________|   |  |_______|
            |               |
            | <-FIREWALLS-> |

Saya perlu terhubung dari CLIENT (linux) ke MYSQL (layanan yang berjalan di linux). Saya tidak dapat mengakses kotak MYSQL secara langsung, tetapi saya dapat mengakses SERVER (linux). SERVER dapat mengakses MYSQL. Saya mencoba mengatur penerusan port ssh sehingga saya dapat terhubung ke proses MYSQL dari CLIENT. Saya telah mengeksekusi ini pada KLIEN:

ssh -Ngf -L 3306:MYSQL:3306 username@SERVER

Tampaknya ini berfungsi dengan baik, tetapi saya masih tidak dapat mengakses MYSQL. Saya mendapatkan kesalahan host yang tidak dikenal. Adakah ide yang saya lakukan salah?

Terima kasih sebelumnya!


Apa perintah mysql yang Anda jalankan di mesin lokal setelah mengkonfigurasi terowongan?
mikebabcock

@mikebabcock mysql --host=MYSQL --port=3306sudah cukup untuk mendapatkan kesalahan host yang tidak dikenal.
Rip Leeb

Jadi bukan penerusan port ssh yang gagal !? Lihat hasil edit jawaban saya. Silakan kirim semua input dan (kesalahan) output dalam pertanyaan Anda.
Jan

@nate bahwa perintah mysql adalah masalahnya; itu harus terhubung ke localhost (dan kecurigaan saya ketika saya mengajukan pertanyaan di tempat pertama). Saya melihat Anda sudah menyelesaikan itu di bawah sekarang.
mikebabcock

Jawaban:


2

Saya akan mengatakan bahwa SERVER tidak dapat menyelesaikan MYSQL, cobalah untuk memberikan IP dari mesin MYSQL dalam perintah Anda. Anda juga tidak perlu -gkarena mesin jarak jauh tidak akan terhubung kembali ke Anda.

ssh -Ngf -L 3306:<IP-OF-MYSQL-HERE>:3306 username@SERVER

Sunting

Jangan lupa bahwa Anda harus terhubung ke localhost:3306saat port forward sudah ada, karena pos lokal Anda diteruskan ke mesin MYSQL Anda.


1
Jika Anda menambahkan -v ke perintah, itu juga akan menunjukkan pembentukan terowongan (atau gagal) di jendela terminal.
mikebabcock

@ Jan Saya tahu bahwa SERVER dapat menyelesaikan MYSQL karena saya dapat masuk ke SERVER dan terhubung ke MYSQL. Apakah ssh memengaruhi itu?
Rip Leeb

@ Jan @ mikebabcock Saya menghapus -g dan menambahkan -v dan memang menemukan kesalahan di sana. Saya menambahkan -4 dan sekarang terowongan tampaknya didirikan. Misalnya: debug1: Local connections to LOCALHOST:3306 forwarded to remote address MYSQL:3306dan `Penerusan penerusan lokal pada 127.0.0.1 port 3306.` Namun, saya masih tidak dapat menyelesaikan MYSQL dari CLIENT.
Rip Leeb

Ya! Mengubah host menjadi 127.0.0.1 berhasil! Terima kasih! Localhost tidak berfungsi karena suatu alasan.
Rip Leeb
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.