11、Xshell+Xmanager实现Mininet的可视化图像界面

环境:

  • Ubunt20.4

  • Xshell 6

  • Xmanager 6

  • Python3.8

一、安装xshell

  下载安装,一直next就行

二、安装Xmanager

  https://www.xshellcn.com/,正版需要付费使用,可以去阿里云购买服务使用

三、Ubuntu安装xwidows一些组件(提供可视化,没太明白,网上说的...)

大致包含以下包:

  • apt-get install xserver-xorg 
  • apt-get install x-window-system-core 
  • dpkg-reconfigure xserver-xorg 
  • apt-get install gnome-core 
  • apt-get install gdm xscreensaver 
  • apt-get install ttf-arphic*

四、安装SSH

  1. 为Ubuntu安装ssh服务器
  • 命令: sudo apt install openssh-server
  • 启动: sudo systemctl start ssh
  • 查看: sudo systemctl status ssh

   2.关闭防火墙

  • 命令:sudo ufw disable
  • 查看:udo ufw status

   需要准备的工作基本上就是这些,可能之前使用过,有些步骤可能忘记了,可以参考其他文档。

五、Xshell连接Ubuntu

第一步:

 第二步:

 第三步:

 第四步:点击连接,若出现以下窗口,表示连接成功,例如:会话名称为Ubuntu

 六、打开Xmanger

  1. 打开Xmanager

    2.双击Ubuntu则会自动跳转至Xshell中,这一步很关键

七、测试

  基于Xmanager跳转的会话窗口中(应该不能随便打开一个会话窗口,为了方便直接在Xmanage跳转的窗口中运行代码就好了),输入命令:gtk-demo

可能会出现各种错误,大部分可能都会出现以下错

 具体忘记怎么解决了,也是参考了很多大佬的思路和方法。大致记得可以这样做:

    1、可以修改 etc/hosts的文件(好像是只读的,修改文件权限就行),加入当前服务器的IP地址,一行一个IP地址

    2、可以输入 export DISPLAY=服务器IP地址:0.0

    3、可以修改ssh的sshd_config配置文件

  

  

     修改完后,重新启动ssh服务器。

    3、可以使用Xhost +,运行其他用户执行图像化操作(看别人这么写的,我没成功...)

  还有很多解决方法,可以网上查找一下,以上几种方法可能也不能解决这个问题,真的忘了是采用那种方法解决的了...

  正确安装完成是出现以下图像

4、解决Xshell与Xmanager键盘文件显示两次的方法

参阅 https://blog.csdn.net/uplife1980/article/details/84574055

 八、远程执行mininet的可视化工具

  我安装的Mininet放置在 sdn目录中,安装mininet可以参考https://blog.csdn.net/qq_34039018/article/details/90031480(转载)

  若成功出现了七中的图像,再次进入Xmanager双击Ubuntu,跳转到Xshell会话窗口后,进入 mininet/mininet/examples

   运行miniedit.py(我安装的python版本是3.8.3)

   正确运行的话,将会显示该窗体。

 这一步也会出现蛮多问题的,被折磨了很久,大概记得出现的几个错误,总结如下:

1、出现" ModuleNotFoundError: No module named 'tkinter' "

     这个好办缺少什么导入什么,直接导入此包到Python中。

     执行 sudo apt-get install tcl-dev tk-dev python3-tk,

     如果遇到什么候选包不存在之类,多半是要更新apt-get,执行 sudo apt-get update,

     还有问题的话,网上找吧...

  如果是什么tck,tl问题的可以参考

     转载:https://blog.csdn.net/blueheart20/article/details/78763208

2、出现tkinter.TclError: couldn't connect to display ":0.0"

  网上有很多解决思路,慢慢找吧...

九、安装ryu控制器与mininet连接

ryu可以监听mininet的相关信息,实现远程连接

1、安装pip3

检查是否已经安装pip3(或者pip,对应不同的版本)

 

 没有的话,执行命令 sudo apt install python3-pip进行安装

出现错误的话,一般更新一下apt-get就行

2、安装ryu

执行命令 pip3 install ryu进行安装

 

 

 执行命令 ryu-manager查看是否安装成功

 

 若出现异常,可能是某个端口号被占用,因为ryu默认端口号为6633,可以结束占用进程,也可重新给ryu一个端口号

netstat -nltp | grep 6633 #看看RYU控制器监听的默认端口6633被哪个应用占用了。
kill此应用并重新尝试。
 
可以看出,端口6633被pid为108194的应用占用啦。
kill -9 108194 #解除端口6633的占用
ryu控制器正常运行
3、mininet与ryu连接
启动ryu
执行命令 ryu-manager --verbose ryu.app.simple_switch_13,出现以下窗口

 

 启动miniedit

在窗口中查看有以下内容,表示连接成功

 

可参考以下文档

https://www.jianshu.com/p/45302aa8ab41

 

posted @ 2020-08-26 17:33  Dammond  阅读(1683)  评论(0编辑  收藏  举报