Basé sur la réponse de @olivervbk, voici la mienne !
Exécutez toutes les commandes en tant que "root".
Utilisez la commande...
ip a
... pour connaître le nom de l'interface réseau que vous souhaitez utiliser.
Exécutez les commandes ci-dessous comme modèle...
ip netns add [INTERFACE_NAME]_ns
ip link set dev [INTERFACE_NAME] netns [INTERFACE_NAME]_ns
ip netns exec [INTERFACE_NAME]_ns ifconfig [INTERFACE_NAME] 10.1.1.10/24 up
ip netns exec [INTERFACE_NAME]_ns ifconfig lo 127.0.0.1/8 up
ip netns exec [INTERFACE_NAME]_ns route add default gw 10.1.1.1
ip netns exec [INTERFACE_NAME]_ns dhcpcd [INTERFACE_NAME]
ip netns exec [INTERFACE_NAME]_ns sudo -b -u [YOUR_USER] [APP_NAME] 2> /dev/null 1> /dev/null &
- [INTERFACE_NAME] - Remplacer par le nom de l'interface réseau choisie.
- [YOUR_USER] - Remplacer par votre nom d'utilisateur.
- [APP_NAME] - Nom de l'application qui sera exécutée dans l'espace de nom "[INTERFACE_NAME]_ns". Par exemple : "firefox".
NOTE I : Le " -b -u
"dans la section " sudo
La commande " " permet à l'application de s'exécuter en utilisant votre utilisateur (et non " root ") et en arrière-plan en libérant le terminal. Le site 2> /dev/null 1> /dev/null &
est d'empêcher que les sorties de "[APP_NAME]" soient imprimées dans le terminal.
NOTE II : Les valeurs de ip "10.1.1.10" et "10.1.1.1" sont arbitraires.
NOTE III : Pour que ça marche pour moi, j'ai dû exécuter le dhcpcd [INTERFACE_NAME]
comando.
Pour supprimer l'espace de nom, utilisez...
ip netns del [INTERFACE_NAME]_ns
... ou...
ip -all netns delete
... pour supprimer tout ce qui existe.