我正在使用mininet版本2.1.0 . 我的设置是这样的,我将从远程机器运行mininet命令,例如,
ssh -X user @ IP python mininet.py
X11转发似乎没问题 . X转发仅在mininet shell中不起作用,但它可以从SSH shell运行 .
但是,我无法在mininet上运行xterm命令 . 运行xterm命令后,我没有得到任何输出 .
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2 h3
h2 -> h1 h3
h3 -> h1 h2
*** Results: 0% dropped (6/6 received)
mininet> xterm h1
mininet> h1 xterm
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
当我从本地机器启动mininet时,xterm工作并打开一个新窗口 .
在这种情况下,我应该在哪里查找xterm相关日志?
我已经花了一天多的时间 . 我还将mininet版本更新到最新的2.2.1,但仍然没有成功 .
提前致谢!
2 回答
当我搬到Ubuntu 18.04时,Mininet xterm停止了工作 . 我所做的就是在Ubuntu中安装xterm“sudo apt install xterm” . 之后我开始使用mininet(sudo mn)并打电话给mininet> xterm h1 . 像往常一样弹出xterm窗口 . 希望这会有所帮助 .
“h1 xterm”命令在mininet控制台下无法运行的原因是:
两个重要的xterm相关环境变量($ XAUTHORITY,$ DISPLAY)没有传递给mininet控制台,如果你运行:“h1 echo $ DISPLAY $ XAUTHORITY”;两个变量都将返回空白 .
为了保持主机环境变量不变,请在mn命令中添加-E参数 . “sudo -E mn”,然后你就能成功运行“h1 xterm” .