You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在Mininet中运行h1 xterm/Wireshark(找不到Display)

解决Mininet节点无法启动Xterm/Wireshark的DISPLAY错误

1. 确保主机端X服务器配置正确

不同系统的X服务器设置:

  • Windows:安装Xming或VcXsrv,启动时选择「Multiple windows」,取消勾选「Native opengl」,并勾选「Disable access control」。
  • macOS:安装XQuartz,打开后进入偏好设置→Security,勾选「Allow connections from network clients」,重启XQuartz生效。
  • Linux:终端执行xhost +(临时允许所有X连接,测试完成后可执行xhost -恢复安全设置)。

2. 用正确的SSH参数连接虚拟机

必须使用带信任X转发的参数连接,避免权限不足:

ssh -Y mininet@192.168.56.102

连接成功后,先在虚拟机终端执行echo $DISPLAY,确认输出为类似localhost:10.0的格式(而非:0.0),这说明X转发已生效。

3. 确保Mininet继承DISPLAY环境变量

启动Mininet时,保留当前用户的环境变量,避免DISPLAY丢失:

sudo -E mn

启动Mininet CLI后,可先验证环境变量是否传递:

!echo $DISPLAY

如果输出和虚拟机终端的DISPLAY值一致,说明传递成功。

4. 手动为Mininet节点设置DISPLAY(可选)

如果上述步骤仍无效,在Mininet CLI中直接为h1节点指定DISPLAY:

h1 export DISPLAY=localhost:10.0  # 替换为你虚拟机中echo $DISPLAY的输出值
h1 xterm
# 或启动Wireshark
h1 wireshark &

5. 备选方案:直接在虚拟机图形界面操作

如果虚拟机本身有图形桌面环境,直接在虚拟机内打开终端,启动Mininet后执行xterm h1或h1 wireshark &,此时DISPLAY默认设置为:0.0,无需SSH转发。

额外排查点

  • 关闭虚拟机防火墙(临时测试):Ubuntu系统执行sudo ufw disable,避免X转发端口被拦截。
  • 确认Wireshark已正确安装:虚拟机终端执行sudo apt install wireshark,并确保用户有权限运行(可执行sudo dpkg-reconfigure wireshark-common,选择允许普通用户捕获数据包)。

内容的提问来源于stack exchange,提问作者Zohaib Hamdule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:05:30