xterm没有在Mininet主机内部打开。没有SSH,没有VM

时间:2018-03-17 09:55:41

标签: ubuntu xterm mininet

我刚从笔记本电脑上的软件包(sudo apt-get install mininet)安装了 Ubuntu 17.10和 Mininet 2.2.2。本地,即真实机器上的真实操作系统,没有任何类型的虚拟机。笔记本电脑是2017款MacBook Pro 13"没有触摸栏(MacBookPro14,1),Ubuntu在快速USB密钥上运行;只是为了完整性而写,我不认为它是相关的。

我需要CLI访问我要创建的每个Mininet主机,以便运行自定义测试并观察每个节点中经过的流量。

在我以前的笔记本电脑上,我有类似的设置,但是使用旧版本的Ubuntu,可能还有Mininet,我设法能够从我想要的每个Mininet主机中生成xterm。问题是,我根本不记得我是怎么做的。=。

echo $DISPLAY返回:0无论是在常规shell还是在Mininet主机中运行它,但在常规shell xterm中会打开一个xterm窗口。让我们说h1是我的Mininet主持人。我用sudo mn启动Mininet,然后得到:

  • h1 echo $DISPLAY - > :0
  • xterm h1 - >没什么,没有任何反应
  • h1 xterm & - >没什么,没有任何反应
  • h1 xterm - > No protocol specified. Warning: This program is an suid-root program or is being run by the root user. The full text of the error or warning message cannot be safely formatted in this environment. You may get a more descriptive message by running the program as a non-root user or by removing the suid bit on the executable. xterm: Xt error: Can't open display: %s

我能找到的所有信息都与使用ssh的X11转发有关,而且我尝试的所有信息都失败了。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在终端中运行xhost +local:而不是超级用户来解决问题。详情如下。

出于安全原因,问题是由于xterm在以超级用户身份验证时默认不起作用(Mininet必须以超级用户身份运行)。

您可以照常登录时在终端中运行xtermsudo xterm来检查这是否是您的问题(如果您在此检查毫无意义之前执行了sudo su之类的操作) 。 如果xterm打开,但sudo xterm没有,则需要运行

xhost +local:

sudo xterm现在应该可以使用,以及Mininet中的h1 xterm。 这是因为使用该命令,您可以对以sudosu运行的应用程序提供图形服务器访问。

设置不会在重新启动之间保留,并且可以使用xhost -还原。

请注意,通过这样做,您无需身份验证(https://wiki.archlinux.org/index.php/Xhost)即可让系统或网络上的任何用户访问您的$ DISPLAY。