Introduction

Voici un guide détaillé qui vous apprendra à assembler et configurer une nœud proxy mobile sur mini-PC Raspberry Pi ou Orange Pi. Nous couvrirons tout le parcours : du choix de la carte, du modem et de l'alimentation à l'installation du système d'exploitation, des pilotes et des programmes, en passant par la configuration du serveur proxy, son démarrage automatique et les tests. Le résultat final : vous aurez un proxy mobile HTTP(S)/SOCKS5 local ou accessible à distance, fonctionnant via un modem 4G/5G, avec la possibilité de redémarrer la session pour obtenir une nouvelle adresse IP mobile et un système de monitoring et de logging de base.

Pour qui ce guide : pour les débutants qui découvrent Raspberry Pi ou Orange Pi et souhaitent une instruction claire et sans jargon. En parallèle, nous fournirons quelques astuces avancées pour ceux qui veulent tirer le meilleur parti de leur matériel. Le guide est adapté pour un laboratoire domestique, un département de test de produits mobiles, une infrastructure interne d’entreprise ainsi que pour des projets éducatifs.

Ce qu'il faut savoir à l'avance : des compétences de base en terminal Linux au niveau copier-coller de commandes, savoir comment écrire une image système sur une carte microSD et brancher des câbles. Tout le reste sera expliqué. Nous éviterons délibérément le jargon professionnel ou l'expliquerons immédiatement.

Temps requis : avec tout l'équipement, comptez 2 à 4 heures, y compris l'installation de l'OS et des mises à jour. Le téléchargement des paquets et des firmwares peut prendre plus de temps si la connexion Internet est lente.

Liens rapides : aller à la sélection de la carte, du modem et de l'alimentation, aller à la configuration du serveur proxy.

⚠️ Attention : Utilisez ce guide uniquement dans le cadre de la législation en vigueur. Ne pas utiliser le proxy pour des activités illégales et ne pas essayer de contourner des restrictions. Respectez les conditions de votre contrat avec votre opérateur télécom.

Conseil : Si vous avez besoin d'une solution cloud prête à l'emploi pour gérer les IP mobiles sans assembler vous-même, envisagez des services spécialisés. Par exemple, mentionnons mobileproxy.space comme référence pour comprendre les possibilités de telles solutions et les fonctionnalités que vous pourrez partiellement reproduire sur votre nœud.

Préparation préalable

Avant de commencer, assurez-vous de disposer de tous les outils, accès et logiciels nécessaires. Cette section vous épargnera des arrêts en plein processus.

Outils, programmes et accès nécessaires

  • Un ordinateur sous Windows, macOS ou Linux pour écrire l'image système sur la carte microSD.
  • Un lecteur de carte pour microSD.
  • Un accès Internet pour télécharger les images de l'OS et des paquets.
  • Un terminal de client SSH (Windows : PowerShell intégré ou tout client SSH ; macOS/Linux : terminal intégré).
  • Un logiciel pour écrire les images : Raspberry Pi Imager ou tout utilitaire d'écriture d'images sur carte microSD.

Configurations système requises

  • Mini-PC : Raspberry Pi 3B/3B+/4B/5 ou Orange Pi (par exemple, Orange Pi PC, Orange Pi Zero2, Orange Pi 3 LTS, Orange Pi 5). Nous conseillons de ne pas descendre en dessous du Raspberry Pi 3B+ ou d'un Orange Pi équivalent.
  • Stockage : carte microSD de 16 à 32 Go de classe A1/A2. Pour la stabilité, mieux vaut 32 Go.
  • Alimentation : pour le Raspberry Pi 4 — 5V 3A avec USB-C ; pour le Raspberry Pi 3 — 5V 2.5A micro-USB ; pour l'Orange Pi — selon le modèle (en général 5V 3A USB-C ou 5V 2-3A DC).
  • Modem mobile : modem USB 4G/5G ou modem en mini-PCIe/M.2 avec adaptateur USB. Les modèles populaires : Huawei E3372 (Stick ou HiLink), ZTE MF833, Quectel EC25/EG25-G/EP06/EM12, Sierra Wireless EM7455/EM7565 (via adaptateur USB). Pour le 5G : Quectel RM500Q/RM520N (via adaptateur M.2-USB avec alimentation et antenne).
  • Carte SIM avec un tarif de données actif. Demandez à votre opérateur les paramètres APN et les restrictions.
  • Câble Ethernet ou accès Wi-Fi pour la configuration initiale.

Ce qu'il faut télécharger et installer à l'avance

  1. Téléchargez Raspberry Pi Imager ou préparez votre outil d'écriture d'images.
  2. Pour Raspberry Pi : utilisez Raspberry Pi OS Lite (Bookworm, 64 bits) pour un système minimal. Pour Orange Pi : téléchargez Armbian approprié (basé sur Debian 12, noyau 6.x), version Lite sans interface graphique.
  3. Préparez un client SSH (par exemple, OpenSSH standard).
  4. Regroupez les paramètres APN de votre opérateur : nom de l’APN, identifiant et mot de passe si nécessaire. Exemple : APN — internet, identifiant — vide, mot de passe — vide. Cherchez des données précises dans les documents de l’opérateur.

