Tunneling koneksi FTP dari rumah di mana server hanya menerima IP lokal

11

Saya perlu mengakses server FTP di tempat kerja tetapi server hanya akan menerima IP lokal. Saya tidak dapat mengaksesnya dari mesin di rumah saya. Saya telah dapat ssh ke mesin kerja Unix saya melalui Putty dan dari sana berhasil membuka koneksi FTP konsol ke server FTP.

Saya bisa mengatasi ini, tetapi saya lebih suka tidak melakukannya karena sangat merepotkan bagi saya. Saya lebih suka melakukan tunnel koneksi FTP melalui mesin kerja melalui Putty sehingga saya dapat menggunakan klien FTP pilihan saya, FileZilla, untuk memenuhi kebutuhan FTP saya di server. Tentu saja ini melalui port 21.

Saya tahu Putty mampu melakukan port forwarding melalui ssh, saya hanya tidak yakin bagaimana cara menggunakannya.

Beranda -> Kerja -> Server.

acak
sumber
Tidak ada yang secara inheren berbeda tentang mengunggah vs mengunduh melalui koneksi proxy SOCKS. Perbedaan besar adalah koneksi Internet di rumah Anda cenderung memiliki kinerja unggah (keluar) yang buruk dibandingkan dengan kinerja unduhan (masuk). Kami mungkin membutuhkan lebih banyak log untuk dapat mendiagnosisnya.
EightBitTony
Saya sampai pada kesimpulan bahwa saya mungkin sedang menuju masalah lain sama sekali dan akan berusaha membuat pertanyaan baru yang membahas masalah khusus ini. Terima kasih banyak atas bantuan Anda EightBitTony!
Ben Jacobson
Mungkin ingin mendaftarkan akun Server Fault Anda dengan kredensial yang sama seperti di sini untuk mendapatkan kembali pertanyaan ini @ben
acak

Jawaban:

13

Gunakan proxy SOCKS.

Jendela Putty

Port sumber sekarang (secara lokal) proxy SOCKS. Konfigurasikan FileZilla untuk menggunakannya sebagai proksi SOCKS (lihat di bawah). Ini akan membuka koneksi melalui itu ke host Anda ssh ke (mesin kerja Anda) dan kemudian terhubung dari sana, ke alamat IP yang Anda berikan. Bekerja untuk apa pun dengan dukungan SOCKS dan itu termasuk FTP.

Konfigurasi PuTTY lainnya tetap sama - konfigurasikan port (seperti yang ditunjukkan) dan kemudian hubungkan sesi Putty ke mesin Work Anda melalui SSH.

Inilah yang terlihat seperti opsi FileZilla,

masukkan deskripsi gambar di sini

Ketika Anda memasukkan target untuk koneksi FTP, gunakan alamat IP bukan hostname, karena resolusi DNS mungkin masih terjadi secara lokal dan Anda tidak menginginkannya.

Semuanya aman dan tidak terlihat - sepertinya koneksi SSH dasar untuk hal lain di jaringan.

NB: Jika Anda ingin melakukan ini dari baris perintah, Anda dapat menggunakan Putty plink.exeuntuk melakukan hal berikut,

plink -ssh -D 9090 [email protected]

itu mencapai hal yang sama tanpa harus membuat profil Putty atau menggunakan GUI.

EightBitTony
sumber
Saya suka cara melakukannya sedikit lebih dari jawaban saya. Anda dapat mengatur proxy SOCKS di filezilla di bawah "Generic Proxy" dan ingat untuk menggunakannya dalam "mode pasif".
Philip Couling
2

Pertama jauh lebih mudah / bisa dibilang lebih baik menggunakan SCP. Karena Anda sudah memiliki SSH, maka akan umum bagi Anda untuk memiliki akses SCP juga. Tapi saya tidak tahu jaringan Anda sehingga untuk pertanyaan ...

Pertama-tama Pastikan klien Anda diatur untuk menggunakan FTP dalam mode AKTIF. Saya ingin menyarankan menggunakan mode pasif tetapi Anda tidak dapat mengontrol port mana yang akan digunakan.

Kedua Batasi jumlah port yang akan digunakan klien FTP Anda dalam mode aktif hingga segelintir. Kurang dari 10 akan bagus. Dan inilah alasannya.

Ketiga, buat port jarak jauh ke depan untuk semua port ini.

Itu seharusnya membuatnya bekerja

Philip Couling
sumber
2

Berikut cara menjelajahi sistem file dari server internal (di belakang NAT), dengan FileZilla atau dengan Nautilus File Manager - menggunakan SFTP (sesi SSH pada port TCP 22), melalui server gateway (di luar NAT):

  1. Jalankan pertama kali di Terminal:

sudo ssh -L 9090: {hostname server internal atau IP}: 22 root @ {gateway hostname server atau IP}

  1. Kemudian buat koneksi baru.

    Di FileZilla:

    • Host: sftp: //127.0.0.1
    • Nama Pengguna / Kata Sandi: Kredensial server internal .
    • Port: 9090 (port yang sama seperti pada perintah terminal).

Atau di Nautilus:

sftp://127.0.0.1:9090/, maka Anda akan diminta untuk memasukkan kredensial server internal.

Sekarang Anda harus dapat menelusuri sistem file server internal.


masukkan deskripsi gambar di sini

Catatan: Seperti yang Anda lihat, tidak perlu mengatur SOCKS Proxy di Putty atau di FileZilla :)

Noam Manos
sumber
Terima kasih! Itulah tepatnya yang saya cari!
lorenzo-s