网络仿真软件ns3的下载与安装(VMware&ubuntu)
一、VMware安装
VMware虚拟机安装多种多样,可参考下方链接:
大家根据自身电脑配置情况酌情选择版本,这里不再赘述
二、Ubuntu安装
此文写自2024-11-7,截止目前ns-3官网最高版本是3.43,根据官方安装手册,安装所需依赖版本如下表:

查找资料可得Ubuntu版本和默认gcc/g++版本对应表如下:
| Ubuntu版本 | 对应的默认gcc/g++版本 |
|---|---|
| Ubuntu14及更老 | gcc/g++4 |
| Ubuntu16 | gcc/g++5.4 |
| Ubuntu18 | gcc/g++7.5 |
| Ubuntu20 | gcc/g++9.3 |
| Ubuntu22 | gcc/g++11.2 |
所以这里我们选择Ubuntu22.04,选用阿里云的开源镜像,链接如下:
https://mirrors.aliyun.com/ubuntu-releases/22.04/
由于仿真需要图形化界面,选择ubuntu-22.04.5-desktop-amd64直接下载速度较慢,这里使用P2P磁链的下载模式,可以看到下载速度非常快

下载的同时我们准备VMware的设置,点击新建虚拟机


选择自定义,硬件兼容默认。
选择稍后安装操作系统,先装一个空壳,稍后再装系统。

选择Linux操作系统,Ubuntu64位

重命名,选择一个合适的放置虚拟机的地方,我的F盘有较大空闲空间,选择放在这里

接下来选择处理器数量和每个处理器内核数量,一般选择宿主机内核数的一半,保证其他功能的正常使用,我的电脑内核是10,此处设置处理器内核总数为4

设置内存,默认的4G已经足足够用

设置网络类型为NAT,方便我们向它发送安装包

一路next过来,设置Ubuntu建议大小20GB,作为仿真实验用已经绰绰有余

已经创建完成,再核对一下信息,点击完成创建虚拟机

此时刚才的映像已经下载完毕,我们点击编辑虚拟机设置为其装系统,选择刚才下载的ISO文件



点击确定,然后点击开启虚拟机开始装系统,点击这里可以选择适应屏幕

接下来就是按照引导安装系统
选择Install Ubuntu
选择键盘布局English(US)
不需要更多软件,选择Minimal installation
我们是新磁盘,直接Erase disk and install Ubuntu(在实际装机的时候可不要Erase的这么果断。。。)
接下来一路Continue过去即可
设置用户名和密码,注意这里设置完之后要记住用户名和密码,这很重要,以后要用


等待片刻后已经安装完成,会提示移除映像文件,此处移除不移除都可以,想要节省空间的可以移除后将映像文件删除。
三、安装ns3
先换源
sudo apt-get install vim
cd /etc/apt
sudo cp sources.list sources.list.backup //备份以前的源
sudo vim sources.list
注释掉以前的语句,将新的源粘贴进去,这里使用清华的镜像

https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
更新软件源并安装一些基础组件
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y net-tools ssh
安装所需环境
sudo apt-get install -y build-essential cmake //gcc-make
sudo apt-get install -y ccache gdb valgrind
sudo apt-get install -y qtcreator
sudo apt-get install -y python3 python3-pip
sudo apt-get install -y libxmu-dev libxmu-headers //nam库相关文件
安装python所需依赖
python3 -m pip install --user cppyy==3.1.2
sudo apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
使用ifconfig查看服务器的IP地址

由于是NAT模式,本机应该可以直接ping通虚拟机
ping 192.168.81.131

使用sftp将下载好的ns3压缩包发送到服务器上(将代码里的xxx替换为虚拟机用户名,使用设置的密码登录)
sftp xxx@192.168.81.131
put ns-allinone-3.43.tar.bz2 /home/xxx

上传成功,转回服务器,解压缩
tar -jxvf ns-allinone-3.43.tar.bz2
接下来进行安装
cd ns-allinone-3.43/ns-3.43/
./ns3 configure --enable-examples --enable-tests
./ns3 build
构建时间因CPU内核的数量、CPU和内存的速度以及构建模式而异,如果之前选择的内核数较高,build速度将更快
安装完后会返回一个cmake命令

在结束之后,可以使用单元测试去检查build结果
./test.py
全部检查通过
