Mengunduh dan mengunggah file melalui sesi telnet

15

Saya memiliki perangkat kehadiran yang berjalan Linux OS. Saya dapat menghubungkan perangkat ini melalui sesi telnet. Ada beberapa file di perangkat yang ingin saya unduh dan unggah dengan file baru. Bagaimana saya bisa melakukan itu? Saya memiliki pengetahuan yang sangat rendah di OS Linux. Maukah Anda membantu!

masukkan deskripsi gambar di sini

PRdeep Kumawat
sumber
Berapa banyak file yang ingin Anda transfer? Bisakah Anda menempel di suatu tempat keluaran busybox --helpdan ls -l /bindan ls -l /usr/bin, tolong.
jofel
sebenarnya saya ingin mengubah latar belakang desktop perangkat kehadiran ini, dan ingin mengunggah logo perusahaan kami di perangkat tersebut. Opsi semacam itu tidak tersedia di menu perangkat (saya sudah meminta opsi ini ke vendor). Jadi saya menghubungkannya melalui sesi telnet dan menemukan desktop.jpg dan file gambar lainnya di perangkat. Sekarang saya ingin mendapatkan file ini di sistem lokal saya. dan setelah memverifikasi yang sama saya akan mengunggah gambar yang saya inginkan di perangkat. Jadi itu akan memperbarui gambar perangkat sesuai dengan gambar yang saya inginkan. Saya ingin mengubah setidaknya gambar desktop yang tersedia di perangkat di / mnt / mtdblock / image
PRdeep Kumawat
Jika Anda ingin menambahkan informasi di lain waktu, harap edit pertanyaan Anda alih-alih menambahkan komentar.
jofel

Jawaban:

12

Ini tergantung pada alat yang diinstal pada perangkat klien / yang didukung oleh kernel.

Metode yang mungkin untuk transfer file (tidak dipesan):

  • ssh / sftp
  • menyandikan file biner ke dalam format yang dapat ditampilkan dengan base64 / uuencode dan kemudian menyalin dari / ke jendela terminal telnet Anda.
  • melalui koneksi tcp sederhana dengan netcatatau socatatau dengan bashdan / dev / tcp
  • unggah / unduh dengan wgetatau curldari server web
  • ftp server dengan klien ftp baris perintah
  • samba atau nfs mount

Baca transfer file Sederhana dan Cara mendapatkan file ke host ketika semua yang Anda miliki adalah konsol serial? untuk lebih banyak kemungkinan.


Salin desktop.jpgdari perangkat ke PC Anda dengan metode netcat / nc:

Pada pc Anda, nonaktifkan sementara (atau konfigurasi ulang jika memungkinkan) firewall apa pun dan jalankan

netcat -l -p 10000 > desktop.jpg

dan di perangkat

busybox nc A.B.C.D -p 10000 < desktop.jpg

di mana Anda perlu mengganti ABCD dengan alamat IP komputer Anda. Segera setelah transfer berhasil, proses netcat di komputer Anda akan berhenti secara otomatis. Jika tidak, ada sesuatu yang salah dan Anda dapat menghentikannyaCtrl+C

Untuk arah lain, tukar saja <dan >di kedua sisi. Buat cadangan pertama dari yang asli desktop.jpg( cp desktop.jpg desktop_orig.jpg).

Jofel
sumber
Saya mencoba utilitas WinSCP dan mencoba menghubungkan perangkat menggunakan protokol ftp / sftp / scp. tetapi tidak terhubung. Saya dapat menghubungkan perangkat melalui perintah telnet dan dapat melihat file yang ingin saya dapatkan dan unggah lagi ke perangkat.
PRdeep Kumawat
Mungkin perangkat Anda tidak memiliki ssh atau ftp server yang berjalan.
jofel
Ya saya tidak tahu itu .. Apakah ada cara lain untuk mendapatkan / mengunggah file dari perangkat itu?
PRdeep Kumawat
Anda juga dapat menggunakan szuntuk mengirim file melalui terminal. Anda akan membutuhkannya di kedua sisi.
slm
@PRdeepKumawat Saya memberikan jawabannya dengan sebuah contoh.
jofel
6

