Outil CLI
juewuy/ShellCrash avatar
juewuy/ShellCrash

ShellCrash : un gestionnaire de proxy en ligne de commande pour routeurs et serveurs Linux

ShellCrash est un client shell natif pour sing-box et mihomo qui aide les utilisateurs à changer de noyau et à gérer les flux de travail liés au proxy via des commandes concises.

13 276 étoiles1 865 forksShellGPL-3.0
GitHub

En bref

De quoi s’agit-il ?
ShellCrash est un script Shell qui déploie et pilote les noyaux mihomo et sing-box sur des équipements Linux, des routeurs OpenWrt aux serveurs Docker. Son interface en menu interactif et ses commandes concises en font un outil pratique, mais son installation exige des privilèges root et une certaine familiarité avec les environnements sans interface graphique.
À qui s’adresse-t-il ?
ShellCrash s'adresse aux administrateurs de routeurs OpenWrt, de serveurs Linux ou de conteneurs Docker qui veulent piloter mihomo ou sing-box sans interface web lourde. Son menu interactif et ses commandes courtes réduisent la courbe d'apprentissage, mais l'exigence de root et la dépendance à iptables ou nftables le rendent inadapté aux environnements contraints.
Puis-je l’utiliser commercialement ?
Oui, sous conditions. GPL-3.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement Shell, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un script pour qui ? Le problème que ShellCrash résout

Sur un routeur ou un serveur Linux, configurer un proxy comme mihomo ou sing-box demande souvent de télécharger le bon binaire, de créer un fichier de configuration, de mettre en place les règles de pare-feu et de lancer le service au démarrage. ShellCrash automatise cette chaîne d'opérations dans un script Shell unique. Le public visé est clair : les utilisateurs de routeurs OpenWrt ou de firmwares dérivés, les possesseurs de serveurs Debian, CentOS, Armbian ou Ubuntu, et ceux qui font tourner des conteneurs Docker sur Synology ou PVE. Le script ne remplace pas un proxy lui-même. Il gère le noyau, c'est-à-dire le binaire qui fait le travail de redirection du trafic. L'utilisateur peut basculer entre mihomo et sing-box sans reconfigurer tout le système. C'est une approche orientée ligne de commande, pensée pour des équipements souvent dépourvus d'écran et de souris.

Comment le script fonctionne : noyaux, modes et tâches planifiées

Le dépôt contient un script d'installation qui récupère le code depuis une source CDN ou privée, puis le place dans le système. Une fois installé, la commande crash lance un menu interactif. Ce menu propose de changer de noyau, d'importer des abonnements ou des fichiers de configuration, de régler des tâches planifiées et d'installer un tableau de bord web. Le script s'appuie sur curl ou wget pour les téléchargements, et sur iptables ou nftables pour la redirection du trafic. Si ces outils manquent, le script bascule en Pure Mode, c'est-à-dire sans redirection réseau. Le mode Routeur et le mode Local sont deux options de transfert de trafic, mais la documentation ne précise pas leurs différences exactes. Les tâches planifiées dépendent de crontab, et l'outil net-tools sert à détecter les ports occupés. Le script détecte aussi l'adresse locale via ubus ou iproute-doc, selon le système. Cette architecture en couches rend le script adaptable, mais elle introduit des dépendances que l'utilisateur doit anticiper.

Installation : commandes réelles et pièges à éviter

L'installation se fait en une ligne, avec des variantes selon la source et l'outil de téléchargement. Pour un serveur Linux standard, la commande recommandée utilise wget et le CDN jsDelivr : export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' && wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh && bash /tmp/install.sh && . /etc/profile &> /dev/null. Pour un routeur, la même commande avec sh au lieu de bash fonctionne. L'auteur propose aussi une source privée et une source HTTP pour les appareils anciens avec un wget obsolète. Le README insiste sur deux points : il faut être root, et il faut que SSH soit activé. Pour Alpine Linux, il faut d'abord installer des paquets : apk add --no-cache wget openrc ca-certificates tzdata nftables iproute2 dcron. En cas d'échec SSL, il est conseillé de changer de miroir. Ces commandes sont directes, mais elles supposent que l'utilisateur sait ce qu'il fait, car un script exécuté en root peut modifier le système en profondeur.

