Вот небольшой скрипт bash для создания нового пространства имен, установки пары veth и запуска xterm
в этом пространстве имен:
#!/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
Замените your_userid
в последней строке свой идентификатор пользователя, так что su
можете изменить на это. Используйте ip addr
и ip route
в том, xterm
и в другом терминале, чтобы понять конфигурацию сети.
Теперь запустите xev
из нового xterm
и убедитесь, что медиа-ключи работают (на самом деле нет причин, по которым они не должны этого делать, сами ключи совершенно не связаны с сетевыми пространствами имен).
Пространство имен сети действует как отдельный маленький компьютер внутри вашего компьютера, поэтому вам все равно придется заставить свой «настоящий» компьютер (основное пространство имен) каким-то образом подключить его к маршрутизатору, например, с помощью NAT on veth0a
(google for tutorials: вам нужно включить пересылку и маскарад iptables
правил).
Проверьте, что новое пространство имен успешно подключено к вашему маршрутизатору ping google.com
(или к чему-либо еще).
Наконец, попробуйте запустить spotify из нового xterm
. Если все вышеперечисленные тесты пройдены успешно, это должно сработать.