Création de sauvegardes

Si vous réutilisez une carte microSD déjà configurée, effectuez une sauvegarde de l'image. Sur Windows, vous pouvez utiliser n'importe quel utilitaire de lecture d'image de carte ; sur macOS/Linux, utilisez la commande dd pour créer un fichier image. Conservez la copie sur un disque externe.

Conseil : Tenez un fichier de notes où vous copiez toutes les commandes et configurations. Cela vous fera gagner du temps lors de la reconfiguration ou du transfert vers une autre carte.

Concepts de base

Termes clés en termes simples

  • Proxy mobile — serveur proxy qui se connecte à Internet via un réseau mobile (4G/5G). Les sites voient une IP mobile.
  • ModemManager — service Linux pour gérer les modems mobiles via des interfaces standards (QMI, MBIM, PPP, commandes AT).
  • QMI/MBIM/NCM — modes de communication Linux avec le modem. QMI et MBIM — modernes et rapides ; PPP — obsolète et lent ; NCM — émulation Ethernet pour certains modems.
  • 3proxy — serveur proxy léger, capable de HTTP, HTTPS (CONNECT), SOCKS5, authentification et logging.
  • Changement IP — redémarrage de la session modem (ou « mode avion ») pour obtenir une nouvelle IP mobile de l'opérateur. Aucune garantie : l'opérateur peut renvoyer la même adresse.

Principes de fonctionnement de base

Le mini-PC se connecte au modem mobile via USB. Le modem s'enregistre sur le réseau, établit une interface mobile et obtient une IP de l'opérateur. Le serveur proxy démarre sur le mini-PC, qui écoute un port désigné et accepte des connexions du réseau local ou via le port de redirection du routeur. Le trafic des clients passe par le modem. Sur demande, vous pouvez redémarrer la session du modem pour effectuer la rotation de l’IP.

Ce qu'il est important de comprendre avant de commencer

  • L'alimentation est cruciale : les modems USB consomment jusqu'à 0.5-1 A en pics. Il faut une alimentation de qualité et un bon câble USB. Pour les modems 5G, prévoyez un hub USB actif avec alimentation externe.
  • Refroidissement : Raspberry Pi 4/5 et puissants Orange Pi chauffent. Installez un radiateur et un ventilateur.
  • Couverture réseau : vitesse et stabilité dépendent de la qualité du signal LTE/NR. Utilisez des antennes externes et un bon emplacement.
  • Légalité : travaillez strictement dans le cadre de la législation et des règles de l'opérateur.

⚠️ Attention : Ne tentez pas de modifier l'IMEI ou d'autres identifiants des appareils. Cela est illégal. Tous les réglages de ce guide sont légaux et basés sur des outils standards de Linux.

Étape 1 : Choisir mini-PC, modem et alimentation

Objectif de l'étape

Sélectionner des composants matériels compatibles et fiables pour éviter les problèmes en début de projet.

Instructions détaillées étape par étape

  1. Choisissez la carte. Si vous souhaitez un démarrage le plus stable possible — Raspberry Pi 4B avec 2 à 4 Go de RAM. Si vous avez besoin de puissance moderne — Raspberry Pi 5. Alternativement : Orange Pi 3 LTS ou Orange Pi 5 (tenez compte des différences dans les images d'Armbian).
  2. Choisissez un modem USB. Pour la simplicité — Huawei E3372 en mode Stick ou ZTE MF833. Pour flexibilité et rapidité — Quectel EG25-G ou EP06/EM12 via adaptateur USB avec alimentation et antennes. Pour 5G — Quectel RM520N-GL avec adaptateur USB 3.0 et alimentation externe.
  3. Vérifiez les fréquences. Assurez-vous que le modem et l'opérateur prennent en charge les bandes LTE/5G nécessaires dans votre région.
  4. Préparez l'alimentation. Pour Raspberry Pi 4 — alimentation 5V 3A avec bon câble ; pour modem 5G — hub USB actif 5V 2-3A.
  5. Procurez-vous une microSD de 32 Go A1/A2. Une carte de marque fiable diminuera le risque d'erreurs.
  6. Préparez le refroidissement : des radiateurs et un ventilateur dans le boîtier.
  7. Achetez des antennes pour le modem, si elles ne sont pas incluses. Pour Quectel, deux antennes SMA sont souvent nécessaires pour LTE/NR.

Points importants

  • La stabilité de l'alimentation détermine si le modem se déconnecte sous charge.
  • Les antennes et l'emplacement améliorent le signal et la vitesse finale.
  • Compatibilité : Raspberry Pi OS et Armbian prennent en charge la plupart des modems via ModemManager et les pilotes qmi_wwan/cdc_mbim/option.

Conseil : Si vous avez des doutes sur le modem — optez pour Quectel EG25-G comme « un bon compromis » en termes de compatibilité et de stabilité sur 4G.

Résultat attendu

Vous aurez sur votre bureau un ensemble : mini-PC, carte mémoire, alimentation, modem USB avec carte SIM, antennes, câbles et refroidissement.

Problèmes potentiels et leurs solutions

  • Problème : Le modem surchauffe. Solution : utilisez un hub actif, éloignez le modem avec un câble USB prolongé, ajoutez un radiateur sur l'adaptateur.
  • Problème : Signal faible dans la pièce. Solution : utilisez une antenne externe, déplacez le modem près de la fenêtre, utilisez un long câble USB.
  • Problème : Vous n'êtes pas sûr si c'est Stick ou HiLink pour Huawei E3372. Solution : nous configurons les deux types ; pour HiLink, il y aura une autre méthode pour gérer la connexion.

✅ Vérification : Vérifiez si l'ensemble est complet et conforme aux besoins. Notez l'IMEI du modem et le modèle pour l'inventaire (uniquement pour référence, ne modifiez pas l'IMEI).

