GNU/Linux - Comment installer et configurer un serveur TFTP
- Mise à jour le 26 févr. 2025

TFTP pour Trivial File Transfer Protocol est un protocole simplifié de transfert de fichiers qui permet a un ou plusieurs clients d'échanger des fichiers avec un hôte distant.
C'est un vieux protocole mais qui est toujours très utilisé dans de nombreuses applications réseau.
Je l'utilise personnelement pour mettre à jour les firmware de mes périphériques réseau. (Les commutateurs Cisco par exemple).
Nous verrons ici comment mettre en place un serveur TTFP sous la distribution Debian.
Schéma Réseau
- OS : Debian 12 (bookworm)
- Tftp server : atftpd
- Network Protocol : UDP 69
- Répertoire TFTP : /srv/tftp


Installation
- Mettre à jour la liste des paquets :
root@server:~# apt update
- Installer le serveur
atftpd
:
root@server:~# apt install atftpd
- Créer un dossier
/srv/tftp
si manquant. Ce dernier sera notre répertoire racine de notre partage tftp :
root@server:~# ls /srv/tftp || mkdir -p /srv/tftp
Configuration
Configuration réseau
- Éditer le fichier
/etc/network/interfaces
(remplacer ens224 par sa propre interface réseau) :
allow-hotplug ens224
iface ens224 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 192.168.1.254
- Afin que la modification soit prise en compte, redémarrer le serveur ou le service réseau :
root@host:~# systemctl restart networking
Configuration TFTP
- Éditer le fichier
/etc/default/atftpd
et vérifier que l'on a les paramètres suivants :
USE_INETD=true
# OPTIONS below are used only with init script
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /srv/tftp"
- Redémarrer le service
atftpd
:
root@server:~# systemctl restart atftpd.service
- Ajouter les droits de lecture/écriture pour rendre les fichiers dans
/srv/tftp
lisibles et modifiables :
root@server:~# chmod -R ugo+rw /srv/tftp/
Vérification depuis un client
Pour vérifier le bon fonctionnement de notre serveur nous pouvons utiliser un client TFTP.
- Depuis un hôte Debian, installer le client TFTP :
root@client:~# apt update && apt install tftp
- Se connecter au serveur TFTP :
user@client:~$ tftp 192.168.1.10
- Afficher l'état :
tftp> status
Connected to 192.168.1.10.
ode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
- Télécharger un fichier :
tftp> get c1000-universalk9-mz.152-7.E4.bin
- Envoyer un fichier :
tftp> put c1000-universalk9-mz.152-7.E4.bin
- Quitter la session :
tftp> quit
Serveur DHCP
Dans certaines situations on peut également avoir besoin de paramétrer un serveur DHCP, nous allons ici voir comment.
- Installer le service
dhcpd
:
root@client:~# apt update && apt install isc-dhcp-server
- Éditer le fichier
/etc/dhcp/dhcpd.conf
, ici avec un pool d'adresses de192.168.10.10
à192.168.10.20
:
option domain-name "example.org";
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.20;
}
- Éditer le fichier
/etc/default/isc-dhcp-server
pour préciser sur quelle interface réseau le service fonctionnera :
INTERFACESv4="ens224"
#INTERFACESv6=""
- Redémarrer le service
dhcpd
:
root@client:~# systemctl restart isc-dhcp-server.service
- Afficher les attributions
dhcpd
:
root@client:~# grep dhcpd /var/log/syslog