【NS3】NS3安装 visualizer模块安装 (Windows+VMware+Kali) 2022.2

本教程详述了如何在Windows上的VMware虚拟机中安装Kali Linux,然后更换国内源以加速软件更新。接着,通过一系列步骤安装和配置NS3,包括检查和安装必要的依赖,以及解决PyVizvisualizer模块的安装问题。最后,展示了如何构建和运行NS3测试,确保其正确安装和工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NS3安装(Windows+VMware+Kali) 2022.2

VMware安装

导入kali

换源

进入root模式

sudo su

配置源

vim /etc/apt/sources.list

注释原本的源,换成国内源地址(下列代码采用阿里云)

ies/
#deb http://http.kali.org/kali kali-rolling main contrib non-free

deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free
~                                                                            
~                   

其他源

官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
中科大源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
阿里云源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
清华大学源
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
浙大源
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
东软大学源
deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
新加坡kali源
deb http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib
deb-src http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib
163 Kali源
deb http://mirrors.163.com/debian wheezy main non-free contrib
deb-src http://mirrors.163.com/debian wheezy main non-free contrib

更新索引、软件

apt-get update
apt-get upgrade

环境搭建

官方tutorial给出

ns-3 has various optional extensions, but the main features just require a C++ compiler (g++ or clang++), Python (version 3.6 or above), CMake and a build-system (e.g. make, ninja, Xcode). We focus in this chapter only on getting ns-3 up and running on a system supported by a recent C++ compiler and Python runtime support.

 apt-get install gcc g++ python python3  
 apt-get install gcc g++ python python3 python3-dev  
 apt-get install python3-setuptools git mercurial  
 apt-get install qt5-default mercurial  
 apt-get install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3  
 apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev  
 apt-get install autoconf cvs bzr unrar  
 apt-get install gdb valgrind  
 apt-get install uncrustify  
 apt-get install doxygen graphviz imagemagick  
 apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk  
 apt-get install python3-sphinx dia  
 apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0  
 apt-get install tcpdump  
 apt-get install sqlite sqlite3 libsqlite3-dev  
 apt-get install libxml2 libxml2-dev  
 apt-get install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake  
 apt-get install python-pip  
pip install cxxfilt  
 apt-get install libgtk2.0-0 libgtk2.0-dev  
 apt-get install vtun lxc  
 apt-get install libboost-signals-dev libboost-filesystem-dev  
 apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 gir1.2-goocanvas-2.0 python-rsvg  

NS3下载与安装

使用git速度非常快,以git下载为例
git只能下载ns本体,如果想要同时安装NetAnim,则下载官网的软件包。然后用build.py 来build(而不是waf)

$ git clone https://gitlab.com/nsnam/ns-3-dev.git

如果想要使用最新版本,可以选择切换分支(202202最新版本为3.35)

$ git checkout -b ns-3.35-branch ns-3.35

个人切换成了最新版本

在正式bulid NS3前可以使用以下代码检查所需的环境是否齐全

$ ./waf configure --enable-examples --enable-tests

如果没有更新成最新版本,从git下载的内容没有waf文件,取代它的是ns3,以上代码改为

./ns3 configure --enable-examples --enable-tests

下面是一些可选模块的安装情况

