Herunterladen und Hochladen von Dateien über eine Telnet-Sitzung


15

Ich habe ein Anwesenheitsgerät am Laufen Linux OS. Ich kann dieses Gerät über eine Telnet-Sitzung verbinden. Das Gerät enthält einige Dateien, die ich mit neuen Dateien herunterladen und hochladen möchte. Wie kann ich das machen? Ich habe sehr geringe Kenntnisse in Linux OS. Würden Sie bitte helfen!

Bildbeschreibung hier eingeben


Wie viele Dateien möchten Sie übertragen? Kannst du irgendwo die Ausgabe von busybox --helpund ls -l /binund einfügen ls -l /usr/bin, bitte.
Jofel

Eigentlich möchte ich den Desktop-Hintergrund dieses Anwesenheitsgeräts ändern und unser Firmenlogo dort in das Gerät hochladen. Solche Optionen stehen im Gerätemenü nicht zur Verfügung (ich habe bereits beim Anbieter nach dieser Option gefragt). Also habe ich es per Telnet-Sitzung verbunden und desktop.jpg und andere Bilddateien auf dem Gerät gefunden. Jetzt möchte ich diese Datei auf meinem lokalen System bekommen. und nachdem ich das überprüft habe, lade ich meine gewünschten Bilder auf das Gerät hoch. So wird das Geräteabbild gemäß meinen gewünschten Abbildern aktualisiert. Ich möchte mindestens ein Desktop-Image ändern, das auf dem Gerät unter / mnt / mtdblock / image
PRdeep Kumawat

Wenn Sie das nächste Mal Informationen hinzufügen möchten, bearbeiten Sie Ihre Frage, anstatt Kommentare hinzuzufügen.
Jofel

Antworten:


12

Dies hängt davon ab, welche Tools auf dem Client-Gerät installiert sind / vom Kernel unterstützt werden.

Mögliche Methoden zur Dateiübertragung (ungeordnet):

  • ssh / sftp
  • Kodieren von Binärdateien in ein anzeigbares Format mit base64 / uuencode und anschließendes Kopieren von / in Ihr Telnet-Terminalfenster.
  • über eine einfache TCP-Verbindung mit netcatoder socatoder mit bashund / dev / tcp
  • Upload / Download mit wgetoder curlvon einem Webserver
  • FTP-Server mit einem Befehlszeilen-FTP-Client
  • Samba oder NFS Mount

Lesen Sie Einfache Dateiübertragung und Wie wird eine Datei auf einen Host übertragen, wenn Sie nur eine serielle Konsole haben? für mehr möglichkeiten.


Kopieren desktop.jpgSie mit der netcat / nc-Methode vom Gerät auf Ihren PC:

Deaktivieren Sie auf Ihrem PC vorübergehend die Firewall (oder konfigurieren Sie sie nach Möglichkeit neu) und führen Sie sie aus

netcat -l -p 10000 > desktop.jpg

und auf dem Gerät

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

Hier müssen Sie ABCD durch die IP-Adresse Ihres PCs ersetzen. Sobald die Übertragung erfolgreich war, sollte der Netcat-Prozess auf Ihrem PC automatisch beendet werden. Wenn nicht, stimmt etwas nicht und Sie können damit aufhörenCtrl+C

Für die andere Richtung einfach austauschen <und >auf beiden Seiten. Erstellen Sie zuerst eine Sicherungskopie des Originals desktop.jpg( cp desktop.jpg desktop_orig.jpg).


Ich habe das WinSCP-Dienstprogramm ausprobiert und versucht, das Gerät mit dem FTP / SFTP / SCP-Protokoll zu verbinden. aber es wird nicht verbunden. Ich kann das Gerät über einen Telnet-Befehl verbinden und die Dateien anzeigen, die ich abrufen und erneut in das Gerät hochladen möchte.
PRdeep Kumawat

Wahrscheinlich läuft auf Ihrem Gerät kein SSH- oder FTP-Server.
Jofel

Nun, das weiß ich nicht. Gibt es eine andere Möglichkeit, Dateien von diesem Gerät abzurufen / hochzuladen?
PRdeep Kumawat

Sie können szdie Dateien auch über das Terminal senden. Sie werden es auf beiden Seiten brauchen.
slm

@PRdeepKumawat Ich habe die Antwort mit einem Beispiel erweitert.
Jofel

5

Ich habe kein ssh oder ftp (oder etc) auf dem Gerät.

