Hier ist ein kleines Bash-Skript, um einen neuen Namespace zu erstellen, ein veth-pair einzurichten und ein xterm
in diesem Namespace zu starten :
#!/bin/bash # Setup network namespace with veth pair, start xterm in it # nsterm ns0 veth0 10.0.0 yellow 24 if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi NS=$ DEV=$ DEV_A=$a DEV_B=$b ADDR=$ ADDR_A=$.254 ADDR_B=$.1 MASK=$ COL=$ # echo ns=$NS dev=$DEV col=$COL mask=$MASK ip netns add $NS ip link add $DEV_A type veth peer name $DEV_B netns $NS ip addr add $ADDR_A/$MASK dev $DEV_A ip link set $a up ip netns exec $NS ip addr add $ADDR_B/$MASK dev $DEV_B ip netns exec $NS ip link set $b up ip netns exec $NS ip route add default via $ADDR_A dev $DEV_B ip netns exec $NS su -c "xterm -bg $COL &" your_userid
Ersetzen Sie your_userid
in der letzten Zeile Ihre Benutzer-ID, damit su
sich dies ändern kann. Verwenden Sie ip addr
und ip route
sowohl in diesem xterm
als auch in einem anderen Terminal, um die Netzwerkkonfiguration zu verstehen.
Führen Sie nun xev
den neuen xterm
Befehl aus, und überprüfen Sie, ob die Medienschlüssel funktionieren (es gibt wirklich keinen Grund, warum dies nicht der Fall sein sollte. Die Schlüssel selbst haben nichts mit Netzwerk-Namespaces zu tun).
Der Netzwerk-Namensraum verhält sich wie ein separater kleiner Computer in Ihrem Computer, so dass Sie ihn von Ihrem "echten" Computer (Haupt-Namensraum) irgendwie mit Ihrem Router verbinden müssen, z. B. durch Verwendung von NAT on veth0a
(google for tutorials: Sie müssen die Weiterleitung aktivieren und Maskeradenregeln iptables
).
Testen Sie, ob der neue Namespace erfolgreich mit Ihrem Router verbunden ist ping google.com
(oder was auch immer).
Versuchen Sie schließlich, spotify vom neuen zu starten xterm
. Wenn die obigen Tests alle erfolgreich sind, sollte es funktionieren.