---- Summary of optional NS-3 features:
Build profile                 : debug
Build directory               : 
BRITE Integration             : not enabled (BRITE not enabled (see option --with-brite))                                                                 
DES Metrics event collection  : not enabled (defaults to disabled)
DPDK NetDevice                : not enabled (libdpdk not found, $RTE_SDK and/or $RTE_TARGET environment variable not set or incorrect)                    
Emulation FdNetDevice         : enabled
Examples                      : enabled
File descriptor NetDevice     : enabled
GNU Scientific Library (GSL)  : not enabled (GSL not found)
Gcrypt library                : not enabled (libgcrypt not found: you can use libgcrypt-config to find its location.)                                     
GtkConfigStore                : not enabled (library 'gtk+-3 >= 3.22' not found)                                                                          
MPI Support                   : not enabled (option --enable-mpi not selected)                                                                            
NS-3 Click Integration        : not enabled (nsclick not enabled (see option --with-nsclick))                                                             
NS-3 OpenFlow Integration     : not enabled (OpenFlow not enabled (see option --with-openflow))                                                           
Netmap emulation FdNetDevice  : not enabled (needs net/netmap_user.h)
Network Simulation Cradle     : not enabled (NSC not found (see option --with-nsc))                                                                       
PlanetLab FdNetDevice         : not enabled (PlanetLab operating system not detected (see option --force-planetlab))                                      
PyViz visualizer              : not enabled (Python Bindings are needed but not enabled)                                                                  
Python Bindings               : not enabled (PyBindGen missing)
Real Time Simulator           : enabled
SQLite stats support          : not enabled (library 'sqlite3' and/or semaphore.h not found)                                                              
Tap Bridge                    : enabled
Tap FdNetDevice               : enabled
Tests                         : enabled
Threading Primitives          : enabled
Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)                                                                           
XmlIo                         : enabled
'configure' finished successfully (3.546s)

visualizer 相关

因为我非常想安装visualizer 模块,所以我继续安装

PyViz visualizer              : not enabled (Python Bindings are needed but not enabled)                                                                  
Python Bindings               : not enabled 

首先解决pyBindings

pip install pybindgen
PyViz visualizer              : not enabled (Missing python modules: gi.repository.GooCanvas)                                                             
Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)                                                                            
Python Bindings               : enabled

在源中增加

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

并更新索引、软件

安装后,虚拟机可能出现无法与物理机共享剪切板的情况,此时reboot即可

apt-get install gi.cairo
apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 

其他人的解决方法

#安装依赖包(

sudo apt install g++ python3 python3-dev pkg-config sqlite3 python3-setuptools git qt5-default mercurial gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar gdb valgrind uncrustify doxygen graphviz imagemagick tcpdump sqlite sqlite3 libsqlite3-dev libxml2 libxml2-dev libgtk-3-dev vtun lxc uml-utilities libboost-filesystem-dev python3-pip cmake libc6-dev libc6-dev-i386 automake -y
#安装Python依赖库
sudo pip3 install PyBindGen pygccxml castxml -i https://pypi.douban.com/simple
#build
./build.py

PyViz环境ok!

PyViz visualizer              : enabled
Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)                                                                            
Python Bindings               : enabled
Real Time Simulator           : enabled

build NS3

$ ./waf build
常见错误

build中可能存在内存问题(status 4)

法1

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile

编译完成后可以选择撤销该操作(也可以不做)

sudo swapoff /swapfile
sudo rm /swapfile

法2

直接修改内存为4G(或者更高)

status 1的解决方法

CXXFLAGS="-Wall" ./waf configure --enable-examples --enable-tests

然后build

build结果

在这里插入图片描述

测试与运行NS3

测试NS3

$ ./test.py

所有的测试要么通过,要么被跳过。如果这样,说明NS3模拟器运行正常。

可以开始运行程序,以系统自带的first.cc为例

$ ./waf --run first
└─# ./waf --run first                                                1 ⨯ 1 ⚙
Waf: Entering directory `/home/kali/Desktop/ns-3-dev/build'
Waf: Leaving directory `/home/kali/Desktop/ns-3-dev/build'
Build commands will be stored in build/compile_commands.json
'build' finished successfully (1.309s)
At time +2s client sent 1024 bytes to 10.1.1.2 port 9
At time +2.00369s server received 1024 bytes from 10.1.1.1 port 49153
At time +2.00369s server sent 1024 bytes to 10.1.1.1 port 49153
At time +2.00737s client received 1024 bytes from 10.1.1.2 port 9

如果想要获得更多信息,可以输入

$ ./waf --run 'first --PrintHelp'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值