首页 文章

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

提问于
浏览
0

我刚从笔记本电脑上的Packages( sudo apt-get install mininet )安装了 Ubuntu 17.10和 Mininet 2.2.2 . 原生地,即真机上的真实操作系统, no virtual machines of any sort . 笔记本电脑是2017年MacBook Pro 13“没有触摸栏(MacBookPro14,1),Ubuntu运行在一个快速的USB密钥;只是为了完整性写,我不相关的.2963798_相关 .

我需要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

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


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

    您可以像往常一样登录时在终端中运行 xtermsudo xterm 来检查这是否是您的问题(如果您在此检查之前做了类似 sudo su 之类的事情) . 如果 xterm 打开,但 sudo xterm 没有,则需要运行

    xhost +local:
    

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

    该设置将不会在重新启动之间保持不变,并且可以使用 xhost - 进行还原 .

    请注意,通过执行此操作,您无需身份验证即可向系统或网络上的任何用户授予$ DISPLAY(https://wiki.archlinux.org/index.php/Xhost) .

相关问题