Saya tidak memiliki ssh atau ftp (atau dll) pada perangkat.

Jadi, saya lakukan selanjutnya:

  1. telnet a.b.c.d | tee telnet.log
  2. masuk dan pergi ke file
  3. cat file.txt
  4. tutup sesi (Saya menutup panel tmux)
  5. bersih telnet.logdari sampah

Seharusnya mudah untuk menulis utilitas untuk mengunduh / mengunggah file melalui telnet

pengguna104415
sumber
1

Coba dengan rcpperintah.

Gunakan man rcpuntuk informasi lebih lanjut jika Anda ingin mengotomatiskan transfer.

Omong-omong, Anda tahu ini sangat tidak aman , bukan?

YoMismo
sumber
1

Saya baru saja mengunggah ~ 7 Kb file firmware ke sistem embedded Linux berbasis BusyBox melalui port serial.

Tidak ada jaringan, tidak ada utilitas transfer file; tidak ada utilitas Base64 atau apa pun yang jauh berguna di perangkat.

Di host, saya dengan sepele mengodekan firmware ke dalam format berikut; sejenis hex-dump yang terdiri dari shell literal yang dikombinasikan dengan printfperintah:

printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"

pada dasarnya shell printfperintah dengan \xescape sequence yang printfdiinterpretasikan. Pada perangkat yang saya lakukan:

device $ cat > firmware.sh

kemudian menggunakan minicomfile ASCII send ( Ctrl-AS) untuk mengirim file ini ke host. Saya bisa saja menggunakan salin dan tempel, karena jumlah datanya kecil.

Kemudian, tandai dieksekusi dan jalankan printfskrip:

device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin

Diperiksa menggunakan BusyBox md5sumbahwa firmware.binchecksum pada perangkat cocok dengan gambar firmware asli pada host.

PS Sintaks kutipan shell ganda melewati \xkata demi kata karena itu bukan urutan escape yang dikenali; karenanya kita tidak perlu menggandakan backslash.

Kaz
sumber
0

@jofel dan yang lainnya, Terima kasih banyak atas bantuannya. Saya pikir perangkat memiliki os khusus yang diinstal karena hanya mengenali beberapa perintah linux tertentu. netcat tidak dikenali oleh perangkat. Namun hari ini saya berhasil mentransfer file menggunakan perintah tftp. Saya berhasil mengganti file desktop.jpg dengan perintah ini. Apa yang saya lakukan adalah, membuat server tftp pada sistem jendela. login melalui telnet pada perangkat dan jalankan perintah ini:

unduh file tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69

unggah file tftp -l desktop.jpg -g 192.168.0.249 69

PRdeep Kumawat
sumber
0

Saya telah melakukan ini sekarang dengan metode ini:

Buat server ftp (dengan menginstal solerwinds) pada sistem jendela. login melalui telnet pada perangkat dan jalankan perintah ini:

Untuk mengunduh file:

tftp -l <FileName> -p <TFTP Server IP> <Port No of TFTP>

Contoh:

tftp -l desktop.jpg -p 192.168.0.249 69

atau untuk mengunggah file:

tftp -l <FileName> -g <TFTP Server IP> <Port No of TFTP>

Contoh:

tftp -l desktop.jpg -g 192.168.0.249 69

lokasi default dari file tftp adalah C:\TFTP-Root

prdeepkumawat
sumber
-1

Saya menggunakan metode berikut untuk mengunduh file biner kecil melalui telnet ke dalam kotak windows saya:

  1. jalankan hexdump -v -e '16 / 1 "% 02x" 'myfile.bin
  2. salin hex dump dari layar
  3. rekatkan hex dump ke alat online ini untuk membuat file biner: http://tomeko.net/online_tools/hex_to_file.php?lang=en
Igor Zelaya
sumber
Tidak yakin tentang tautan Anda di # 3!
3
@Goro Tautan dalam hal ini bukan merupakan penjelasan yang dapat dikutip, ini adalah alat online yang penting untuk jawabannya. Akan lebih baik untuk memiliki program lokal untuk tugas itu.
RalfFriedl
Terima kasih @RalfFriedl. Saya mengedit jawaban saya untuk klarifikasi.
Igor Zelaya