Postez ici vos trucs & astuces.
Répondre

[ftp] Partage de fichier facile, sans rien installer

#1Messageil y a 4 ans

Hello,

une astuce que je viens de découvrir: je cherchais à partager une soixantaine de video entre un PC sous Arch et un autre sous Debian Jessie, sans pour autant me prendre la tête à installer Samba, ni rien d'autre d'ailleurs.
les softs genre Dukto, Transfer-on-lan et cie sont pratiques, mais autant pour Arch c'est pas un problème (grâce à AUR), autant pour les installer sous Debian c'est une misère (dépôts tiers que je n'avais pas envie de mettre).

et puis je suis tombé sur cette astuce.

vous avez besoin d'installer.... rien du tout: tout est déjà sur la machine; en effet, Python propose nativement un serveur web simple (et à priori, Python est installé sur toutes les machines).

sur la machines qui offre le ou les fichiers, ouvrez le terminal et placez vous dans le répertoire où sont les fichiers (qui servira de racine au serveur), et tapez cette commande:
-si vous avez Python3 (comme sous Manjaro, Arch...)

sudo python -m http.server 80


-si vous avez Python2 (distros moins à jour)

sudo python -m SimpleHTTPServer 80


et c'est tout pour la machine qui partage (il faut laisser le terminal ouvert tant que ce n'est pas fini)

et sur la machine qui va télécharger, un navigateur web suffit, en allant à l'adresse de la machine qui partage (par exemple http://192.168.1.33).

si on a beaucoup de fichiers, et qu'on veut pas devoir cliquer sur tous les liens un par un, on peut utiliser Wget (là aussi présent dans toutes les distros); il faut se placer dans le répertoire où on veut que les fichiers soient téléchargés, et puis:

wget -r http://192.168.1.33/


et voilà, rien à installer, plus rapide que de se prendre la tête avec Samba ou NFS, plus rapide que de transférer dans des clés USB (surtout si comme moi vous avez 30 Go à envoyer); le réseau local que vous avez chez vous est bien plus rapide que tout ça...

NB: pour aller vraiment vite, on évitera le wifi (limité à 54 Mb/s); mieux vaut utiliser l'ethernet (surtout si toute l'install est compatible 10/100/1000)

[ftp] Partage de fichier facile, sans rien installer

#2Messageil y a 4 ans

:salut: merci pour cette astuce :bien

[ftp] Partage de fichier facile, sans rien installer

#3Messageil y a 4 ans

merci !
et donc dès que le terminal est fermé, le serveur web est fermé et le partage n'existe plus ?
Pas besoin de commande d'arrêt?
Suffirait donc d'ouvrir le port 80 sur le firewall, de coller un alias avec la commande pour s'en rappeler, et basta. Parfait. :)

[ftp] Partage de fichier facile, sans rien installer

#4Messageil y a 4 ans

pour arrêter, soit tu fermes le terminal, soit un coup de Ctrl-C; c'est une commande qui ne rend pas la main (pas de retour d'invite tant que le serveur tourne). et quand c'est arrêté, plus de partage. d'ailleurs ça s'apparente plus à un cloud qu'à un partage de fichiers, un partage de fichiers pouvant habituellement être réglé pour autoriser l'écriture (donc l'upload), alors que là, ça ne marche que dans un sens.

je l'ai utilisé sur mon LAN, mais concrètement, il n'y a pas de raison que ça ne marche pas à l'extérieur si on crée une règle NAT et qu'on se rappelle de son IP publique; cela dit, je pense pas que ça soit super costaud niveau sécurité: c'est juste un module de Python, pas un serveur web complet.

[ftp] Partage de fichier facile, sans rien installer

#5Messageil y a 4 ans

Bonjour Loubrix,

Belle astuce !
Par contre, est-ce que tu as essayé avec une machine en Windows ? Vers et depuis ?

Pour connaître son ip locale, en linux, c'est :

# ifconfig
et, en Windows, si je me souviens bien, on ouvre un terminal avec

cmd
puis

ipconfig


Ça devrait fonctionner pareil, non ?

Edit :
On devrait aussi pouvoir faire quelque chose avec cette merveille qu'est FileZilla...

[ftp] Partage de fichier facile, sans rien installer

#6Messageil y a 4 ans

sous Windows, pas de problème pour télécharger, puisqu'il faut juste un navigateur.
dans l'autre sens, je sais pas, mais je crois pas que Python soit installé nativement sous Windows 7 (sous Windows 8 et 10, j'ai pas fait attention); d'un autre coté, le partage de fichiers avec Samba est simple à mettre en place sous Windows et installé nativement (contrairement à Linux).
reste que pour ceux qui ont déjà Python sous Windows, à cause d'une application qui en aurait besoin, la commande doit être différente (à cause de la syntaxe du shell).

quand à Filezilla, c'est un client FTP, donc ça suppose un serveur FTP sur une des 2 machines (Proftpd, Wuftpd...).

[ftp] Partage de fichier facile, sans rien installer

#7Messageil y a 4 ans

Bonjour

Merci pour l'astuce, ça va me rendre service

Bonne journée

[ftp] Partage de fichier facile, sans rien installer

#8Messageil y a 4 ans

Dans le meme genre tu as le serveur ftp

python -m pyftpdlib -p 22021 -r 22080-22100 -n $monip -d ~/Public



#!/bin/sh
##recuperation de l'adresse externe (pour le serveur en mode passif)

monip=$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1)

#python -m pyftpdlib #démarre en actif sur le port 2121 (fonctionne sans soucis sur le reseau interne)
#python -m pyftpdlib -p 21 #(pour changer le port d'ecoute (par contre pour les ports inferieurs a 1024 il faut passer par root)
#autres solution faire une redirection dans la box ip interne 2121 ip externe 21


## serveur mode passif
## -p (port d'ecoute) -r (ports de transfer de données) -n (ip externe) (en ip statique on peut l'inscrire directement et commenter la troisieme ligne)
##-d (repertoire a partager) -w (droits en ecriture) (c'est vous qui voyez c'est un serveur anonyme dans l'etat acctuel)


python -m pyftpdlib -p 22021 -r 22080-22100 -n $monip -d ~/Public

##finis

[ftp] Partage de fichier facile, sans rien installer

#9Messageil y a 4 ans

et du coup, on en revient à Filezilla à l'autre bout (quoique les navigateurs web sont compatibles FTP, au moins pour le download).

[ftp] Partage de fichier facile, sans rien installer

#10Messageil y a 4 ans

Nickel :bien Ça évite d'installer open-ssh et ça rend encore plus simple le partage depuis VirtualBox.

[ftp] Partage de fichier facile, sans rien installer

#11Messageil y a 4 ans

Bonjour

Merci pour l'astuce :bien

Python2:

sudo python2.7 -m SimpleHTTPServer 80

Répondre