首页 > 解决方案 > xterm 显示与 mininet

问题描述

我将 Mininet 作为 VM 运行,我的主机是 Windows 10。我已经成功地设置了 X1 转发。我用来从主机登录 Mininet VM 的 ssh 客户端是 Mobaxterm。

当我使用 启动 mininet 拓扑时sudo mn,然后xterm h1打开一个显示窗口。一切都好。但是当我通过运行 python 程序启动 mininet 自定义拓扑时,同样的方法不起作用。

mininet@mininet-vm:~/SocketProgrammingMininet/mininetTopologies$ sudo python vlan_ex1.py
mininet> nodes
available nodes are:
h1 h2 h3 h4 r s5
mininet> xterm h1    << No h1 host's display.

mininet@mininet-vm:~/SocketProgrammingMininet/mininetTopologies$ sudo mn
mininet> nodes
available nodes are:
c0 h1 h2 s1
mininet> xterm h1        << Window for H1 host opens up.

这里的问题在哪里?我需要在 python 程序或运行它的方式中进行一些设置吗?

标签: networkingx11mininetmobaxterm

解决方案


我在相同的设置(Win10 + mininet VM + 脚本化拓扑)中运行了一个脚本生成的拓扑,我可以确认没有 xterm 为我打开。我确保我的控制台正确使用了 X-server(wireshark 打开得很漂亮)。运行包含os.system("xterm")来自每个主机的调用的脚本可以清楚地说明原因可能是什么:我的消息是my error was MoTTy X11 proxy: Unsupported authorisation protocol. 我还看到了一个xterm: Xt error: Can't open display %s让我认为它可能是 xauth 的东西。

但是,当您查看 Mininet 的文档时,有一关于通过使用 xterm 显示进行调试,引用:

要为每个主机和交换机启动一个 xterm,请传递 -x 选项:

$ sudo mn -x

一秒钟后,将弹出 xterms,并自动设置窗口名称。

或者,您可以调出额外的 xterms

这对我有帮助,它应该可以解决您的问题……如果您在这段时间后仍然拥有它;)


推荐阅读