在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块

在Ubuntu20.04安装ns3 3.37,并使用SNS3

文章目录

  • 在Ubuntu20.04安装ns3 3.37,并使用SNS3
  • 一. 所使用的软件
  • 二. 安装步骤
    • 1. VM安装和ubuntu安装。
    • 2. xshell和xftp与linux连接并向linux传输文件
      • 2.1 linux上的准备工作
      • 2.2 windows上xshell和xftp
    • 3. 安装ns3 3.37
      • 3.1 安装所需的依赖
      • 3.2 ns 3.37
    • 4. 加入sns3模块
  • 三. 可能会出现的问题及解决办法:
      • cmake: command not found
      • C++: fatal error: Killed signal terminated program....
      • 虚拟机提醒空间不足:
      • 其他
  • 总结

一. 所使用的软件

VMware Workstation Pro和Ubuntu 20.04的镜像 :

  • VMware Workstation Pro自己去官网下载,一搜就有。
  • Ubuntu的镜像:
    链接:link
  • Xshell和XFTP
    软件包官网可以下
    链接:link

xshell和xftp选择家庭/学校免费版,富哥的话当然可以去买咯。主要是为了方便linux和windows之间文件传输。


二. 安装步骤

1. VM安装和ubuntu安装。

20.04版本安装步骤基本和别的版本差不多。

2. xshell和xftp与linux连接并向linux传输文件

2.1 linux上的准备工作

(1)安装网络工具:

sudo apt install net-tools

(2)检查是否开启ssh server:

dpkg -l |grep ssh

结果

(3)安装server服务软件包:

sudo apt update
sudo apt install openssh-server
在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第1张图片 (4)打开ssh服务:
sudo systemctl enable ssh

​ (5) 检查ssh服务运行状态(默认端口22)

sudo systemctl status ssh

​ (6)确保防火墙允许服务端口:

sudo ufw allow ssh

在这里插入图片描述
(7)查看IP地址:

ifconfig
在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第2张图片

2.2 windows上xshell和xftp

1,打开xshell,选择后来,选择新建会话。

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第3张图片

在名称处输入查到的ip,点击确定,然后选中自己新建的(如下),点击连接。

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第4张图片 在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第5张图片

然后输入虚拟机的用户名–>确定—>输入虚拟机密码—>确定 (想以后方便可以把记住用户名、密码勾上)
连接成功基本如图:

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第6张图片

2,打开xftp,选择后来,然后新建会话,也是输入查到的ip

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第7张图片

然后在windows那一侧找到自己所要传的文件,右键选择传输即可。

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第8张图片

3. 安装ns3 3.37

3.1 安装所需的依赖

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第9张图片命令如下,亲测有效,照着输,安装ns3时基本没报错:

sudo apt install git 
sudo apt-get install g++ python3 python3-dev pkg-config sqlite3 cmake
sudo apt-get install mercurial
sudo apt-get install qt5-default
sudo apt-get install autoconf cvs bzr unrar
sudo apt-get install gdb valgrind
sudo apt-get install gsl-bin libgsl-dev libgslcblas0
sudo apt-get install flex bison libfl-dev
sudo apt-get install g++-3.4 gcc-3.4
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install vtun lxc uml-utilities
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
sudo apt-get install python3-sphinx dia 
sudo apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
sudo apt-get install libxml2 libxml2-dev libboost-all-dev
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

3.2 ns 3.37

(1)关于安装包:

  • 去官网下,下载链接如下:
    链接:link
    可在windows下(比较快),然后通过xshell和xftp传到linux。
    也可以直接在linux里下,可能会比较慢。
  • 直接git。
    在ubuntu的终端里
    git clone https://gitlab.com/nsnam/ns-3-dev.git ns-3.37
    
(2)安装:

```shell
mkdir tarballs  
cd tarballs  
cd ns-allinone-3.37/ns-3.37  
./ns3 configure --enable-examples --enable-tests 

(注)从3.36版本开始要使用./ns3,3.35及以前的版本是使用./waf

[GalaxyerKw注:我使用ubuntu18.04版本,尝试配置安装3.35版本时问题百出,建议初次直接随教程尝试3.37版本。]

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第10张图片 在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第11张图片 上面那条configure命令执行完正常应该是: 在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第12张图片
./ns3 build
./test.py 

出现的所有都pass过了基本就安装成功了。
可以运行一个脚本测试一下:

./ns3 run first 

4. 加入sns3模块

(1)加入satellite module

$ cd ns-3.37/contrib
$ git clone https://github.com/sns3/sns3-satellite.git satellite

(2)traffic 和 magister-stats modules
(也是在contrib目录下)

$ git clone https://github.com/sns3/traffic.git traffic
$ git clone https://github.com/sns3/stats.git magister-stats

(3)再次build:

$ cd ns-3.37
$ ./ns3 clean
$ ./ns3 configure --build-profile=optimized --enable-examples --enable-tests
$ ./ns3 build

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第13张图片

(4)下载定义模拟参考场景的数据:
在ns-3.37/contrib/satellite下打开终端

$ git submodule update --init --recursive
在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第14张图片

这个下载真的超级慢(最好科学一下)
(5)

$ ./test.py --no-build

由ns3运行一些并行测试,基本都能pass

在Ubuntu20.04上安装ns3-3.37,并使用SNS3模块_第15张图片

三. 可能会出现的问题及解决办法:

cmake: command not found

解决办法:
先下载合适的cmake包,然后切换到相应目录下,比如cd cmake-版本
然后进行编译安装:

./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make
sudo make install

检查是否正确:

cmake --version

C++: fatal error: Killed signal terminated program…

在这里插入图片描述
解决办法:创建swap分区
最好切换到home目录下,我第一次时在ns3目录下直接弄还是会报错。
①创建分区路径

sudo mkdir -p /var/cache/swap/

②设置分区的大小
bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB

sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=64

③设置该目录权限

sudo chmod 0600 /var/cache/swap/swap0

④创建SWAP文件

sudo mkswap /var/cache/swap/swap0

⑤激活SWAP文件

sudo swapon /var/cache/swap/swap0

⑥ 查看SWAP信息是否正确

sudo swapon -s
image-20231115204302078

虚拟机提醒空间不足:

(1)定期清理drag_and_drop目录(文件如果可以从windows直接拖拽到linux)
(2)查找大文件并删除

du -h --max-depth=目录级别

(3)扩展硬盘空间,并将多个合并。
但是在扩展完硬盘空间后,增加硬盘空间后,系统会提示还需要进入系统进行相应的扩展设置,进入Ubuntu中的Disks,会显示未分配的空间,将其分配给相邻的磁盘即可。

其他

  1. C++ 中浮点数类型与整数类型之间可以进行比较操作。如果你在比较过程中遇到问题,可能是因为一些警告或隐式类型转换引起的。新的 C++ 标准可能会引入更严格的类型检查,从而导致一些警告或错误。
    解决:显式的类型转换,将浮点数转换为整数,然后再进行比较,这样可以避免潜在的警告或错误。
  2. 有关3.35版本的ns3——加入sns3模块(satellite,traffic,magister-states)时,不要像3.37版本一样放入contrib目录下,而是直接零散放在ns-3.35目录下。

总结

鄙人水平有限,接触到的资源和查到的资料也有限,是基于自己的安装经历和查到的别人分享的方法所写,不可能涉及所有可能出现的error,因此只接受批评指正,不接受因错误解决方法不全而带来的不良言论,谢谢阅读。

你可能感兴趣的:(ubuntu,python,网络,c++)