Baseado na resposta @olivervbk abaixo é o meu!
Execute todos os comandos como "root".
Use o comando ...
ip a
... para descobrir o nome da interface de rede que você deseja usar.
Execute os comandos abaixo como o modelo ...
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] - substitua pelo nome da interface de rede escolhida.
- [YOUR_USER] - Substitua pelo seu nome de usuário.
- [APP_NAME] - Nome do aplicativo que será executado no espaço para nome "[INTERFACE_NAME] _ns". Ex .: "firefox".
NOTA I: Os sinalizadores "-b -u" no comando "sudo" permitem que o aplicativo seja executado usando seu usuário (não "root") e liberando o terminal em segundo plano. O 2> /dev/null 1> /dev/null &
trecho é para impedir que as saídas de "[APP_NAME]" sejam impressas no terminal.
NOTA II: Os valores de ip "10.1.1.10" e "10.1.1.1" são arbitrários.
NOTA III: Para trabalhar para mim, tive que executar o dhcpcd [INTERFACE_NAME]
comando.
Para remover o espaço para nome, use ...
ip netns del [INTERFACE_NAME]_ns
... ou ...
ip -all netns delete
... para remover qualquer um que exista.