Étape 2 : Installer l'OS et les paquets de base

Objectif de l'étape

Déployer un OS actuel sans interface graphique, activer SSH, mettre à jour le système et installer les outils nécessaires pour la suite.

Instructions détaillées étape par étape

  1. Écrivez l'image. Insérez la microSD dans le lecteur de carte. Ouvrez Raspberry Pi Imager ou votre utilitaire. Sélectionnez Raspberry Pi OS Lite (Bookworm, 64 bits) pour Raspberry Pi ou l'Armbian Lite approprié pour Orange Pi. Indiquez la carte mémoire et cliquez sur le bouton d'écriture. Attendez la fin et la vérification.
  2. Activez SSH. Pour Raspberry Pi : une fois l'écriture terminée, retirez et reconnectez la carte au PC. Dans la partition de démarrage, créez un fichier vide nommé ssh sans extension. Pour Armbian, SSH est activé par défaut.
  3. Premier démarrage. Insérez la microSD dans la carte, connectez Ethernet au routeur, branchez l'alimentation. Patientez 1 à 2 minutes pour le premier déploiement du système.
  4. Trouvez l'IP de la carte. Vérifiez la liste des clients DHCP sur le routeur pour trouver l'appareil Raspberry Pi/Orange Pi. Ou utilisez un scanner de réseau. Supposons que l'adresse soit 192.168.1.50.
  5. Connectez-vous via SSH. Sur Windows, ouvrez PowerShell et exécutez : ssh pi@192.168.1.50 (pour Raspberry Pi, mot de passe par défaut : raspberry, s'il n'a pas été changé dans l'img). Pour Armbian, la première connexion vous demandera de définir un mot de passe et de créer un utilisateur.
  6. Mettre à jour le système. Exécutez successivement : sudo apt update, puis sudo apt full-upgrade -y. Attendez la fin. Redémarrez : sudo reboot. Connectez-vous à nouveau via SSH.
  7. Installez les paquets de base : sudo apt install -y modemmanager usb-modeswitch usbutils psmisc jq curl socat netcat-traditional. Pour les modems QMI/MBIM, ajoutez : sudo apt install -y libqmi-utils libmbim-utils.
  8. Installez les outils réseau : sudo apt install -y iproute2 iptables ufw ca-certificates.
  9. Configurez le fuseau horaire : sudo timedatectl set-timezone Europe/Moscow (ou votre ville). Activez la synchronisation horaire : sudo timedatectl set-ntp true.

Points importants

  • Utilisez des images Lite sans interface graphique. Elles consomment moins de ressources et sont plus stables.
  • Redémarrez après des mises à jour majeures du noyau et des firmwares.
  • Conservez vos accès : changez les mots de passe par défaut et notez-les dans un endroit sûr.

Conseil : Définissez un hostname statique : sudo hostnamectl set-hostname mobi-proxy-01. Cela simplifiera la navigation sur le réseau.

Résultat attendu

Le mini-PC est accessible via SSH, mis à jour, dispose de ModemManager installé, ainsi que des outils QMI/MBIM et des utilitaires réseau.

Problèmes potentiels et leurs solutions

  • Problème : Pas de connexion via SSH. Solution : Vérifiez si le fichier ssh est actif dans la partition de démarrage (pour Raspberry Pi), le câble réseau et la table DHCP sur le routeur.
  • Problème : La mise à jour bloque. Solution : Attendez, puis vérifiez si la carte mémoire est pleine. Un redémarrage via sudo reboot peut être nécessaire. Si ça bloque encore, réécrivez l'image.
  • Problème : Paquets inaccessibles. Solution : Vérifiez la date/heure, DNS et route avec ping 1.1.1.1 et ping debian.org. Corrigez le réseau.

✅ Vérification : Exécutez mmcli -L. Le modem pourrait ne pas être encore là, mais la commande doit fonctionner et ne pas renvoyer d'erreurs concernant ModemManager introuvable.

Étape 3 : Connecter et configurer le modem mobile

Objectif de l'étape

Pour que le modem soit stablement détecté par le système, s'enregistre sur le réseau et établisse une connexion mobile sur Linux.

Instructions détaillées étape par étape

  1. Connectez le modem à la carte. Pour les modems gourmands en énergie, utilisez un hub USB actif. Insérez la carte SIM dans le modem avant de le connecter.
  2. Vérifiez la détection de l'appareil : lsusb. Vous devriez voir une ligne avec le nom du modem (Huawei, ZTE, Qualcomm, Quectel). Conservez la sortie pour vos notes.
  3. Vérifiez les ports : dmesg | tail -n 50. Les appareils /dev/ttyUSBx ou des interfaces réseau comme wwan0, cdc-wdm0, usb0 ou eth1 devraient apparaître selon le mode.
  4. Vérifiez si ModemManager voit le modem : mmcli -L. Le modem devrait apparaître, par exemple /org/freedesktop/ModemManager1/Modem/0.
  5. Débloquez le modem si PIN demandé : mmcli -m 0 --pin=1234 (remplacez par votre PIN si activé). Il est préférable de désactiver le PIN au préalable sur le téléphone.
  6. Configurez l'APN. Pour le profil par défaut : mmcli -m 0 --simple-connect="apn=internet,user=,password=" ou mmcli -m 0 --3gpp-operator-format=long si nécessaire. Pour MBIM : utilisez mbimcli -d /dev/cdc-wdm0 --attach-packet-service, suivi de la configuration via ModemManager — plus simple généralement avec mmcli --simple-connect.
  7. Vérifiez l'état : mmcli -m 0. Dans la partie Status, vous verrez state: connected, et dans le Bearer — les paramètres de connexion.
  8. Vérifiez l'interface : ip a. Une interface comme wwan0 ou usb0/ncm0 devrait apparaître selon le mode. Effectuez ip route pour voir la route par défaut via l'interface mobile.
  9. Vérifiez l'accès Internet : curl -4 ifconfig.me et curl -4 ipinfo.io/ip (ou tout autre service similaire). Vous devriez voir une IP mobile publique.

Points importants

  • Modes du modem : E3372 peut fonctionner en mode HiLink (routeur) ou Stick (modem). En HiLink, l'interface sera comme eth1/usb0 avec une adresse interne, contrôle via l'interface web du modem. En Stick — via QMI/NCM/PPP. Nous conseillons de choisir Stick ou un modem QMI/MBIM complet (Quectel).
  • Aucun patch tiers sans nécessité : les noyaux modernes supportent la plupart des modems.
  • Antennes : connectez les deux antennes MIMO pour la stabilité 4G/5G.

Conseil : Pour les modems Quectel, le port AT principal est généralement /dev/ttyUSB2. La commande echo -e "AT+CSQ\r" | socat - /dev/ttyUSB2,crnl affichera le niveau du signal. Un bon niveau est un CSQ de 15 ou plus.

Conseil : Si vous avez un modem HiLink, ouvrez d'abord son interface web dans le navigateur à l'adresse affichée dans ip a (généralement 192.168.8.1), puis activez les données mobiles et vérifiez l'état de la connexion.

Résultat attendu

Le modem s'enregistre et se connecte avec succès au réseau. Les commandes curl renvoient une IP mobile publique.

Problèmes potentiels et leurs solutions

  • Problème : Le modem n'apparaît pas dans mmcli -L. Cause : mode incorrect ou manque de courant. Solution : connectez-le via un hub USB actif ; pour Huawei, assurez-vous qu'il est en mode Stick, installez usb-modeswitch (déjà installé), redémarrez.
  • Problème : Matériel bloqué par le PIN. Solution : désactivez le PIN sur la SIM dans le téléphone ; ou déverrouillez avec mmcli -m 0 --pin=XXXX.
  • Problème : Pas d'accès Internet. Cause : APN incorrect. Solution : vérifiez l'APN avec votre opérateur ; pour certains tarifs, un nom d'utilisateur/mot de passe peut être nécessaire, appliquez --simple-connect avec les paramètres.
  • Problème : IP ne change pas après reconnexion. Cause : l'opérateur peut mettre en cache l'adresse. Solution : attendez le délai ou appliquez un désenregistrement complet (voir section sur la rotation ci-dessous).

✅ Vérification : Exécutez mmcli -m 0 et ip a. Vous devriez voir l'état connecté et une interface active avec une adresse. curl -4 ifconfig.me doit renvoyer l’IP mobile.

Étape 4 : Configurer le serveur proxy

Objectif de l'étape

Installer et configurer un serveur proxy léger 3proxy, qui distribuera l'accès à Internet via le modem mobile.

Instructions détaillées étape par étape

  1. Installez 3proxy. Sur les systèmes basés sur Debian/Ubuntu, le paquet est souvent disponible : sudo apt install -y 3proxy. Si le paquet n'est pas disponible, installez-le à partir des sources ou utilisez une alternative comme tinyproxy/dante. Nous continuerons avec 3proxy.
  2. Créez un répertoire pour la configuration et les logs, s'ils n'existent pas : sudo mkdir -p /etc/3proxy /var/log/3proxy. Vérifiez où se trouve le fichier de configuration dans votre installation (généralement /etc/3proxy/3proxy.cfg).
  3. Créez le fichier de configuration : sudo nano /etc/3proxy/3proxy.cfg et insérez la configuration de base : daemon nscache 65536 config /etc/3proxy/3proxy.cfg monitor /etc/3proxy/3proxy.cfg log /var/log/3proxy/3proxy.log D logformat "%d %H:%M:%S %u %C:%c %R:%r %O %I %T" rotate 10 users user:CL:strongpassword auth strong allow user proxy -p3128 -a socks -p1080 flush. Explication : nous activons la démultiplexion, le logging, définissons l'utilisateur user avec le mot de passe strongpassword, lançons le proxy HTTP sur 3128 et SOCKS5 sur 1080. Modifiez les ports et identifiants si nécessaire.
  4. Limitez l'accès par IP (recommandé). Ajoutez des lignes avant de démarrer le proxy : allow user * 192.168.0.0/16 ou une IP/réseau de confiance spécifique ; ou utilisez un pare-feu. Un exemple simplifié : allow user pour un accès uniquement avec authentification.
  5. Autorisez le binding sur toutes les interfaces. Par défaut, le service écoute 0.0.0.0. Si vous souhaitez écouter uniquement sur le réseau local — utilisez l'option -i avec l'IP du mini-PC dans le LAN, par exemple : proxy -p3128 -a -i192.168.1.50. Pour SOCKS, c'est similaire : socks -p1080 -i192.168.1.50.
  6. Créez un unit systemd (si pas déjà créé par le paquet). Ouvrez : sudo nano /etc/systemd/system/3proxy.service. Insérez : [Unit] Description=3proxy After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg Restart=always RestartSec=3 LimitNOFILE=65536 [Install] WantedBy=multi-user.target. Enregistrez le fichier, puis exécutez : sudo systemctl daemon-reload, sudo systemctl enable --now 3proxy.
  7. Vérifiez l'état : systemctl status 3proxy. Vous devriez voir l'état actif (running). En cas d'erreur — consultez journalctl -u 3proxy -e.
  8. Configurez UFW. Activez le pare-feu : sudo ufw default deny incoming, sudo ufw default allow outgoing, sudo ufw allow 22/tcp (SSH), sudo ufw allow 3128/tcp, sudo ufw allow 1080/tcp si nécessaire. Activez : sudo ufw enable. Vérifiez les règles : sudo ufw status.
  9. Vérifiez l'accès au proxy depuis un client sur le réseau local. Indiquez l'IP du mini-PC et le port 3128 (HTTP) ou 1080 (SOCKS5), entrez le nom d'utilisateur/mot de passe user/strongpassword. Ouvrez un site pour déterminer l'IP et assurez-vous qu'elle est mobile.

Points importants

  • Ne laissez pas le proxy ouvert. Utilisez toujours l'authentification et la restriction par IP ou un pare-feu.
  • Conservez vos mots de passe dans un gestionnaire de mots de passe. Changez-les régulièrement.
  • Logs : vérifiez régulièrement /var/log/3proxy/3proxy.log.

Conseil : Si vous souhaitez uniquement SOCKS5, retirez la ligne proxy -p3128 -a et laissez socks -p1080. Cela réduira la surface d'attaque.

Conseil : Pour plusieurs utilisateurs, ajoutez-les dans la section users via deux-points, par exemple : users alice:CL:pass1 bob:CL:pass2.

Résultat attendu

3proxy fonctionne comme service, disponible sur les ports requis, protégé par un mot de passe et un pare-feu.

Problèmes potentiels et leurs solutions

  • Problème : Service ne démarre pas. Cause : erreur dans la config. Solution : vérifiez la syntaxe, simplifiez jusqu'à la configuration minimale et ajoutez les options une par une.
  • Problème : Le client ne peut pas se connecter. Cause : blocage UFW. Solution : vérifiez ufw status et la corrélation des ports autorisés.
  • Problème : Autentification échoue. Solution : vérifiez la section users, l'absence d'espaces superflus, redémarrez le service.

✅ Vérification : Depuis un client, indiquez le serveur proxy, authentifiez-vous et ouvrez la page affichant l'IP. L'IP mobile du modem doit être affichée.

Étape 5 : Configurer le démarrage automatique et améliorer la stabilité

Objectif de l'étape

Assurer le démarrage automatique de tous les composants après un redémarrage, ajouter la récupération automatique de la connexion et la rotation sécurisée de l'IP.

Instructions détaillées étape par étape

  1. Vérifiez le démarrage automatique de 3proxy. Nous avons déjà activé systemctl enable --now 3proxy. Assurez-vous qu'après sudo reboot, le service démarre.
  2. Ajoutez un service pour connecter le modem au démarrage. Bien que ModemManager lance lui-même le Bearer avec --simple-connect, il est plus fiable de créer un petit service. Créez le fichier /usr/local/bin/cell-up.sh avec le contenu : connexion via mmcli -m 0 --simple-connect="apn=internet" avec vérification de l'état. Rendez le fichier exécutable : sudo chmod +x /usr/local/bin/cell-up.sh.
  3. Créez un unit /etc/systemd/system/cell-up.service avec les lignes : [Unit] Description=Cellular bring-up After=ModemManager.service network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/cell-up.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target. Appliquez : sudo systemctl daemon-reload && sudo systemctl enable --now cell-up.
  4. Script de rotation de l'IP. Créez /usr/local/bin/cell-rotate.sh. Version 1 pour QMI/MBIM/Quectel : désactiver, attendre, réactiver : mmcli -m 0 --disconnect; puis mmcli -m 0 --set-power-state=low, pause de 3 à 5 secondes, puis mmcli -m 0 --set-power-state=on et répétition de --simple-connect. Pour le support AT, envoyez AT+CFUN=1,1 au port /dev/ttyUSB2 pour redémarrer le modem. Pour HiLink, utilisez l'API HTTP du modem pour déconnecter/connecter (si disponible). Ajoutez des logs et des délais de 10 à 30 secondes pour l'enregistrement.
  5. Assurez-vous que la rotation fonctionne correctement. Exécutez sudo /usr/local/bin/cell-rotate.sh et comparez curl -4 ifconfig.me avant et après. Planifiez une tâche cron si nécessaire, mais ne détournez pas trop souvent pour ne pas enfreindre les règles de l'opérateur.
  6. Surveillant du modem. Créez /usr/local/bin/cell-watchdog.sh, qui ping un adresse fiable toutes les 60 secondes (par exemple, 1.1.1.1), et après 3 échecs consécutifs, exécute cell-rotate.sh. Créez un unit systemd avec type simple et Restart=always.
  7. Surveillance des logs. Activez la rotation des logs 3proxy déjà définie par l'option rotate 10. Pour les logs système, assurez-vous que journald a les limites de stockage par défaut.
  8. Affinage des paramètres UFW. Gardez ouverts uniquement les ports nécessaires. Pour un accès Internet, configurez la redirection de port sur votre routeur et la restriction d'IP au niveau de 3proxy ou UFW.

Points importants

  • Les intervalles de rotation ne doivent pas être trop fréquents. Cela affecte la stabilité et peut enfreindre la politique de l'opérateur.
  • Sécurité : en cas d'accès distant, utilisez uniquement une liste d'IP fermée et des mots de passe fiables.
  • Logs et métriques : stockez les logs dans un volume limité pour éviter de remplir la microSD.

Conseil : Si vous avez plusieurs modems, nommez les interfaces et les appareils via des règles udev, pour éviter les confusions lors des redémarrages. Par exemple, assignez des liens symboliques par numéro de série.

Conseil : Pour les modems 5G, ne lésinez pas sur le hub USB actif et l'alimentation. C'est la clé d'un fonctionnement stable sous charge.

Résultat attendu

Le système établit automatiquement la connexion mobile et le proxy au démarrage, et en cas de défaillance, relance la connexion et remet le service en état de marche.

Problèmes potentiels et leurs solutions

  • Problème : La rotation ne change pas l'IP. Cause : l'opérateur renvoie le même pool. Solution : augmentez le temps d'attente entre déconnexion et connexion à 30-60 secondes ; effectuez un redémarrage complet de l'alimentation du modem ; changez si besoin la point de connexion (Bande) ou l’emplacement.
  • Problème : Le surveillant redémarre trop souvent. Solution : augmentez les seuils d'activation (par exemple, 5-7 échecs consécutifs) et l'intervalle entre les vérifications.

✅ Vérification : Redémarrez le mini-PC. Assurez-vous qu'après 1 à 2 minutes, 3proxy est disponible, Internet mobile est actif, et que le script de rotation modifie effectivement l'IP.

Étape 6 : Tester, surveiller, journaliser

Objectif de l'étape

Vérifier la configuration finale, mesurer les performances de base, configurer une simple surveillance de l'état du nœud.

Instructions détaillées étape par étape

  1. Vérifiez l'accessibilité des ports. Depuis un client, ouvrez : un navigateur avec réglages proxy et accédez à n'importe quel site. Ou utilisez des utilitaires : curl -x http://user:strongpassword@IP:3128 http://example.com. Pour SOCKS5 : curl --socks5 user:strongpassword@IP:1080 http://example.com.
  2. Vérifiez les changements d'IP. Comparez les résultats curl -4 ifconfig.me avant et après cell-rotate.sh.
  3. Évaluez la vitesse. Utilisez speedtest-cli (installer : sudo apt install -y speedtest-cli) via le proxy sur le client ou directement sur la carte. Gardez à l'esprit que la vitesse dépend de l'opérateur et du signal.
  4. Vérifiez les logs de 3proxy : tail -f /var/log/3proxy/3proxy.log. Vous devriez voir des lignes sur les connexions, utilisateurs et trafic.
  5. Vérifiez le log système : journalctl -u ModemManager -e, journalctl -u 3proxy -e. Assurez-vous qu'il n'y a pas d'erreurs.
  6. Activez la télémétrie de base. Vous pouvez programmer une collecte de métriques de niveau de signal via commandes AT (par exemple, AT+CSQ) et les enregistrer dans un fichier pour analyser la dynamique de la couverture.

Points importants

  • Attentes réalistes : le canal mobile est sujet à des fluctuations. Préparez-vous à des imprévus.
  • Journalisation aidera à traiter les situations imprévues et à optimiser la configuration.

Conseil : Si vous utilisez plusieurs proxies sur une seule carte, répartissez les ports, les utilisateurs et indiquez dans le nom du log une étiquette de nœud, pour éviter la confusion.

Résultat attendu

La connexion fonctionne via le proxy, l'IP est identifiée comme mobile, la rotation est active, les logs et journaux enregistrent les événements.

Problèmes potentiels et leurs solutions

  • Problème : Vitesse lente. Cause : Signal faible ou antenne saturée. Solution : Changez la position du modem, utilisez des antennes externes, essayez un autre opérateur.
  • Problème : Instabilité sous charge. Cause : alimentation. Solution : Alimentation plus puissante, hub actif, câble de qualité, activez le refroidissement.

✅ Vérification : Obtenez une IP mobile via le proxy et assurez-vous que les sites simples s'ouvrent rapidement. Lancez speedtest et comparez avec vos attentes.

Vérification des résultats

Liste de contrôle

  • L'accès SSH au mini-PC fonctionne.
  • ModemManager détecte le modem, la connexion s'établit automatiquement.
  • 3proxy fonctionne en tant que service, écoute sur les ports spécifiés.
  • L'accès au proxy est limité par des mots de passe et un pare-feu.
  • La rotation de l'IP change l'adresse publique dans certains cas.
  • Les logs sont écrits, le système ne surchauffe pas et ne perd pas d'alimentation.

Comment tester

  • Ouvrez 2-3 sites pour vérifier l'IP via le proxy. Comparez les adresses avant et après rotation.
  • Effectuez une série de requêtes courtes via le proxy et évaluez la latence : curl -w "%{time_connect} %{time_starttransfer}\n" -o /dev/null -s http://example.com.
  • Redémarrez l'appareil. Assurez-vous que tous les services démarrent d'eux-mêmes.

Indicateurs de réussite

  • Le temps de récupération après un redémarrage jusqu'à l'état totalement opérationnel est inférieur à 2 minutes.
  • Le pourcentage de rotations réussies avec changement d'IP est d'au moins 50-70 % (dépend de l'opérateur).
  • Stabilité sous charge de 1-2 Mbit/s sans baisses pendant plusieurs heures.

Erreurs typiques et solutions

  • Problème : Le proxy est accessible depuis Internet sans mot de passe. Cause : Configuration d'authentification et UFW manquante. Solution : Activez auth strong et users dans 3proxy, restreignez l'accès via UFW et par IP.
  • Problème : Le modem se déconnecte de temps en temps. Cause : Alimentation insuffisante ou surchauffe. Solution : Hub USB actif, meilleure alimentation, refroidissement, surveillant avec script de redémarrage.
  • Problème : mmcli ne trouve pas le modem après un redémarrage. Cause : Séquence d'initialisation. Solution : Ajoutez la dépendance After=ModemManager.service et un délai dans cell-up.service, vérifiez les règles udev.
  • Problème : La rotation ne donne pas une nouvelle IP. Cause : Politique de l'opérateur. Solution : Augmentez la pause entre déconnexion/connect, changez l'emplacement, effectuez une réinscription complète du modem en utilisant HiLink.
  • Problème : Les logs saturent la microSD. Cause : Journalisation trop détaillée. Solution : Réduisez la granularité, activez la rotation et le nettoyage automatique, déplacez les logs dans /var/log avec rotation.
  • Problème : Vitesse faible sur modem 5G. Cause : Utilisation d'USB 2.0 ou câble faible. Solution : Connectez-vous à l'USB 3.0, utilisez un câble court blindé, un hub actif, mettez à jour le firmware du modem si nécessaire.
  • Problème : Conflit de ports. Cause : D'autres services écoutent déjà sur ces ports. Solution : Changez les ports dans 3proxy et UFW, vérifiez ss -tulpen.

Fonctionnalités supplémentaires

Configurations avancées

  • Configuration multi-modem. Connectez 2 à 4 modems via un hub actif. Créez des instances 3proxy séparées avec des ports et identifiants uniques pour chaque modem. Liez l'interface sortante via ip rule et ip route (routage politique) si vous avez besoin d'une séparation claire du trafic.
  • API pour la rotation. Créez un service HTTP léger via socat ou tiny web server qui appelle cell-rotate.sh via requête GET. Ajoutez une authentification de base et des restrictions IP.
  • Liens à l'interface. Dans la config de 3proxy, utilisez l'option -e pour l'IP/interface sortante, si vous avez plusieurs canaux actifs et que vous devez forcer la sortie via le bon modem.

Optimisation

  • Stabilité du système de fichiers. Activez zram ou déplacez les logs intensifs dans /tmp ou sur un SSD externe si la charge est élevée.
  • Réduction des latences. Placez le modem plus près de la fenêtre, utilisez des antennes de bonne qualité, désactivez les démons inutiles dans le système.
  • Mise à jour du firmware. Mettez à jour le modem à la dernière version stable via le logiciel officiel du fabricant si nécessaire. Faites toujours des sauvegardes et ne coupez jamais l'énergie pendant la mise à jour.

Autres choses à faire

  • Intégration avec un panneau de contrôle. Créez une simple page HTML avec des boutons « connecter », « déconnecter », « rotation » et affichant l'état.
  • Équilibrage des clients. Avec plusieurs modems, vous pouvez répartir manuellement les utilisateurs entre les ports de différentes instances 3proxy pour équilibrer la charge.
  • Comparaison avec des solutions prêtes à l'emploi. Si vous avez besoin de scalabilité, d'automatisation de facturation, d'API flexibles, examinez des services spécialisés tels que mobileproxy.space comme exemple des fonctionnalités que vous pouvez adapter dans votre solution locale. Cela vous aidera à comprendre dans quelle direction évoluer.

Conseil : Conservez tous les scripts dans /usr/local/bin et marquez-les avec leur version et date. Cela facilitera le support.

Conseil : Ajoutez des signets internes par section dans le guide lui-même et dans vos documents. Par exemple, « Voir Étape 4 pour la configuration de 3proxy ».

FAQ

  1. Combien de modems peuvent être connectés à un seul mini-PC ? En fonction de l'alimentation et du hub — généralement 2 à 4 sans problème. Assurez-vous que chaque modem a assez de courant et utilisez un hub actif.
  2. Fonctionnera-t-il sans Ethernet, seulement par Wi‑Fi ? Oui. Connectez le mini-PC au Wi‑Fi et assurez-vous que le routeur voit l'appareil. Le proxy sera disponible via l'IP Wi‑Fi.
  3. Peut-on utiliser uniquement SOCKS5 ? Oui, laissez dans 3proxy uniquement la ligne socks et retirez le proxy HTTP. Cela simplifiera la configuration.
  4. Est-il nécessaire d'avoir une IP statique blanche à l'entrée ? Non, si l'accès est seulement depuis votre réseau local. Si vous avez besoin d'un accès depuis Internet, configurez la redirection de ports sur votre routeur et limitez l'accès par IP et mot de passe. Tenez compte des règles du fournisseur.
  5. À quelle fréquence peut-on faire tourner l'IP ? En toute sécurité — pas plus de quelques fois par heure. Une rotation excessive réduit la stabilité et peut enfreindre la politique de l'opérateur.
  6. Peut-on déployer sur un vieux Raspberry Pi 2 ? Techniquement oui, mais le rendement sera limité. Nous recommandons Pi 3B+ ou plus récent.
  7. Que faire si 3proxy est absent dans le dépôt ? Utilisez une compilation à partir des sources ou des alternatives comme tinyproxy (HTTP) et dante-server (SOCKS). La configuration est fondamentalement similaire.
  8. Comment connaître le niveau du signal ? Pour Quectel : envoyez AT+CSQ sur le port principal du modem, interprétation : 15-20 moyen, 20+ bon. Pour HiLink — regardez l'état dans l'interface web du modem.
  9. Comment se protéger contre la surchauffe ? Installez des radiateurs et un ventilateur, surveillez la température avec vcgencmd measure_temp sur Raspberry Pi, maintenez-la en dessous de 70-75°C sous charge.
  10. Peut-on réutiliser les scripts sur une autre carte ? Oui. Déplacez les fichiers de /usr/local/bin et les unités systemd, ajustez les chemins vers le modem et l'APN.

Conclusion

Vous avez monté une nœud proxy mobile complet sur Raspberry Pi ou Orange Pi : sélection de la carte, du modem et de l'alimentation, installation de l'OS, activation de ModemManager, établissement de la connexion, configuration de 3proxy avec authentification et pare-feu, garantie du démarrage automatique, rotation de l’IP et monitoring de base. Vous avez maintenant une expérience pratique et un outil fonctionnel pour tester le trafic mobile, intégrer avec des systèmes internes et pour des objectifs éducatifs. Vous pouvez continuer à développer cette solution : ajouter plusieurs modems, construire un panneau de contrôle, intégrer une API de rotation, optimiser le matériel et la logique de tolérance aux pannes. Pour une compréhension des meilleures pratiques et des fonctionnalités prêtes à l'emploi, il est pratique de se référer à des services comme mobileproxy.space, en comparant leurs capacités avec votre environnement local. Si vous devez rapidement évoluer, envisagez de combiner vos propres nœuds avec des solutions gérées prêtes à l'emploi.

⚠️ Attention : Respectez toujours la loi et votre contrat avec votre opérateur télécom. N'utilisez pas le proxy pour des tâches illégales et n'essayez pas de contourner des restrictions. Gardez l'appareil en bon état, surveillez l'alimentation et la température.

Conseil : Sauvegardez une copie de la carte microSD après la configuration complète. Cela vous permettra de restaurer rapidement en cas d'échec du stockage ou de modifications expérimentales.