Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/03/2025, à 15:40

Lithi

Utiliser un proxy uniquement pour UNE connexion réseau

Bonjour à vous tous,

Je n'arrive pas à régler un soucis qui pourtant me semble assez "basique".
Je souhaite prendre mon pc portable sur mon lieu de travail (lycée). Un réseau wifi est déployé dans l'établissement et il nécessite la configuration "proxy/serveur mandataire" sur le pc pour être utilisé.
Cependant, une fois que le proxy est configuré via le menu "réseau", il est utilisé pour toutes les connexions. Ce qui pose problème lorsque j'utilise le pc à mon domicile. Il faut que manuellement j'active/désactive l'utilisation du proxy en fonction du réseau utilisé.
Existe-t-il une méthode permettant d’attribuer une configuration proxy à un unique réseau déterminé ?

Merci de votre aide !

Hors ligne

#2 Le 21/03/2025, à 16:25

iznobe

Re : Utiliser un proxy uniquement pour UNE connexion réseau

Bonjour , je n' ai jamais fait , mais d' apres cettte capture , tu peux rajouter une reseau local :
Capture-d-cran-du-2025-03-21-16-22-41.png
il suffit d' y ajouter celui de chez toi , probablement 192.168.xxx.xxx/24 en prenant example sur ce qui est deja inscrit dedans .

Hors ligne

#3 Le 21/03/2025, à 20:09

Lithi

Re : Utiliser un proxy uniquement pour UNE connexion réseau

Merci pour ton aide !

En effet ça semble marcher !
Pensez-vous qu'il existe la solution inverse : indiquer de n'utiliser le proxy que sur le wifi pro ? Car je bouge pas mal et donc rajouter une exception chaque nouvelle connexion ce n'est pas très optimal.

Merci

Hors ligne

#4 Le 21/03/2025, à 20:11

iznobe

Re : Utiliser un proxy uniquement pour UNE connexion réseau

Malheureusement je ne saurais pas dire , car je n' utilise pas de proxy .

Je pense que ca doit etre possible , mais probablement uniquement en ligne de commande , et certainement pas tres simplement .
Faudrait chercher sur le net anglophone ...

Hors ligne

#5 Le 22/03/2025, à 22:58

RaphAstronome

Re : Utiliser un proxy uniquement pour UNE connexion réseau

C'est pour un logiciel particulier ? Car éventuellement si c'est le cas on peut passer une variable pour qu'il utilise le proxy :

http_proxy="http://proxy.example.net:3128/" mon_programme

Par contre si c'est firefox c'est peu probable que cela fonctionne si il y a plusieurs fenêtres. Pour firefox peut être des profils différents.

Hors ligne

#6 Aujourd'hui à 09:12

Lithi

Re : Utiliser un proxy uniquement pour UNE connexion réseau

Bonjour,

J'apporte la solution à mon soucis, peut-être que ca pourra servir à d'autres.

  1. Créer le fichier suivant :

    sudo nano /etc/NetworkManager/dispatcher.d/99-proxy-switch 

[list=2]Y insérer le script suivant :

#!/bin/bash

INTERFACE="$1"
STATUS="$2"
SSID_CIBLE="A REMPLACER PAR LE SSID DU RESEAU UTILISANT LE PROXY"

# Trouver l'utilisateur connecté à la session graphique
USER_SESSION=$(loginctl list-sessions --no-legend | awk '{print $1}' | xargs -I{} loginctl show-session {} -p Name --value | head -n 1)

# Vérifier si on a trouvé un utilisateur
if [[ -z "$USER_SESSION" ]]; then
    echo "Erreur : Impossible de récupérer l'utilisateur actif." | systemd-cat -t ProxySwitch
    exit 1
fi

# Trouver le bon affichage X11 pour l'utilisateur
DISPLAY_NUMBER=$(sudo -u "$USER_SESSION" echo $DISPLAY)
if [[ -z "$DISPLAY_NUMBER" ]]; then
    DISPLAY_NUMBER=":0"  # Valeur par défaut si non trouvée
fi

# Appliquer le mode de proxy en fonction du réseau
if [[ "$STATUS" == "up" ]]; then
    SSID_ACTUEL=$(iwgetid -r)

    if [[ "$SSID_ACTUEL" == "$SSID_CIBLE" ]]; then
        echo "Activation du proxy pour $SSID_ACTUEL" | systemd-cat -t ProxySwitch
        sudo -u "$USER_SESSION" DISPLAY="$DISPLAY_NUMBER" gsettings set org.gnome.system.proxy mode 'manual'
    else
        echo "Désactivation du proxy (réseau différent de $SSID_CIBLE)" | systemd-cat -t ProxySwitch
        sudo -u "$USER_SESSION" DISPLAY="$DISPLAY_NUMBER" gsettings set org.gnome.system.proxy mode 'none'
    fi
fi

[/list]
[list=3]Rendre le script exécutable :

sudo chmod +x /etc/NetworkManager/dispatcher.d/99-proxy-switch

[/list]
[list=4]Redémarrer Network Manager :

sudo systemctl restart NetworkManager

[/list]

J'ai essayé différentes méthodes et c'est la seule qui fonctionne. Le soucis tient au fait que "gsettings" a besoin d'un environnement graphique pour s’exécuter. Au début, la commande passait lorsqu'elle était tapée manuellement dans un terminal mais ne s’exécutait pas au sein du script... L'utilisation de "sudo -u" et "display" permet de corriger cela.

Dernière modification par Lithi (Aujourd'hui à 09:13)

Hors ligne