因此,我正在运行带有 KDE 的 Debian 9,由于 Spotify 不支持离线模式,所以我刚刚创建了一个新的命名空间(ip netns 添加 jail),然后在此 ns 中运行 Spotify(ip netns exec jail su 用户-c spotify),但当我这样做时,媒体键不起作用(播放、下一个等)。
任何想法都值得赞赏
答案1
下面是一个小型 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=${1:-ns0}
DEV=${2:-veth0}
DEV_A=${DEV}a
DEV_B=${DEV}b
ADDR=${3-:10.0.0}
ADDR_A=${ADDR}.254
ADDR_B=${ADDR}.1
MASK=${5:-24}
COL=${4:-yellow}
# 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 ${DEV}a up
ip netns exec $NS ip addr add $ADDR_B/$MASK dev $DEV_B
ip netns exec $NS ip link set ${DEV}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
将最后一行替换为您的用户 ID,因此su
可以更改为该 ID。在该终端和其他终端中使用ip addr
和来了解网络配置。ip route
xterm
现在xev
从新的运行xterm
,并验证媒体密钥是否有效(实际上没有理由它们不应该有效,密钥本身与网络命名空间完全无关)。
网络命名空间就像您的计算机内部的一个独立的小型计算机,因此您仍然必须让您的“真实”计算机(主命名空间)以某种方式将其连接到您的路由器,例如通过使用 NAT veth0a
(谷歌教程:您需要启用转发和伪装iptables
规则)。
测试新的命名空间是否成功连接到您的路由器ping google.com
(或其他)。
最后,尝试从新启动 Spotify xterm
。如果上述测试全部成功,则应该工作。