La commande suivante permet de savoir si un service est en écoute sur un port précis d'une interface
$ :> /dev/tcp/127.0.0.1/1234La commande ci-dessus permet de savoir si un progamme quelconque écoute sur le port 1234 sur l'interface 127.0.0.1
$ :> /dev/tcp/0.0.0.0/1234La commande ci-dessus permet de savoir si un progamme quelconque écoute sur le port 1234 sur n'importe quelle interface
$ :> /dev/tcp/1.2.3.4/1234La commande ci-dessus permet de savoir si un progamme quelconque écoute sur le port 1234 sur l'interface publique correspondant à l'ip 1.2.3.4
Si on analyse les ports ouverts avec la commande ss
$ ss -unplot
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 4096 0.0.0.0:443 0.0.0.0:*
tcp LISTEN 0 4096 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 4096 127.0.0.1:3306 0.0.0.0:*On peut vérifier qu'une application écoute bien sur le port 3306 uniquement sur l'interface 127.0.0.1
$ :> /dev/tcp/127.0.0.1/3306
$ :> /dev/tcp/0.0.0.0/3306
$ :> /dev/tcp/1.2.3.4/3306
-bash: connect: Connection refused
-bash: /dev/tcp/1.2.3.4/3306: Connection refusedOn voit bien que le port 3306 est accessible sur l'interface 127.0.0.1 mais pas sur l'interface publique 1.2.3.4
Il n'y a pas d'erreur sur l'interface 0.0.0.0 car l'interface 127.0.0.1 en fait partie