Curl

De Wiki doc


Curl est un outil très commun pour effectuer des transferts depuis ou vers un serveur en utilisant les protocoles DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET et TFTP. Cette commande est prévue pour fonctionner sans interaction avec l'utilisateur et est toute désigné pour être intégrée à des scripts (notamment Bash).

Installation

Curl est présent dans les dépôts de Debian, Il suffit d'utiliser APT pour l'installer.

apt install --no-install-recommends curl

Test de débit

Pour réaliser un test de débit descendant et montant, il est possible d'utiliser l'outil de la manière suivante.

Téléchargement

Nos tests se feront sur des fichiers hébergés par testdebit.info. Notez le renvoi dans le /dev/null afin de ne pas risquer d'être limité par les capacités du support de stockage local.

IPv4 uniquement :

  • HTTP sur une durée de 8 secondes : curl --max-time 8 -4 -o /dev/null http://bouygues.testdebit.info/10G.iso
  • HTTPS sur une durée de 8 secondes : curl --max-time 8 -4 -o /dev/null https://bouygues.testdebit.info/10G.iso
  • HTTP taille fixe de 100Mo : curl -4 -o /dev/null http://bouygues.testdebit.info/100M.iso
  • HTTPS taille fixe de 100Mo : curl -4 -o /dev/null https://bouygues.testdebit.info/100M.iso
  • HTTP taille fixe de 1Go : curl -4 -o /dev/null http://bouygues.testdebit.info/1G.iso
  • HTTPS taille fixe de 1Go : curl -4 -o /dev/null https://bouygues.testdebit.info/1G.iso


IPv6 uniquement :

  • HTTP sur une durée de 8 secondes : curl --max-time 8 -6 -o /dev/null http://bouygues.testdebit.info/10G.iso
  • HTTPS sur une durée de 8 secondes : curl --max-time 8 -6 -o /dev/null https://bouygues.testdebit.info/10G.iso
  • HTTP taille fixe de 100Mo : curl -6 -o /dev/null http://bouygues.testdebit.info/100M.iso
  • HTTPS taille fixe de 100Mo : curl -6 -o /dev/null https://bouygues.testdebit.info/100M.iso
  • HTTP taille fixe de 1Go : curl -6 -o /dev/null http://bouygues.testdebit.info/1G.iso
  • HTTPS taille fixe de 1Go : curl -6 -o /dev/null https://bouygues.testdebit.info/1G.iso


INFORMATION

Le débit moyen est affiché dans la colonne Average Dload. C'est un débit en Mo/s et non en Mb/s. C'est un débit utile, les encapsulations ne sont pas comptées.

Téléversement

Tout d'abord, il faut avoir un fichier à téléverser. Soit vous récupérez un fichier avec la méthode pré&cédente, soit vous le créé via dd de cette manière :

dd if=/dev/zero of=/tmp/temp.iso bs=1M count=10000 conv=fsync status=progress

Note : Ceci va créer un fichier de 10Go dans le /tmp de votre système. Adapter ces paramètres et en concéquence, les commandes qui suivent selon vos besoins.

IPv4 uniquement :

  • HTTP sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
  • HTTPS sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info
  • HTTP sans limite de durée : curl -4 -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
  • HTTPS sans limite de durée : curl -4 -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info

IPv6 uniquement :

  • HTTP sur une durée de 60 secondes : curl --max-time 8 -6 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
  • HTTPS sur une durée de 60 secondes : curl --max-time 8 -6 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info
  • HTTP sans limite de durée : curl -6 -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
  • HTTPS sans limite de durée : curl -6 -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info

ATTENTION

le débit est calculé coté émetteur : tout paquet émis et non acquitté est compté dans les données size_upload. Si un routeur a un petit débit mais un gros tampons, il est possible d'avoir une différence très importante, les données sont émises mais pas reçues car elles sont en transit dans la mémoire tampon du routeur. Il est donc indispensable d'avoir un test de longue durée (par exemple 60 secondes) en téléversement. En téléchargement, 8 secondes suffisent par contre, vu que le débit est calculé coté récepteur.

Source de la section

Cette section est issue d'une copie avec légères modifications de la page https://lafibre.info/tester-son-debit/curl-linux/. Je recommande d'aller jeter un œil sur ce très bon site au passage.