Téléchargement et téléchargement de fichiers via une session Telnet


15

J'ai un appareil d'assistance en marche Linux OS. Je peux connecter cet appareil via une session telnet. Il y a des fichiers dans l'appareil que je voudrais télécharger et télécharger avec de nouveaux fichiers. Comment puis je faire ça? J'ai très peu de connaissances sur Linux OS. Pourriez-vous s'il vous plaît aider!

entrez la description de l'image ici


Combien de fichiers souhaitez-vous transférer? Pouvez-vous coller quelque part la sortie de busybox --helpet ls -l /binet ls -l /usr/bin, s'il vous plaît.
jofel

en fait, je veux changer l'arrière-plan du bureau de cet appareil de présence et je veux y télécharger le logo de notre entreprise dans l'appareil. Ces options ne sont pas disponibles dans le menu de l'appareil (j'ai déjà demandé cette option au fournisseur). Je l'ai donc connecté via une session telnet et j'ai trouvé desktop.jpg et d'autres fichiers image dans l'appareil. Maintenant, je veux obtenir ces fichiers sur mon système local. et après avoir vérifié la même chose, je téléchargerai mes images souhaitées dans l'appareil. Il mettra donc à jour l'image de l'appareil en fonction de mes images souhaitables. Je veux changer au moins l'image de bureau qui est disponible dans l'appareil à / mnt / mtdblock / image
PRdeep Kumawat

Si vous souhaitez ajouter des informations la prochaine fois, veuillez modifier votre question au lieu d'ajouter des commentaires.
jofel

Réponses:


12

Cela dépend des outils installés sur le périphérique client / pris en charge par le noyau.

Méthodes possibles de transfert de fichiers (non ordonnées):

  • ssh / sftp
  • encoder des fichiers binaires dans un format affichable avec base64 / uuencode, puis copier depuis / dans la fenêtre de votre terminal telnet.
  • via une simple connexion tcp avec netcatou socatou avec bashet / dev / tcp
  • upload / download avec wgetou curldepuis un serveur web
  • serveur ftp avec un client ftp en ligne de commande
  • montage samba ou nfs

Lisez Transfert de fichiers simple et Comment obtenir un fichier sur un hôte alors que vous n'avez qu'une console série? pour plus de possibilités.


Copiez desktop.jpgde l'appareil sur votre PC avec la méthode netcat / nc:

Sur votre PC, désactivez temporairement (ou reconfigurez si possible) tout pare-feu et exécutez

netcat -l -p 10000 > desktop.jpg

et sur l'appareil

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

où vous devez remplacer ABCD par l'adresse IP de votre PC. Dès que le transfert a réussi, le processus netcat sur votre PC devrait s'arrêter automatiquement. Sinon, quelque chose ne va pas et vous pouvez l'arrêter avecCtrl+C

Pour l'autre sens, il suffit d'échanger <et des >deux côtés. Faites d'abord une sauvegarde de l'original desktop.jpg( cp desktop.jpg desktop_orig.jpg).


J'ai essayé l'utilitaire WinSCP et essayé de connecter l'appareil en utilisant le protocole ftp / sftp / scp. mais il ne se connecte pas. Je suis capable de connecter l'appareil via la commande telnet et de voir les fichiers que je veux récupérer et télécharger à nouveau sur l'appareil.
PRdeep Kumawat

Votre appareil n'a probablement pas de serveur ssh ou ftp en cours d'exécution.
jofel

Eh bien, je ne sais pas .. Y a-t-il un autre moyen d'obtenir / télécharger des fichiers à partir de cet appareil?
PRdeep Kumawat

Vous pouvez également utiliser szpour envoyer les fichiers via le terminal. Vous en aurez besoin des deux côtés.
slm

@PRdeepKumawat J'ai étendu la réponse avec un exemple.
jofel

6

Je n'ai aucun ssh ou ftp (ou etc) sur l'appareil.

Donc, je fais ensuite:

  1. telnet a.b.c.d | tee telnet.log
  2. connectez-vous et accédez au fichier
  3. cat file.txt
  4. fermer la session (je ferme le volet tmux)
  5. clair telnet.logde poubelle

Il devrait être facile d'écrire un utilitaire pour télécharger / télécharger un fichier sur telnet


1

Essayez avec la rcpcommande.

Utilisez man rcppour plus d'informations si vous souhaitez automatiser les transferts.

Au fait, vous savez que c'est très précaire , non?


1

Je viens de télécharger un fichier de firmware de ~ 7 Ko sur un système embarqué Linux basé sur BusyBox via le port série.

Aucun réseau, aucun utilitaire de transfert de fichiers; pas d'utilitaires Base64 ou quoi que ce soit d'utile à distance sur l'appareil.

Sur l'hôte, j'ai encodé trivialement un firmware au format suivant; une sorte de vidage hexadécimal composé de littéraux shell combinés avec des printfcommandes:

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

shell essentiellement des printfcommandes avec des \xséquences d'échappement qui printfinterprète. Sur l'appareil, j'ai fait:

device $ cat > firmware.sh

puis utilisé le minicomfichier ASCII send ( Ctrl-AS) pour envoyer ce fichier à l'hôte. J'aurais pu simplement utiliser le copier-coller, car la quantité de données est petite.

Ensuite, marqué exécutable et exécuté le printfscript:

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

Vérifié à l'aide de BusyBox md5sumque la firmware.binsomme de contrôle sur le périphérique correspond à l'image du firmware d'origine sur l'hôte.

PS La syntaxe de guillemet double du shell passe \xin extenso car ce n'est pas une séquence d'échappement reconnue; nous n'avons donc pas à doubler les barres obliques inverses.


0

@jofel et tous les autres, Merci beaucoup pour votre aimable assistance. Je pense que l'appareil a un système d'exploitation personnalisé installé car il ne reconnaît que certaines commandes Linux spécifiques. netcat n'est pas reconnu par l'appareil. Cependant, aujourd'hui, j'ai réussi à transférer le fichier à l'aide de la commande tftp. J'ai réussi à remplacer le fichier desktop.jpg par cette commande. Ce que j'ai fait, c'est créer un serveur tftp sur un système de fenêtres. connectez-vous via telnet sur l'appareil et exécutez ces commandes:

télécharger le fichier tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69

télécharger le fichier tftp -l desktop.jpg -g 192.168.0.249 69


0

Je l'ai fait maintenant par ces méthodes:

Créez un serveur ftp (en installant solerwinds) sur le système de fenêtres. connectez-vous via telnet sur l'appareil et exécutez ces commandes:

Pour télécharger un fichier:

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

Exemple:

tftp -l desktop.jpg -p 192.168.0.249 69

ou pour télécharger un fichier:

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

Exemple:

tftp -l desktop.jpg -g 192.168.0.249 69

l'emplacement par défaut du fichier tftp est C:\TFTP-Root


-1

J'utilise la méthode suivante pour télécharger de petits fichiers binaires via telnet dans ma boîte Windows:

  1. exécuter hexdump -v -e '16 / 1 "% 02x" 'monfichier.bin
  2. copier le vidage hexadécimal de l'écran
  3. collez le vidage hexadécimal dans cet outil en ligne pour créer un fichier binaire: http://tomeko.net/online_tools/hex_to_file.php?lang=en

Pas sûr de votre lien dans # 3!

3
@Goro Le lien dans ce cas n'est pas une explication qui peut être citée, c'est un outil en ligne qui est essentiel pour la réponse. Il serait préférable d'avoir un programme local pour cette tâche.
RalfFriedl

Merci @RalfFriedl. J'ai modifié ma réponse pour clarification.
Igor Zelaya
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.