networking - 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 程序或运行它的方式中进行一些设置吗?
解决方案
我在相同的设置(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
这对我有帮助,它应该可以解决您的问题……如果您在这段时间后仍然拥有它;)
推荐阅读
- python - 用嵌套循环绘制图案
- typescript - 打字稿减少函数数组
- mdx - MDX中Set vs Tuple的解释
- hex - MIPS 中的十六进制转十进制。我从 $s3 得到了非常奇怪和负面的输出,真的可以使用一些帮助,因为我完全没有想法
- java - LWJGL 上 glUniform1fv() 导致的 JVM 崩溃
- c# - 在 C# 中循环数组或列表并使用 MongoDB 执行更新
- amazon-web-services - 如何在没有特定标签和值的情况下自动停止 EC2 实例
- asp.net - ASP.NET CORE 3.1 身份验证 Cookie,但仅存储用户名
- dataframe - 在字符串列上连接两个 DataFrame 但忽略重音符号/变音符号
- php - PHP不删除MYSQL数据库行