Serveur Socket Simple dans Bash?
Existe-t-il un moyen de se lier rapidement à un port TCP/adresse ip et d'imprimer simplement toutes les informations sur STDOUT? J'ai une solution de débogage simple qui écrit les choses à 127.0.0.1: 4444 et j'aimerais pouvoir simplement lier un port de bash et imprimer tout ce qui se présente. Est-il un moyen facile de faire cela?
4 réponses
Juste parce que vous avez demandé comment faire dans bash
, mais netcat
réponse est très valide:
$ exec 3<>/dev/tcp/127.0.0.1/4444
$ cat <&3
Cela fonctionne comme vous l'attendez:
nc -k -l 4444 |bash
Et puis vous
echo "ls" >/dev/tcp/127.0.0.1/4444
Ensuite, vous voyez la liste effectuée par bash.
[Un Bref Avertissement De Sécurité]
Bien sûr, si vous laissez une chose comme cela en cours d'exécution sur votre ordinateur, vous avez une grande ouverture d'accès à toutes sortes d'attaques, car les commandes peuvent être envoyés à partir d'un compte d'utilisateur sur n'importe quelle machine de votre réseau. Cela n'implémente aucune sécurité (authentification, identification) et envoie toutes les commandes transmises non crypté sur le réseau, de sorte qu'il peut très facilement être abusé.
Ajout d'une réponse en utilisant ncat
à laquelle @Freedom_Ben a fait allusion:
ncat -k -l 127.0.0.1 4444
Et explication des options de man ncat:
-k, --keep-open Accept multiple connections in listen mode
-l, --listen Bind and listen for incoming connections