Utiliser la commande ping sans sudo sous WSL

Si vous utilisez WSL (Windows Subsystem for Linux) avec une distribution Debian ou Ubuntu, vous avez remarqué que la commande ping nécessite d’être exécutée avec sudo pour fonctionner. Ce comportement est dû à l’absence de la capacité cap_net_raw sur le binaire ping, empêchant les utilisateurs non-root d’envoyer des requêtes ICMP.

germain@nuc13:~$ ping google.com
ping: socktype: SOCK_RAW
ping: socket: Operation not permitted
ping: => missing cap_net_raw+p capability or setuid?

1. Vérifier l’emplacement du binaire ping

which ping

Cela devrait afficher un chemin comme /usr/bin/ping.

2. Ajouter la capacité cap_net_raw

sudo setcap cap_net_raw+p $(which ping)

3. Vérifier la config

getcap $(which ping)

# attendu :
/usr/bin/ping = cap_net_raw+p

4. Tester

ping google.com

# attendu :
PING google.com (142.250.185.46) 56(84) bytes of data.
64 bytes from 142.250.185.46: icmp_seq=1 ttl=117 time=12.4 ms
64 bytes from 142.250.185.46: icmp_seq=2 ttl=117 time=12.1 ms

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site uses Akismet to reduce spam. Learn how your comment data is processed.