{"id":33280134,"url":"https://github.com/tempetflamer/squid_windows_multi_network_interface","last_synced_at":"2025-11-17T11:04:17.292Z","repository":{"id":324284807,"uuid":"1096618362","full_name":"tempetflamer/squid_windows_multi_network_interface","owner":"tempetflamer","description":"Tuto to create a multi network interface in creating proxy with Squid. optimize your network using multiple connections. Separate your network in several proxy to distribute it.","archived":false,"fork":false,"pushed_at":"2025-11-14T20:50:43.000Z","size":848,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-14T22:19:21.639Z","etag":null,"topics":["internet-connection","multi-connection","network","network-proxy","proxy","proxy-server","routing","squid","squid-proxy","windows","windows-10","windows-11"],"latest_commit_sha":null,"homepage":"","language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tempetflamer.png","metadata":{"files":{"readme":"README.fr.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-14T17:31:39.000Z","updated_at":"2025-11-14T20:50:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tempetflamer/squid_windows_multi_network_interface","commit_stats":null,"previous_names":["tempetflamer/squid_windows_multi_network_interface"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tempetflamer/squid_windows_multi_network_interface","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempetflamer%2Fsquid_windows_multi_network_interface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempetflamer%2Fsquid_windows_multi_network_interface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempetflamer%2Fsquid_windows_multi_network_interface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempetflamer%2Fsquid_windows_multi_network_interface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tempetflamer","download_url":"https://codeload.github.com/tempetflamer/squid_windows_multi_network_interface/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempetflamer%2Fsquid_windows_multi_network_interface/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284868720,"owners_count":27076421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-17T02:00:06.431Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["internet-connection","multi-connection","network","network-proxy","proxy","proxy-server","routing","squid","squid-proxy","windows","windows-10","windows-11"],"created_at":"2025-11-17T11:04:10.111Z","updated_at":"2025-11-17T11:04:17.283Z","avatar_url":"https://github.com/tempetflamer.png","language":"Batchfile","readme":"[![EN](https://img.shields.io/badge/lang-EN-red.svg)](https://github.com/tempetflamer/squid_windows_multi_network_interface/tree/main/README.md) [![FR](https://img.shields.io/badge/lang-FR-blue.svg)](https://github.com/tempetflamer/squid_windows_multi_network_interface/tree/main/README.fr.md)\r\n\r\n# Acheminer différentes applications Windows via différentes interfaces réseau à l'aide du proxy Squid\r\n\r\n## Table des matières\r\n- [Acheminer différentes applications Windows via différentes interfaces réseau à l'aide du proxy Squid](#acheminer-différentes-applications-windows-via-différentes-interfaces-réseau-à-laide-du-proxy-squid)\r\n  - [Table des matières](#table-des-matières)\r\n  - [Genèse du projet](#genèse-du-projet)\r\n  - [Pour qui ?](#pour-qui-)\r\n  - [Cas d'usage possible](#cas-dusage-possible)\r\n    - [Usage personnel (exemple)](#usage-personnel-exemple)\r\n    - [Gaming + Streaming](#gaming--streaming)\r\n    - [Développeurs / Testeurs / Administrateurs Réseaux](#développeurs--testeurs--administrateurs-réseaux)\r\n  - [Limitations / informations](#limitations--informations)\r\n  - [Prérequis](#prérequis)\r\n    - [installer Squid](#installer-squid)\r\n  - [Commandes utile](#commandes-utile)\r\n  - [Démarrage du projet](#démarrage-du-projet)\r\n    - [Récupération des IPs](#récupération-des-ips)\r\n    - [Vérifications des ports utilisés et utilisables](#vérifications-des-ports-utilisés-et-utilisables)\r\n    - [Réservations des ports utilisables](#réservations-des-ports-utilisables)\r\n    - [Création des fichiers de configuration](#création-des-fichiers-de-configuration)\r\n    - [Créations des scripts étape par étape](#créations-des-scripts-étape-par-étape)\r\n  - [Connection sur Firefox par proxy](#connection-sur-firefox-par-proxy)\r\n  - [Rangez vos exécutables](#rangez-vos-exécutables)\r\n  - [Structure finale du projet](#structure-finale-du-projet)\r\n  - [Lancement automatique des scripts au démarrage de Windows](#lancement-automatique-des-scripts-au-démarrage-de-windows)\r\n  - [Erreurs](#erreurs)\r\n  - [FAQ](#faq)\r\n\r\n## Genèse du projet\r\n\r\nAprès être passé à la fibre, j'ai dû faire passer ma connexion par CPL, ce qui était catastrophique en termes de stabilité et débit, sachant qu'il peut y'avoir une autre personne sur la connexion, et c'est récemment en changeant pour une carte PCIe que je me suis demandé si je pouvais avoir \u0026 utiliser plusieurs connexions internet sur Windows, et donc comment procéder.\r\n\r\nAujourd'hui il existe deux méthodes, l'addition de ces connexions qui offre stabilité, mais beaucoup de perte et la séparation des flux par tâche\r\nAddition des débits =\u003e Speedify, Connectify, pfSense\r\nSéparation des tâches selon la carte réseau =\u003e ForceBindIP, Proxifier, routes manuelles\r\n\r\nDans notre cas, on va s'intéresser à la séparation des tâches, mais les logiciels sont soit dépassé, ForceBindIp ne marche pas sur un navigateur moderne, soit payant comme Proxifier et reste malgré tout assez limité. Bref on ne va pas faire tous les cas, au finale on va devoir faire du routage manuel (proxy).\r\nJe partage cette méthode due au peu de ressources à ce sujet malgré ce projet bricolage.\r\n\r\n[tuto d'installation et d'utilisation de ForceBindIp rapidement](https://github.com/tempetflamer/squid_windows_multi_network_interface/tree/main/docs/forcebindip_use.fr.md)\r\n\r\nDans ce petit tuto, on verra comment utiliser Squid en proxy pour Firefox, Chrome et Edge eux semble utiliser le proxy de l'ordinateur, il vous sera donc plus compliqué de séparer par instance de navigateurs.\r\n\r\n## Pour qui ?\r\n\r\nCe tuto est donc destiné à ceux qui ne peuvent pas tirer pleinement parti de la connexion de leur box internet, parce qu'ils ne peuvent pas être directement connectés à leur routeur, et qu'il reste encore beaucoup de débit disponible à l'usage sur la / les bande(s) WIFI.\r\n\r\nIl est possible que votre routeur vous laisse la possibilité de séparer le flux en plusieurs bandes 5GHz par exemple (moi, je n'ai pas cette possibilité).\r\nAussi, certains routeurq internet ne permettent pas d'avoir le débit maximal de celui-ci sur le Wifi.\r\nComme Free en France avec son débit partagé sur la freebox pop par exemple.\r\n\r\n## Cas d'usage possible\r\n\r\n### Usage personnel (exemple)\r\n\r\n```\r\n\r\n┌───────────────────┐\r\n│     Streaming     │---\u003e Proxy 127.0.0.1:13130 ---\u003e Interface USB (192.168.1.XX) ---\u003e Internet\r\n└───────────────────┘\r\n\r\n┌───────────────────┐\r\n│  Téléchargements  │---\u003e Proxy 127.0.0.1:13129 ---\u003e Interface PCIe (192.168.1.XX) ---\u003e Internet\r\n└───────────────────┘\r\n\r\n┌──────────────────┐\r\n│   Usage léger    │---\u003e Proxy 127.0.0.1:13128 ---\u003e Interface CPL (192.168.1.XX)  ---\u003e Internet\r\n└──────────────────┘\r\n```\r\n\r\n### Gaming + Streaming\r\n\r\n```\r\n\r\n┌───────────────────┐\r\n│     Navigation    │---\u003e Proxy 127.0.0.1:13130 ---\u003e Interface USB (192.168.1.XX) ---\u003e Internet\r\n└───────────────────┘\r\n\r\n┌───────────────────┐\r\n│        Jeu        │---\u003e Proxy 127.0.0.1:13129 ---\u003e Interface PCIe (192.168.1.XX) ---\u003e Internet\r\n└───────────────────┘\r\n\r\n┌──────────────────┐\r\n│    Stream OBS    │---\u003e Proxy 127.0.0.1:13128 ---\u003e Interface CPL (192.168.1.XX)  ---\u003e Internet\r\n└──────────────────┘\r\n```\r\n\r\n### Développeurs / Testeurs / Administrateurs Réseaux\r\nPermet de testers les différentes connexions et des applications via ses différentes connexions.\r\n\r\nEt autres...\r\n\r\n\r\n## Limitations / informations\r\n- Tutoriel pour Windows\r\n- Il est impossible sur Windows d'utiliser le même SSID pour deux cartes internet différentes, même si les deux se connectent, ils utiliseront en réalité par alternance / priorité la connexion.\r\n- Fait pour du local dans mon utilisation, si vous voulez partager, changez 127.0.0.1 par 0.0.0.0 mais ajoutez un sytème d'authentification pour sécuriser.\r\n- Fait sous Windows 10\r\n\r\nJ'utiliserais une connexion par CPL, par Carte PCIe et par Clé Wi-Fi dans ce tuto.\r\n\r\nJe vais essayer de parler à des débutants pour ouvrir ce projet au plus grand nombre d'intéressés, désolé si vous me trouvez verbeux pour rien.\r\n\r\n\r\n\r\n## Prérequis\r\nConnectez-vous aux réseaux avec vos différents moyens de connexions pour rentrer le mot de passe et enregistrer la connexion sous Windows.\r\nSi vous avez plusieurs connexions Wifi, allez dans l'icone wifi en bas à droite, puis connecter vous au réseau pour chaques connexions.\r\n\u003cp\u003e\r\n  \u003cimg src=\"https://raw.githubusercontent.com/tempetflamer/squid_windows_multi_network_interface/main/imgs/change_wifi_connection1.jpg\" alt=\"Connexion WIFI\" width=\"220\"/\u003e\r\n  \u003cimg src=\"https://raw.githubusercontent.com/tempetflamer/squid_windows_multi_network_interface/main/imgs/change_wifi_connection2.jpg\" alt=\"Changer de connexion WIFI\" width=\"220\"/\u003e\r\n\u003c/p\u003e\r\n\r\nTélécharger le navigateur Firefox si vous voulez vérifier la connexion proxy avec le tutoriel sinon utilisez n'importe quelle application qui permet le proxy.\r\n\r\nÊtre sous Windows. Réalisé sous Windows 10.\r\n\r\n\r\n\r\n### installer Squid\r\n\r\nOn commence par installer Squid pour Windows, c'est tout ce qu'on utilisera, on prend la version Console App appelée \"Squid for Windows\"\r\n[Squid \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-external-link-icon lucide-external-link\"\u003e\u003cpath d=\"M15 3h6v6\"/\u003e\u003cpath d=\"M10 14 21 3\"/\u003e\u003cpath d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/\u003e\u003c/svg\u003e](https://squid.diladele.com/)\r\n\r\nSi vous avez installé le web proxy for windows par erreur, vous pouvez suivre ce guide de mon expérience pour le désinstaller (à part si vous savez l'utiliser bien sûr)\r\n\r\n[tuto de désinstallation de Squid Web proxy](https://github.com/tempetflamer/squid_windows_multi_network_interface/tree/main/docs/uninstall_squidsrv.fr.md)\r\n\r\nUne fois téléchargé un fichier nommé squid.msi, exécutez-le et suivez les étapes, choisissez l'emplacement de votre projet, attention mettez bien \"Squid\" dans l'emplacement de l'installation sinon l'installeur installera à la racine. Vous pouvez installer dans vos `Programme File` si vous le voulez, personnellement je l'ai mis sous `D:\\Documents\\Outils\\Squid`.\r\n\r\nUne fois installé vous devrez avoir\r\n``` \r\nSquid/\r\n├── bin/\r\n├── dev/\r\n│   └── shm/\r\n├── etc/\r\n│   └── squid/\r\n├── logs/\r\n├── usr/\r\n└── var/\r\n```\r\n\r\n- À la racine du projet dans `Squid`, on mettra nos différents scripts pour la gestion des proxys\r\n- Dans `bin/` nous retrouverons le lanceur `squid.exe`, on n'aura pas besoin de toucher ce dossier.\r\n- Dans `dev/shm/`, on retrouvera les fichiers temporaire et partagé .shm qui peuve provoqué des bugs, normalement vous n'aurez pas besoin d'y toucher.\r\n- Dans `etc/squid/`, nous mettrons nos fichiers de configuration `.conf` pour chacune de nos interfaces.\r\n- Dans `logs/` nous créerons des fichiers de logs que nous pourrons désactiver ou améliorer si vous le souhaitez plus tard.\r\n- Nous n'utiliserons pas les deux derniers dossiers `usr` et `var`\r\n\r\n## Commandes utile\r\nIci vous retrouverez des commandes qui vous seront utiles pour ce projet\r\n\r\n`tasklist | findstr squid` : Cherche toutes les tâches qui s'appelle squid\r\n`taskkill /F /IM squid.exe` : Ferme toutes les tâches squid.exe\r\n`netstat -ano | findstr \"8130\"` Cherche toutes les tâches sur le port 8130. \r\nSignification des arguments utilisés\r\n- Utilisée avec l'argument -a, la commande netstat affiche l'ensemble des connexions et des ports en écoute sur la machine.\r\n- Utilisée avec l'argument -n, la commande netstat affiche les adresses et les numéros de port en format numérique, sans résolution de noms.\r\n- Utilisée avec l'argument -o, la commande netstat détaille le numéro du processus associé à la connexion. \r\n  \r\n`netsh wlan show interfaces` vous permet d'afficher vos cartes réseaux Wi-Fi (Lan) sans toutes les cartes virtuelle ou inactive (la connexion par RJ45 n'est pas affiché non plus).\r\n\r\n`ipconfig` : Affiche toutes les cartes réseau disponibles, pour trouver celle que vous chercher, regarder  `Suffixe DNS propre à la connexion. . . : lan`\r\n\r\nVous pouvez utilisé le fichier `connections.ps1` pour voir toutes les connexions TCP avec détails du programme en utilisant powershell (pour lancer le programme ouvrer powershell depuis windows, déplacer vous avec `cd` pour allez au répertoire où est le fichier, et tapez .\\connections.ps1)\r\n\r\nTuer un seul processecus à la fois \r\n`netstat -ano | find \":13129\"`\r\nOn aura quelque chose comme :\r\n`TCP    127.0.0.1:13129    0.0.0.0:0    LISTENING    1234`\r\nIci, 1234 est le PID du processus qui utilise le port 13129.\r\n`taskkill /PID 1234 /F`\r\n\r\n## Démarrage du projet\r\n### Récupération des IPs\r\nCommençons par récupérer l'IP de vos cartes réseau, oui, c'est pour ça que vous deviez les connecter au moins une fois, faite `win` ou `win+r` et tapez cmd, cela vous ouvrira l'invite de commande, tapez `ipconfig` et chercher vos cartes parmi toutes celle afficher, indice regarder `Suffixe DNS propre à la connexion. . . : lan` pour trouver plus facilement.\r\nVous pouvez utiliser la commande `netsh wlan show interfaces` si vous cherchez uniquement des connexions Wi-Fi.\r\n\r\nEnsuite vous pouvez utiliser le fichier `connections.ps1` qui se trouve dans `scripts` pour voir toutes les connexions TCP avec détails du programme.\r\n(Pour lancer le programme ouvrer powershell depuis Windows en tapant powershell dans la barre de recherche, déplacer vous avec `cd` pour allez au répertoire où est le fichier {tapez juste la lettre du lecteur avec : pour changer de disque `D:` pour passer du disque C à D}, et tapez .\\connections.ps1)\r\n\r\nUne fois faits, tous vos ports locaux utilisés par des services seront affichés.\r\n\r\n### Vérifications des ports utilisés et utilisables\r\nNous allons maintenant vérifier les ports réservés par Windows avec la commande `netsh interface ipv4 show excludedportrange protocol=tcp`\r\nRésultat :\r\n```\r\nProtocole tcp Plages d'exclusion de ports\r\nPort de début    Port de fin\r\n-------------    -----------\r\n        80          80\r\n      1487        1487\r\n      5673        5673\r\n      5674        5674\r\n      7058        7058\r\n      7452        7551\r\n      7552        7651\r\n      7652        7751\r\n      7852        7951\r\n      8052        8151\r\n      8152        8251\r\n      8252        8351\r\n      8352        8451\r\n      8452        8551\r\n      8670        8769\r\n      8770        8869\r\n      8870        8969\r\n      9070        9169\r\n      9281        9380\r\n      9381        9480\r\n      9481        9580\r\n      9581        9680\r\n      9681        9780\r\n     10090       10189\r\n     10190       10289\r\n     10290       10389\r\n     10490       10589\r\n     10690       10789\r\n     10790       10889\r\n     10890       10989\r\n     10990       11089\r\n     11090       11189\r\n     11238       11337\r\n     11338       11437\r\n     11495       11594\r\n     11595       11694\r\n     11695       11794\r\n     11795       11894\r\n     11895       11994\r\n     11995       12094\r\n     12095       12194\r\n     12195       12294\r\n     12295       12394\r\n     12395       12494\r\n     12495       12594\r\n     12595       12694\r\n     22000       22000\r\n     42137       42236\r\n     42237       42336\r\n     42337       42436\r\n     42537       42636\r\n     42737       42836\r\n     42837       42936\r\n     42937       43036\r\n     43037       43136\r\n     43137       43236\r\n     43256       43355\r\n     43356       43455\r\n     43456       43555\r\n     43556       43655\r\n     43656       43755\r\n     44260       44359\r\n     44360       44459\r\n     44460       44559\r\n     44560       44659\r\n     44660       44759\r\n     50000       50059     *\r\n* - Exclusions de ports administrés.\r\n```\r\nTous ces ports ne sont pas forcément utilisés, mais peuvent être utilisés, ils sont réservés par les mises à jour windows, hyper-v pour beaucoup est ne sont pas utilisé.\r\nSi vous avez vraiment beaucoup de ports occupés comme là, on peut commencer par ouvrir le terminal (`cmd`) en administrateur et faire un `net stop winnat`, puis `net start winnat`.\r\nRefaites la commande `netsh interface ipv4 show excludedportrange protocol=tcp`, vous devriez avoir nettement moins d'adresse IP réservée maintenant.\r\n```\r\nPort de début    Port de fin\r\n-------------    -----------\r\n        80          80\r\n      1487        1487\r\n      5673        5673\r\n      5674        5674\r\n     22000       22000\r\n     50000       50059     *\r\n\r\n* - Exclusions de ports administrés.\r\n```\r\n![restart NAT](https://raw.githubusercontent.com/tempetflamer/squid_windows_multi_network_interface/main/imgs/nat_system.jpg)\r\n\r\nVous avez dû le remarquer, mais un `*` apparaît à côté de certains ports, ce signe est utilisé pour signifier que les ports sont réservés de façon permanente.\r\n`50000       50059     *` sont des ports système réservés pour Windows.\r\n\r\nNous utiliserons ce même système pour réserver nos ports sinon Windows risque de prendre ces ports à un moment ou un autre.\r\nNous utiliserons la plage de ports 1310X pour notre projet, non réservé et pas d'applications dessus.\r\n\r\n### Réservations des ports utilisables\r\n\r\nCommençons par réserver nos ports, pour moi de 13128 à 13130.\r\n\r\nFaite `netsh int ipv4 add excludedportrange protocol=tcp startport=13128 numberofports=3 store=persistent` sous cmd en administrateur.\r\nEnsuite, vérifiez avec `netsh interface ipv4 show excludedportrange protocol=tcp`, vous devriez avoir une ligne `13128       13130     *` qui apparait.\r\n```\r\nC:\\WINDOWS\\system32\u003enetsh interface ipv4 show excludedportrange protocol=tcp\r\n\r\nProtocole tcp Plages d'exclusion de ports\r\n\r\nPort de début    Port de fin\r\n-------------    -----------\r\n        80          80\r\n      1487        1487\r\n      5673        5673\r\n      5674        5674\r\n     13128       13130     *\r\n     22000       22000\r\n     50000       50059     *\r\n\r\n* - Exclusions de ports administrés.\r\n```\r\n\r\n### Création des fichiers de configuration\r\nNous pouvons maintenant commencer, on va créer le premier fichier de config\r\n\r\nBonus : rendre fixes les adresses IP des cartes réseau\r\n\r\nBonus : Ports conservés pour Squid\r\n\r\nfichier `squid_pcie.conf` créer le dans `Squid\\etc\\squid`\r\n```.conf\r\n# 127.0.0.1 pour signaler qu'on est en local si on avait mis 0.0.0.0, d'autres personnes du réseau local auraient pu se connecter\r\n# Choisissez un port de libre pour remplacer 13129\r\nhttp_port 127.0.0.1:13129\r\n# L'adresse IP de votre carte réseau que vous voulez utiliser comme proxy\r\ntcp_outgoing_address 192.168.1.xx\r\npid_filename D:/Documents/Outils/Squid/var/run/squid_pcie.pid\r\n\r\n# DNS Google, vous pouvez mettre celui de votre FAI ou un autre si vous voulez\r\ndns_nameservers 8.8.8.8 8.8.4.4\r\ndns_v4_first on\r\n\r\n# Désactive complètement le cache\r\ncache deny all\r\ncache_mem 0 MB\r\nmemory_pools off\r\n\r\n# Privacy, Évite que notre IP locale apparaisse dans les en-têtes HTTP\r\nforwarded_for off\r\n# Logs, vous pouvez les désactiver avec `access_log none` et `cache_log none`\r\naccess_log D:/Documents/Outils/Squid/logs/access_pcie.log\r\ncache_log D:/Documents/Outils/Squid/logs/cache_pcie.log\r\n\r\n# Access Control Lists, information basique de sécurité,\r\n# `acl CONNECT method CONNECT` pour HTTPS traffic SSL/TLS chiffré\r\nacl localnet src 127.0.0.1 192.168.1.0/24\r\nacl SSL_ports port 443\r\nacl Safe_ports port 80 443\r\nacl CONNECT method CONNECT\r\n\r\n# Access rules pour sécuriser la connexion en mode local\r\nhttp_access deny !Safe_ports\r\nhttp_access deny CONNECT !SSL_ports\r\nhttp_access allow localnet\r\nhttp_access deny all\r\n```\r\n\r\nSupprimer les commentaires explicatifs (commence par #), gardez / mettez ce qui vous ai utile.\r\n\r\nFaite de même pour chaque proxy que vous avez besoin de créer, gardez un nom logique pour vos fichiers de config afin de les reconnaître facilement, et si possible essayer de regrouper vos ports choisis, ex: 13128, 13129, 13130.\r\n\r\nDans `logs/`, vous pouvez pré-créer tous vos fichiers de logs, ici `cache_pcie` et `access_pcie` dans notre exemple de fichier de configuration, faite pour chaque configuration, sinon, le programme devrait les créer tout seul.\r\n\r\n### Créations des scripts étape par étape\r\n\r\nEt là on y vient à la création des scripts, on va le faire étape par étape.\r\nPremier script pour lancer le pcie\r\n```bat\r\n@echo off\r\nD:\\Documents\\Outils\\Squid\\bin\\squid.exe -f D:\\Documents\\Outils\\Squid\\etc\\squid\\squid_pcie.conf -N\r\n```\r\nOk, rien de compliqué pour celui-là, remplacez juste `D:\\Documents\\Outils\\Squid` par votre emplacement et `squid_pcie.conf` par le nom de votre fichier\r\nℹ️ Au passage, si vous avez des erreurs vous pouvez voir dans la section erreur si elle y figure au cas où.\r\n\r\nVous pouvez maintenant ouvrir `cmd` en administrateur afin de pouvoir fermer l'application si besoin (ouvrez cmd et déplacer vous à la racine `Squid`)\r\nvous pouvez maintenant vérifier que le process Squid, c'est bien lancer\r\navec la commande `tasklist | findstr squid` ou `netstat -ano | findstr \"13129\"` pour chercher si le programme est bien ouvert sur le port que vous avez mis, remplacer 13129 par votre port\r\n`taskkill /F /IM squid.exe` : Ferme toutes les tâches squid.exe (nécessite des droits administrateur)\r\n\r\nTuer un seul processecus Squid à la fois \r\n`netstat -ano | find \":13129\"`\r\nOn aura quelque chose comme :\r\n`TCP    127.0.0.1:13129    0.0.0.0:0    LISTENING    1234`\r\nIci, 1234 est le PID du processus qui utilise le port 13129.\r\n`taskkill /PID 1234 /F`\r\n\r\non passe sur la deuxième version du code\r\n```bat\r\n# Configuration de la fenêtre\r\n@echo off\r\ntitle Squid PCIe Proxy (13129)\r\ncolor 0A\r\n\r\n# Affichage de l'en-tête\r\necho ========================================\r\necho   Starting Squid PCIe Proxy\r\necho ========================================\r\necho.\r\n\r\n# Vérifier si le port 13129 est déjà utilisé\r\nnetstat -ano | findstr \":13129\" \u003enul 2\u003e\u00261\r\nif %errorlevel% equ 0 (\r\n    echo [!] Port 13129 already in use!\r\n    echo [!] PCIe proxy may already be running\r\n    pause\r\n    exit /b 1\r\n)\r\n\r\n# Supprimer les fichiers temporaires qui pourraient causer des conflits\r\necho [*] Cleaning temporary files...\r\ndel /Q D:\\Documents\\Outils\\Squid\\dev\\shm\\squid-cf__*pcie*.shm \u003enul 2\u003e\u00261\r\ndel /Q D:\\Documents\\Outils\\Squid\\var\\run\\squid_pcie.pid \u003enul 2\u003e\u00261\r\n\r\n# Afficher les informations de démarrage\r\necho [*] Starting PCIe proxy...\r\necho.\r\necho [+] Proxy started running on 127.0.0.1:13129\r\necho [+] Interface: Wi-Fi PCIe (192.168.1.XX)\r\necho.\r\necho ========================================\r\necho   Press Ctrl+C to stop this proxy\r\necho ========================================\r\necho.\r\n\r\n# Lancer Squid en mode foreground (-N = reste attaché à la fenêtre)\r\nD:\\Documents\\Outils\\Squid\\sbin\\squid.exe -f D:\\Documents\\Outils\\Squid\\etc\\squid\\squid_pcie.conf -N\r\n```\r\n\r\nPlutôt que de passer par l'invite de commande pour voir si cela c'est bien lancé, vous pouvez utiliser le script `status.bat` en remplaçant les ports utilisés par ceux que vous utiliserez, vous aurez plus qu'à double-cliquez sur le .bat, sinon faite comme tout à l'heure (`tasklist | findstr squid` ou `netstat -ano | findstr \"13129\"`).\r\n \r\nVous pouvez kill les programmes comme tout à l'heure ou utilisez `Stop_all.bat`.\r\nAussi vous pouvez déjà prendre le programme `diag_squid.bat`, si cela vous intéresse, il va vous afficher quelque chose comme\r\n```\r\n\r\n[1] Network Interfaces Status:\r\n----------------------------------------\r\n    Adresse IP :                           192.168.1.XX\r\n    Adresse IP :                           192.168.1.XX\r\n    Adresse IP :                           192.168.1.XX\r\n\r\n[2] Expected IPs:\r\n----------------------------------------\r\nCPL:  192.168.1.XX (Ethernet)\r\nPCIe: 192.168.1.XX (Wi-Fi 2)\r\nUSB:  192.168.1.XX (Wi-Fi 4)\r\n\r\n[3] Squid Processes:\r\n----------------------------------------\r\n\r\n[4] Listening Ports:\r\n----------------------------------------\r\n\r\n[5] WiFi Connection Status:\r\n----------------------------------------\r\n    SSID                   : MAbox-XXXXXXXX-5GHz_EXT\r\n    BSSID                  : XX:00:X0:0X:X0:00\r\n    SSID                   : MAbox-XXXXXXXX-5GHz\r\n    BSSID                  : 0X:XX:X0:0X:0X:X0\r\n\r\n```\r\n\r\nSi on se penche un peu sur le programme, il nous faut indiquer nos interfaces, moi, j'en ai 3 ici, mais, mettez ce que vous avez, vous devez indiquer le nom de vos interfaces, ici pour moi `Ethernet`, `\"Wi-Fi 2\"` et `\"Wi-Fi 4\"`, les adresses IP, ainsi que les ports de sortie que vous avez choisis (section 1, 2, 4).\r\n```\r\n@echo off\r\ntitle Squid Diagnostic Tool\r\ncolor 0E\r\n\r\necho ========================================\r\necho   SQUID DIAGNOSTIC REPORT\r\necho ========================================\r\necho.\r\n\r\necho [1] Network Interfaces Status:\r\necho ----------------------------------------\r\nnetsh interface ip show addresses \"Ethernet\" 2\u003enul | findstr \"IP Address\"\r\nnetsh interface ip show addresses \"Wi-Fi 2\" 2\u003enul | findstr \"IP Address\"\r\nnetsh interface ip show addresses \"Wi-Fi 4\" 2\u003enul | findstr \"IP Address\"\r\necho.\r\n\r\necho [2] Expected IPs:\r\necho ----------------------------------------\r\necho CPL:  192.168.1.XX (Ethernet)\r\necho PCIe: 192.168.1.XX (Wi-Fi 2)\r\necho USB:  192.168.1.XX (Wi-Fi 4)\r\necho.\r\n\r\necho [3] Squid Processes:\r\necho ----------------------------------------\r\ntasklist | findstr squid.exe\r\necho.\r\n\r\necho [4] Listening Ports:\r\necho ----------------------------------------\r\nnetstat -ano | findstr \"LISTENING\" | findstr \"13128 13129 13130\"\r\necho.\r\n\r\necho [5] WiFi Connection Status:\r\necho ----------------------------------------\r\nnetsh wlan show interfaces | findstr \"SSID State\"\r\necho.\r\n\r\npause\r\n```\r\n\r\nCeci fait, reprenons notre code `Start`, vous avez dû le remarquer, mais pour l'instant tout se lance dans un bat et reste ouvert, pas ouf pour automatiser tout ça pour tous les jours d'avoir toutes ces fenêtres tout le temps ouvertes.\r\nvous pouvez utiliser le script `start_squid_pcie_silent.bat` qui contient\r\n```bat\r\nSTART /MIN CMD.EXE /C start_squid_pcie.bat\r\n```\r\nIl lancera en réduit le script, ce qui n'est pas exactement ce que l'on cherche\r\nD'après ce que j'ai vu, ce n'est pas possible de faire un vrai silencieux en bat pur.\r\nOn va donc passer sur du `.vbs` que vous avez déjà du voir dans le dossier scripts.\r\nVoyons la structure du fichier `vbs` `stop_all.vbs`\r\n```vbs\r\nSet WshShell = CreateObject(\"WScript.Shell\")\r\nWshShell.Run \"taskkill /F /IM squid.exe\", 0, False\r\n```\r\nOn commence par créer un objet Shell Windows pour exécuter des commandes,\r\npuis on :\r\n`\"taskkill /F /IM squid.exe\"` Tue tous les processus Squid\r\n`0` = Fenêtre cachée (pas de CMD visible)\r\n`False` = Ne pas attendre la fin de l'exécution\r\n\r\nC'est pareil pour le `start_all.vbs`, on démarre juste le .bat avec ces paramètres plutôt que d'exécuter directement la commande.\r\n`WshShell.Run \"D:\\Documents\\Outils\\Squid\\start_squid_pcie.bat\", 0, False`\r\n\r\nVous pouvez tester tout ça avec tous vos programmes actuels.\r\n\r\nSi vous voulez tester si votre proxy marche, vous pouvez aller directement à la partie sur Firefox et revenir ici après [\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-external-link-icon lucide-external-link\"\u003e\u003cpath d=\"M15 3h6v6\"/\u003e\u003cpath d=\"M10 14 21 3\"/\u003e\u003cpath d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/\u003e\u003c/svg\u003e](#connection-sur-firefox-par-proxy).\r\n\r\nBien, reprenons, on va créer les `vbs`, des .bat pour tester, ils ne sont pas nécessaires, ça vous fait juste une manière différente.\r\n```\r\nSet WshShell = CreateObject(\"WScript.Shell\")\r\n\r\n' Nettoyer les fichiers temporaires\r\nWshShell.Run \"cmd /c del /Q D:\\Documents\\Outils\\Squid\\dev\\shm\\squid-cf__*pcie*.shm\", 0, True\r\nWshShell.Run \"cmd /c del /Q D:\\Documents\\Outils\\Squid\\var\\run\\squid_pcie.pid\", 0, True\r\n\r\n' Lancer le proxy PCIe\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\bin\\squid.exe -f D:\\Documents\\Outils\\Squid\\etc\\squid\\squid_pcie.conf -N\", 0, False\r\n\r\nWScript.Sleep 2000\r\n\r\n' Notification\r\nWshShell.Popup \"PCIe Proxy Started\" \u0026 vbCrLf \u0026 vbCrLf \u0026 \"Listening on: 127.0.0.1:13129\" \u0026 vbCrLf \u0026 \"Interface: 192.168.1.XX\", 3, \"Squid PCIe\", 64\r\n```\r\nComme vous le voir, c'est plutôt simple avec ce qu'on a vu précédemment, vous devez changer le chemin, nom du fichier .conf, port, IP, et PCIe en fonction de ce que vous voulez mettre, le script vous envoie une petite notification windows quand le programme à finit de se lancer tout seul, cette notification disparait toute seule.\r\n- 3 = Durée d'affichage en secondes (la popup se ferme automatiquement après 3 secondes)\r\n- 64 = Type d'icône (64 = icône d'information ℹ️)\r\n   `vbCrLf` = Saut de ligne\r\n- `\u0026 vbCrLf \u0026` = Concaténation avec saut de ligne\r\nPour info la durée d'affichage 0 correspond à rester affiché jusqu'à ce que l'utilisateur clique\r\n\r\nLes autres types de paramètres d'icônes \r\n\r\n| Valeur | Icône | Description |\r\n|--------|-------|-------------|\r\n| `0` |  | Aucune icône |\r\n| `16` | ❌ | Icône d'erreur (croix rouge) |\r\n| `32` | ❓ | Icône de question |\r\n| `48` | ⚠️ | Icône d'avertissement (triangle jaune) |\r\n| `64` | ℹ️ | Icône d'information (i bleu)|\r\n\r\nJe passe sur la dernière version du script pour vérifier et forcer la connexion Wi-Fi automatique de Windows quand ce n'est pas sa connexion par défaut\r\nFichier `start_squid_pcie_with_check.bat`\r\n```\r\n@echo off\r\ntitle Squid USB Proxy (13130) - With Connection Check\r\ncolor 0A\r\nsetlocal enabledelayedexpansion\r\n\r\nREM ================================\r\nREM        CONFIGURATION\r\nREM ================================\r\nset \"SQUID_PATH=D:\\Documents\\Outils\\Squid\"\r\nset \"INTERFACE=Wi-Fi 2\"\r\nREM set \"SSID=Bbox-520CD38F-5GHz\"\r\nset \"SSID=Bbox-520CD38F-5GHz_EXT\"\r\nset \"IP_EXPECTED=192.168.1.70\"\r\nset \"PORT=8130\"\r\nset \"CONF_FILE=%SQUID_PATH%\\etc\\squid\\squid_usb.conf\"\r\nset \"EXECUTABLE=%SQUID_PATH%\\bin\\squid.exe\"\r\nRem LOG variable not used \r\nset \"LOG=%SQUID_PATH%\\logs\\cache_usb.log\"\r\n\r\necho ========================================\r\necho      Starting Squid USB Proxy\r\necho ========================================\r\necho.\r\n\r\nREM ================================\r\nREM Vérifier si le Wi-Fi est connecté au bon SSID\r\nREM ================================\r\nset \"CONNECTED=0\"\r\nset \"ATTEMPT=0\"\r\n\r\n:CHECK_WIFI\r\nset /a ATTEMPT+=1\r\necho [*] Checking Wi-Fi connection to \"%SSID%\" (Attempt %ATTEMPT%/5)...\r\nnetsh wlan show interfaces | findstr /C:\"SSID\" | findstr \"%SSID%\" \u003enul 2\u003enul\r\nif not errorlevel 1 (\r\n    set \"CONNECTED=1\"\r\n    goto WIFI_CONNECTED\r\n)\r\necho [!] Not connected, attempting auto-connect...\r\nnetsh wlan connect name=\"%SSID%\" interface=\"%INTERFACE%\"\r\ntimeout /t 5 /nobreak \u003enul\r\nif %ATTEMPT% lss 5 goto CHECK_WIFI\r\n\r\nif %CONNECTED%==0 (\r\n    echo [!] ERROR: Could not connect to SSID \"%SSID%\". Aborting.\r\n    pause\r\n    exit /b 1\r\n)\r\n\r\n:WIFI_CONNECTED\r\necho [+] Connected to SSID \"%SSID%\"\r\n\r\n\r\nREM ================================\r\nREM Attendre que l'IP soit disponible\r\nREM ================================\r\necho [*] Waiting for IP %IP_EXPECTED% on interface \"%INTERFACE%\"...\r\nset \"IP_OK=0\"\r\n\r\nfor /l %%i in (1,1,10) do (\r\n    netsh interface ip show addresses \"%INTERFACE%\" | findstr \"%IP_EXPECTED%\" \u003enul 2\u003enul\r\n    if not errorlevel 1 (\r\n        set \"IP_OK=1\"\r\n        goto IP_OK\r\n    )\r\n    timeout /t 2 \u003enul\r\n)\r\n\r\n:IP_OK\r\nif %IP_OK%==0 (\r\n    echo [!] ERROR: IP %IP_EXPECTED% not assigned. Aborting.\r\n    pause\r\n    exit /b 1\r\n)\r\n\r\necho [+] IP %IP_EXPECTED% is now assigned to \"%INTERFACE%\"\r\n\r\nREM ================================\r\nREM Vérifier si le port est déjà utilisé\r\nREM ================================\r\nnetstat -ano | findstr \":%PORT%\" \u003enul 2\u003e\u00261\r\nif not errorlevel 1 (\r\n    echo [!] Port %PORT% already in use! Aborting.\r\n    pause\r\n    exit /b 1\r\n)\r\n\r\nREM ================================\r\nREM Nettoyer les fichiers temporaires\r\nREM ================================\r\necho [*] Cleaning temporary files...\r\ndel /Q \"%SQUID_PATH%\\dev\\shm\\squid-cf__*usb*.shm\" \u003enul 2\u003e\u00261\r\ndel /Q \"%SQUID_PATH%\\var\\run\\squid_usb.pid\" \u003enul 2\u003e\u00261\r\n\r\nREM ================================\r\nREM Lancer Squid\r\nREM ================================\r\necho [*] Starting USB proxy...\r\necho [+] Proxy started running on 127.0.0.1:%PORT%\r\necho [+] Interface: \"%INTERFACE%\" (IP: %IP_EXPECTED%)\r\necho.\r\n\r\n\"%EXECUTABLE%\" -f \"%CONF_FILE%\" -N\r\n\r\necho.\r\necho ========================================\r\necho   Press Ctrl + C to stop the proxy\r\necho ========================================\r\necho.\r\npause\r\n```\r\nC'est le dernier script à voir encore un effort, vous retrouverez en haut des variables pour éviter de tout reconfigurer à chaque fois, bon sauf le cleaning temporary files qui est toujours à changer en bas... avec `echo [*] Starting PCIe proxy...``que vous changer en fonction de votre interface.\r\nLes logs en haut ne sont pas utilisés, si vous voulez rajouter des logs personnalisés, faites comme il vous plaira :).\r\n\r\nce fichier est valable pour les connexions Wi-Fi donc PCIe et USB dans mon cas, la version CPL est par défaut sur mon ordinateur et ne nécessite pas de choisir la connexion, on peut donc rester sur le bon vieux script \r\n```bat\r\n@echo off\r\ntitle Squid CPL Proxy (13128)\r\ncolor 0A\r\n\r\necho ========================================\r\necho   Starting Squid CPL Proxy\r\necho ========================================\r\necho.\r\n\r\nREM Verifier si deja lance\r\nnetstat -ano | findstr \":13128\" \u003enul 2\u003e\u00261\r\nif %errorlevel% equ 0 (\r\n    echo [!] Port 13128 already in use!\r\n    echo [!] CPL proxy may already be running\r\n    pause\r\n    exit /b 1\r\n)\r\n\r\necho [*] Cleaning temporary files...\r\ndel /Q D:\\Documents\\Outils\\Squid\\dev\\shm\\squid-cf__*cpl*.shm \u003enul 2\u003e\u00261\r\ndel /Q D:\\Documents\\Outils\\Squid\\var\\run\\squid_cpl.pid \u003enul 2\u003e\u00261\r\n\r\necho [*] Starting CPL proxy...\r\necho.\r\n\r\nD:\\Documents\\Outils\\Squid\\bin\\squid.exe -f D:\\Documents\\Outils\\Squid\\etc\\squid\\squid_cpl.conf -N 2\u003e\u00261 | findstr /C:\"Accepting HTTP\" \u003enul\r\nif %errorlevel% equ 0 (\r\n    echo [+] Proxy started running on 127.0.0.1:13128\r\n    echo [+] Interface: Ethernet CPL (192.168.1.XX)\r\n    echo.\r\n    echo ========================================\r\n    echo   Press Ctrl+C to stop this proxy\r\n    echo ========================================\r\n)\r\n\r\nD:\\Documents\\Outils\\Squid\\bin\\squid.exe -f D:\\Documents\\Outils\\Squid\\etc\\squid\\squid_cpl.conf -N\r\n```\r\nÇa devrait être suffisant (vu que je ne touche pas vraiment à cette connexion, je verrais si des vérifications sont nécessaires)\r\n\r\nBien sûr si vous débranchez une de vos cartes internet, vous devrez changer les scripts (ou juste ne pas lancer le script en question).\r\n\r\nSi mon expérience a pu aider quelqu'un, j'en suis ravie :) \r\nHônnêtement, je vais probablement prendre plus de temps à écrire le markdown et reddit que le projet en lui-même.\r\n\r\n## Connection sur Firefox par proxy\r\n- Lancer firefox\r\n- Cliquez sur `☰` en haut à droite\r\n- Puis `Paramètres`\r\n- Rester dans l'onglet `Général` et descendez tout en bas, jusqu'à `Paramètres réseau`\r\n- Cliquez sur `Paramètres` à cîté de \"Configurer la façon dont Firefox se connecte à Internet\".\r\n- Choisissez `Configuration manuelle du proxy`\r\n- Entrez dans Proxy HTTP : `127.0.0.1`, puis le port que vous avez mis dans votre script pour votre proxy \r\n- Cochez `Utiliser également ce proxy pour HTTPS` puis valider avec `OK`\r\n- Et voilà tout devrait fonctionner normalement, testez en chargant une page web.\r\n- Vous pouvez vérifier vos connexions entrantes sur un proxy, en lançant  le `status.bat` ou directement `netstat -ano   | findstr \"votreport\"`\r\nVous aurez :\r\n```\r\nD:\\Documents\\Outils\\Squid\u003enetstat -ano   | findstr \"8129\"\r\n  TCP    127.0.0.1:8129         0.0.0.0:0              LISTENING       13524\r\n  TCP    127.0.0.1:8129         127.0.0.1:36656        ESTABLISHED     13524\r\n  TCP    127.0.0.1:36656        127.0.0.1:8129         ESTABLISHED     32440\r\n```\r\nSi vous avez une erreur en chargeant la page web comme `connexion refusée` ou `erreur 503` \r\n![Erreur Proxy Firefox](https://raw.githubusercontent.com/tempetflamer/squid_windows_multi_network_interface/main/imgs/firefox_network_error.jpg).\r\nC'est que vous avez soit mal configuré que ce soit dans Firefox ou les fichiers .conf, soit  un problème de connexion de votre interface réseau.\r\n- Vérifiez que votre carte est bien connectée au réseau.\r\n- Vérifiez que l'interface est bien connectée à l'adresse choisie avec `ipconfig | findstr \"192.168.1.XX\"`\r\n- Tester votre connectivité avec `ping -S 192.168.1.XX 8.8.8.8`.\r\n  \r\n- Si votre carte n'est pas connectée au réseau, connectez-là et testez, si elle a changer d'IP, vous devez configurer de nouveau vos fichiers, ou forcer une IP statique. \r\n- Vérifiez que le ping se fait bien au DNS choisie, vérifier votre DNS dans le fichier `.conf` de l'interface si cela ne ping pas. \r\n- Vérifiez que les informations du proxy sont bien rentrées dans Firefox, \r\n- Si ces vérifications ne suffisent pas vérifiez avec `ipconfig` les informations de votre carte ou si elle est débranché, sinon je vous renvoie  [suivre le tuto pas à pas \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-external-link-icon lucide-external-link\"\u003e\u003cpath d=\"M15 3h6v6\"/\u003e\u003cpath d=\"M10 14 21 3\"/\u003e\u003cpath d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/\u003e\u003c/svg\u003e](#démarrage-du-projet)\r\n\r\n## Rangez vos exécutables\r\nActuellement, on a vu pas mal de de scripts différents, mais tous les scripts `.bat` et `.vbs` sont à la racine de `Squid\\` pour facilité. Aie 😅, pas très propre, on va faire un peu de trie, créons un dossier `Scripts` à la racine et plaçons tous nos scripts `.vba` et `.bat` dedans.\r\nVous avez dû le remarquer, mais le dernier script qu'on a vu utilise un chemin absolu. Du coup vous n'aurez besoin de modifier que le script `start_all.vbs` (si vous utilisez les derniers fichiers de mon projets, pas ceux vu en chemin)\r\n```\r\nSet WshShell = CreateObject(\"WScript.Shell\")\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\start_squid_usb_with_check.bat\", 0, False\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\start_squid_pcie_with_check.bat\", 0, False\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\start_squid_cpl.bat\", 0, False\r\n```\r\ndevient\r\n```\r\nSet WshShell = CreateObject(\"WScript.Shell\")\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\Scripts\\start_squid_usb_with_check.bat\", 0, False\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\Scripts\\start_squid_pcie_with_check.bat\", 0, False\r\nWshShell.Run \"D:\\Documents\\Outils\\Squid\\Scripts\\start_squid_cpl.bat\", 0, False\r\n```\r\nSi vous le souhaitez, vous pouvez créer davantage de sous-dossiers dans scripts pour catégoriser.\r\nVous pouvez bien sûr garder et corriger les autres scripts vus pour plus de versatilité.\r\n\r\n## Structure finale du projet\r\n\r\n```\r\nSquid/\r\n├── 📁bin/\r\n│     └── squid.exe\r\n├── 📁dev/\r\n│     └── shm/\r\n├── 📁etc/\r\n│     └── 📁squid/\r\n│           ├── ⚙️squid_cpl.conf\r\n│           ├── ⚙️squid_pcie.conf\r\n│           └── ⚙️squid_usb.conf\r\n├── 📁logs/\r\n│     └── 📄access_cpl.log\r\n│     └── 📄access_pcie.log\r\n│     └── 📄access_usb.log\r\n│     └── 📄cache_cpl.log\r\n│     └── 📄cache_pcie.log\r\n│     └── 📄cache_usb.log\r\n├── 📁Scripts/\r\n│     └── ℹ️diag_squid.bat\r\n│     └── ▶️start_all.vbs\r\n│     └── ▶️start_squid_cpl.bat\r\n│     └── ▶️start_squid_pcie_with_check.bat\r\n│     └── ▶️start_squid_usb_with_check.bat\r\n│     └── ℹ️status.bat\r\n│     └── ⏹️stop_all.vbs\r\n├── 📁usr/\r\n└── 📁var/\r\n```\r\n\r\n## Lancement automatique des scripts au démarrage de Windows\r\nVous pouvez créer un fichier ou un raccourci de votre script de lancement directement dans le fichier de Démarrage à l'emplacement suivant `C:\\Users\\yourusername\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup`\r\n\r\nIci, nous passerons directement par le planificateur de tâches de Windows\r\n- Ouvrez le planificateur de tâches\r\n- Cliquer sur `Créer une tâche` à droite (il est important que ce soit tâche et pas tâche de base).\r\n- Mettez le nom de votre tâche, la description et changer configurer pour Windows 10\r\n- Puis allez dans l'onglet `Déclencheur`, cliquer sur `Nouveau...`,\r\n   - Lancer la tâche `Au démarrage`\r\n   - Reporter la tâche pendant `30 secondes` (ajusté pour que vos cartes réseau puisse démarrer sans soucis)\r\n   - Case `Activée`\r\n   - Le reste peut rester désactivé\r\n- Allez dans l'onglet `Actions`, cliquer sur `Nouveau...`,\r\n   - Pour action, mettez `Démarrer un programme`\r\n   - Dans `Programme/script`, indiquer l'emplacement de votre script .vbs / .bat, pour moi : `D:\\Documents\\Outils\\Squid\\start_all.vbs`\r\n   - Commencer dans (facultatif), mettez `D:\\Documents\\Outils\\Squid\\`, il lancera votre script depuis ce dossier\r\n-  Allez dans l'onglet suivant `Conditions`, décochez tout.\r\n-  Allez dans l'onglet suivant `Paramètres`,\r\n   -  Cochez, autoriser l'exécution de la tâche à la demande.\r\n   -  Laisser décocher le reste\r\n   -  Garder la liste déroulante sur `Ne pas démarrer dans une nouvelle instance` \r\n- Vous pouvez quitter en appuyant sur `OK`, regarder dans vos tâches, elle a dû apparaître.\r\n- Quand vous étiez dans la création de votre tâche, vous avez pu voir un onglet `Historique (désactivé)` avec la mention \"désactivé\", cet historique vous permet de suivre les logs de déclenchement de votre script, si vous voulez le réactiver\r\n  - Cliquez sur `Planificateur de tâches (Local)` au-dessus de `Bibliothèque du Planificateur`\r\n  - Cliquez sur `Action` tout en haut puis `Activer l'historique de toutes les tâches`, sur Windows vous ne pouvez pas activer l'historique que pour une seule tâche, mais pour l'ensemble de vos tâches\r\n\r\n\r\n## Erreurs\r\n\r\n- Comme je l'ai mentionné au début, Windows n'accepte pas deux cartes réseaux sur le même SSID, donc vous ne pouvez pas vous connecter sur deux Wi-Fi `mabox_5Gxv74Rfgt2_5Ghz` avec vos deux interfaces, vous pouvez utiliser la bande 2.4Ghz ou un répéteur, il faut juste qu'il n'ai pas le même SSID, sinon Windows déconnectera silencieusement, il utilisera un système de priorité d'utilisation de la carte réseau.\r\n- Vous voyez le programme Squid se relancer en boucle après l'avoir fermé à plusieurs reprises avec `\"taskkill /F /IM squid.exe\"`, essayez `sc query | findstr -i squid`, si vous avez un résultat, c'est que vous avez installé le Squidsrv de Windows, je vous renvoie sur ce markdown [Désinstaller Squidsrv \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-external-link-icon lucide-external-link\"\u003e\u003cpath d=\"M15 3h6v6\"/\u003e\u003cpath d=\"M10 14 21 3\"/\u003e\u003cpath d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/\u003e\u003c/svg\u003e](https://github.com/tempetflamer/squid_windows_multi_network_interface/tree/main/docs/uninstall_squidsrv.fr.md).\r\n- Peut être avez-vous utiliser des ports qui à votre prochain démarrage seront utilisés par d'autres applications / services d'après `connections.ps1`. C'est pour cette raison que l'on à réservé les ports en faisant attention de ne pas prendre un port utilisé par une autre application. Suivez cette étape [Retourner à la Réservations des ports utilisables](#réservations-des-ports-utilisables), si vos ports sont toujours utilisés après alors vous n'aurez pas beaucoup de choix, soit fermé ces services, soit changé de port.\r\n- Si vous essayé d'accéder à speedtest Ookla depuis un de vos proxy Ookla vous donnera une erreur, cela n'arrive pas avec d'autre speedtest que  j'ai testé.\r\n![speedtest ookla error](https://raw.githubusercontent.com/tempetflamer/squid_windows_multi_network_interface/main/imgs/speedtest_ookla_error.jpg)\r\n- Actuellement si vous n'avez pas désactivé les caches et que votre disque dur est plein, alors le programme crashera parcequ'il ne pourra pas écrire dans les fichiers `.log`, vous retrouverez plusieurs lignes comme `2025/11/04 01:01:41| local=127.0.0.1:13130 remote=127.0.0.1:50560 FD 80 flags=1: read/write failure: (113) Software caused connection abort` dans votre log. pour cela, mettez juste `access_log none` et `cache_log none` dans vos fichiez logs ([Retourner à la Création des fichiers de configuration](#création-des-fichiers-de-configuration))\r\n\r\n\r\n## FAQ\r\nIci est un petit fourre-tout de fin contenant quelques informations que certains pourraient trouvé intéressante, j'en ajouterais peut-être s'il y'a des questions et réponses et que je comprends comment utiliser.\r\n\r\n- Je n'ai pas pu tester d'utiliser deux fois la même carte (Wi-Fi) mais à priori cela devrait marcher parce que leur adresse MAC sont différente.\r\n- Testé uniquement sur Windows 10, je ne connais pas les particularités sur Windows 11.\r\n\r\n\r\nEn constructions...\r\nCertaines phases doivent encore être écrites comme les readme anglais, readme spécifique (forcebindip), erreurs rencontrées, bonus utiles, etc.\r\n\r\n[Retourner à la table des matière](#table-des-matières).\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftempetflamer%2Fsquid_windows_multi_network_interface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftempetflamer%2Fsquid_windows_multi_network_interface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftempetflamer%2Fsquid_windows_multi_network_interface/lists"}