Ce que la documentation ne dit pas : limites et zones d'ombre

Le README est volontairement bref sur le fonctionnement interne. On y apprend que iptables ou nftables sont critiques, sinon le script ne peut fonctionner qu'en Pure Mode, mais on ne sait pas ce que cela implique concrètement pour le trafic. Les modes Routeur et Local sont mentionnés sans explication. La gestion des noyaux est décrite comme simple, mais aucune commande précise n'est listée, ni pour mettre à jour un noyau, ni pour basculer de mihomo à sing-box. L'utilisateur devra explorer le menu interactif ou consulter le blog de l'auteur. Le script dépend aussi de crontab pour les tâches planifiées ; si crontab n'est pas installé, cette fonctionnalité est silencieusement désactivée. Enfin, le projet ne fournit pas de documentation hors ligne dans le dépôt, ce qui peut freiner ceux qui n'ont pas accès au blog ou au groupe Telegram. Ces manques ne sont pas des bugs, mais ils obligent à une certaine autonomie.

Alternatives : comparer avec une interface web ou un autre script

L'alternative la plus directe est d'utiliser le panneau de configuration officiel de mihomo ou sing-box, souvent une interface web qui tourne localement. Cette approche offre une visualisation du trafic et une configuration par clics, mais elle demande d'installer et de maintenir un processus séparé. ShellCrash, lui, reste dans le terminal et peut fonctionner sur des équipements très limités. Une autre piste est d'écrire ses propres scripts systemd ou init.d pour lancer le noyau, mais cela demande plus de travail manuel et aucune gestion des abonnements. ShellCrash se distingue par sa capacité à importer des abonnements en ligne et à planifier des mises à jour, ce que ne fait pas un simple service systemd. Le choix dépend donc de votre tolérance à la ligne de commande et de votre besoin d'automatisation. Pour un utilisateur de routeur qui veut juste un proxy qui démarre, un script maison peut suffire, mais pour quelqu'un qui gère plusieurs appareils, ShellCrash apporte une couche d'abstraction.

Maintenance, mises à jour et licence : ce qu'il faut savoir

Le projet est sous licence GPL-3.0, ce qui signifie que vous pouvez l'utiliser, le modifier et le redistribuer, à condition de partager vos modifications sous la même licence. Le script intègre une fonction de mise à jour en ligne, décrite comme une maintenance en un clic. Les versions récentes montrent un rythme de publication régulier, avec une version 1.9.4 en février 2026 et une 1.9.3 en décembre 2025. La branche par défaut est dev, ce qui suggère que les utilisateurs installent potentiellement une version de développement. Le README ne précise pas si la branche dev est stable ou si elle contient des fonctionnalités expérimentales. Pour un usage en production, il serait prudent de vérifier les notes de version avant de passer à une nouvelle version. La mise à jour du script ne couvre pas nécessairement les noyaux eux-mêmes ; il faut probablement les mettre à jour séparément via le menu. Enfin, le projet dépend de sources externes comme jsDelivr et un serveur privé, ce qui introduit un point de défaillance si ces sources deviennent indisponibles.

Conclusion éditoriale

ShellCrash s'adresse aux administrateurs de routeurs OpenWrt, de serveurs Linux ou de conteneurs Docker qui veulent piloter mihomo ou sing-box sans interface web lourde. Son menu interactif et ses commandes courtes réduisent la courbe d'apprentissage, mais l'exigence de root et la dépendance à iptables ou nftables le rendent inadapté aux environnements contraints. Avant de l'adopter, vérifiez que votre firmware ou votre distribution inclut ces outils, que votre terminal supporte les scripts interactifs et que le mode Pure Mode vous suffit si vous ne pouvez pas configurer le pare-feu. Testez ensuite la commande crash -h pour lister les options réelles de votre version, car la documentation ne détaille pas toutes les commandes disponibles.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté