我正在使用newns
这里的脚本:
https://superuser.com/questions/983727/route-only-specific-traffic-through-vpn
...除了在此系统上:
$ mate-about -v
MATE Desktop Environment 1.24.0
$ cat /etc/issue
Ubuntu 20.04.2 LTS \n \l
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
所以,问题是,我已经export XTERM=/usr/bin/mate-terminal
在该脚本中进行了更改,当我newns MYNS start
重新启动后立即运行时,“命名空间”终端运行良好;然后我运行newns MYNS stop
,“命名空间”终端被关闭 - 一切都很好,一切都如预期。
但后来,当我想要重复该过程 - 终端不再启动,但也没有错误?!我最终将其简化为这一行(创建网络命名空间 MYNS 后):
$ sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/mate-terminal myusername
(mate-terminal:12410): dbind-WARNING **: 17:33:10.398: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-pRWfI7rzyW: Connection refused
每隔一段时间,它可能运行一次,但 99% 的情况下,重新运行此命令不会产生任何结果。
这是有趣的部分 - 如果我在上面的命令行中替换mate-terminal
为:xterm
sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/xterm myusername
... 有用每次!但我不想使用xterm
- 我需要一个带有选项卡的终端......
只是为了好玩,我也尝试在这里运行 VLC:
sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/vlc myusername
...并且至少它开始得很好(尽管它抱怨“vlcpulse音频输出错误:PulseAudio服务器连接失败:连接被拒绝”;“dbus接口错误:无法连接到D-Bus会话守护程序:无法连接到套接字/ tmp/dbus-CRRGy7gvlN:连接被拒绝”等...)
所以,最后我安装gnome-terminal
并尝试了它 - 它也不会启动,就像mate-terminal
,除了不同的消息:
$ sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/gnome-terminal myusername
# Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-pRWfI7rzyW: Connection refused
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Could not connect: Connection refused
该文件/tmp/dbus-pRWfI7rzyW
在两个终端启动时不断重复,但是:
$ sudo ls -la /tmp/dbus*
ls: cannot access '/tmp/dbus*': No such file or directory
...它绝对不存在于系统中。
所以,我的猜测是,这可能与 DBUS 有关 - 不幸的是,我并不真正了解或理解 dbus。
我的问题是 - 有没有我可以做的解决方法,mate-terminal
或者gnome-terminal
每次都可以在这种情况下开始?
答案1
正如您所怀疑的,高级终端无法工作的原因是它们无法连接到 dbus。这是因为 dbus 使用抽象的 unix 套接字,该套接字在新的命名空间中不可用(请参阅此问题)。
该引用的问题中有很多选项,但最简单的可能是为每次调用获取一个 dbus 会话,如果您不需要大量共享 dbus 细节(可能不需要):
sudo /usr/bin/ip netns exec MYNS su -c "/usr/bin/dbus-launch /usr/bin/gnome-terminal"