Also mache ich als nächstes:

  1. telnet a.b.c.d | tee telnet.log
  2. Loggen Sie sich ein und gehen Sie zur Datei
  3. cat file.txt
  4. Sitzung schließen (ich schließe das tmux-Fenster)
  5. telnet.logaus dem Müll räumen

Es sollte einfach sein, ein Dienstprogramm zum Herunterladen / Hochladen von Dateien über Telnet zu schreiben


1

Versuchen Sie es mit dem rcpBefehl.

Verwenden man rcpSie diese Option für weitere Informationen, wenn Sie Übertragungen automatisieren möchten.

Übrigens wissen Sie, dass dies sehr unsicher ist , oder?


0

@jofel und alle anderen, vielen Dank für Ihre freundliche Unterstützung. Ich denke, auf dem Gerät ist ein angepasstes Betriebssystem installiert, da es nur einige bestimmte Linux-Befehle erkennt. netcat wird vom Gerät nicht erkannt. Allerdings habe ich heute Erfolg gehabt, die Datei mit dem Befehl tftp zu übertragen. Ich habe die Datei desktop.jpg erfolgreich durch diesen Befehl ersetzt. Was ich getan habe, ist, TFTP-Server auf Windows-System erstellt. Melden Sie sich über Telnet auf dem Gerät an und führen Sie die folgenden Befehle aus:

Datei herunterladen tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69

Datei hochladen tftp -l desktop.jpg -g 192.168.0.249 69


0

Ich habe das jetzt durch diese Methoden gemacht:

Erstellen Sie einen FTP-Server (durch Installation von Solerwinds) auf einem Windows-System. Melden Sie sich über Telnet auf dem Gerät an und führen Sie die folgenden Befehle aus:

So laden Sie eine Datei herunter:

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

Beispiel:

tftp -l desktop.jpg -p 192.168.0.249 69

oder um eine Datei hochzuladen:

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

Beispiel:

tftp -l desktop.jpg -g 192.168.0.249 69

Der Standardspeicherort der TFTP-Datei ist C:\TFTP-Root


0

Ich habe gerade eine ~ 7-KB-Firmware-Datei über die serielle Schnittstelle auf ein BusyBox-basiertes Linux-Embedded-System hochgeladen.

Keine Netzwerk- oder Dateiübertragungsprogramme; Keine Base64-Hilfsprogramme oder andere nützliche Funktionen auf dem Gerät.

Auf dem Host habe ich eine Firmware einfach in das folgende Format codiert. eine Art Hex-Dump, bestehend aus Shell-Literalen kombiniert mit printfBefehlen:

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

im Grunde Shell- printfBefehle mit \xEscape-Sequenzen, die printfinterpretiert. Auf dem Gerät habe ich:

device $ cat > firmware.sh

Verwenden Sie dann die minicomASCII-Datei send ( Ctrl-AS), um diese Datei an den Host zu senden. Ich hätte einfach Kopieren und Einfügen verwenden können, da die Datenmenge gering ist.

Dann markierte ausführbare Datei und führte das printfSkript aus:

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

Überprüft mit BusyBox's, md5sumob die firmware.binPrüfsumme auf dem Gerät mit dem ursprünglichen Firmware-Image auf dem Host übereinstimmt.

PS Die Shell-Syntax mit doppelten Anführungszeichen wird \xwörtlich durchlaufen, da es sich nicht um eine erkannte Escape-Sequenz handelt. Daher müssen wir die Backslashes nicht verdoppeln.


-1

Ich verwende die folgende Methode, um kleine Binärdateien über Telnet in meine Windows-Box herunterzuladen:

  1. Führen Sie hexdump -v -e '16 / 1 "% 02x" 'myfile.bin aus
  2. Kopieren Sie den Hex-Dump vom Bildschirm
  3. Fügen Sie hex dump in dieses Online-Tool ein, um eine Binärdatei zu erstellen: http://tomeko.net/online_tools/hex_to_file.php?lang=de

Nicht sicher über Ihren Link in # 3!

3
@Goro Der Link in diesem Fall ist keine Erklärung, die zitiert werden kann, es ist ein Online-Tool, das für die Antwort unerlässlich ist. Es wäre besser, ein lokales Programm für diese Aufgabe zu haben.
RalfFriedl

Danke @RalfFriedl. Ich habe meine Antwort zur Klarstellung überarbeitet.
Igor Zelaya
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.