前言

我妹妹的老师要求搭建ns-3 不会,所以找到了我,我在网上查了一下发现安装的版本比较老,新的版有些差异,所以我综合网上的资料和官网文档进行安装。与官网的安装步骤有些不同,但亲测是可以跑通的。

软件配置

  • wsl(ps:我用的是wsl,如果用虚拟机,需要安装虚拟机软件,比如VMware)
  • ubuntu 24.04
  • Windows 终端

安装步骤

因为只用Linux的基础命令不用什么复杂的操作,所以我使用WSL来安装ubuntu,
如果有现成的Linux并且已经配置好了,请直接跳转到6.安装ns-3.43

1. 打开虚拟化

在任务栏搜索 启用或关闭 Windows 功能(请直接复制,手敲的话注意Windows前后有空格)打开
alt text

对与家庭版用户,下滑到最下面然后选择框选的两个选项,然后重启电脑。

alt text

如果是专业版用户还需要打开Hyper-V,然后重启电脑

alt text

2. 安装Windows 终端

自带的cmd太过于简陋,所以安装一个Windows 终端,方便使用

在微软商店中搜索终端安装

alt text
alt text

3. 安装ubuntu

在任务栏搜索终端打开,输入以下命令安装ubuntu

1
wsl --install

alt text

4. 打开ubuntu

重新打开终端,从标签页右侧下拉箭头打开ubuntu,
alt text

第一次打开会设置用户名和密码,用户名我设置成demo。回车
之后会输入两次重复的密码,注意,密码不会显示,所以直接输入就行,输完回车
再输一遍,回车就成功进入到了ubuntu系统

alt text

为了方便我创建一个root账户进行操作,
创建root账户,首先输入你刚刚设置的密码,之后在输入两次root账户的密码(自己设置,请牢记,可以两个密码相同,本地可以,远程不推荐)
如果你不使用root账户,接下来的一些命令需要再前面加上sudo,并输入你的密码,需要的地方我会在注释里标明

1
sudo passwd root

alt text

使用命令切换到root账户,输入root的密码,如果最前面的名字变成了root就成功了

1
su root

5. 修改源

查看ubuntu的版本

1
lsb_release -a

alt text

因为默认的源是国外的,下载非常慢,所以换成国内的源
我的版本是24.04,所以修改以下文件

alt text

1
2
3
4
5
6
# 进入目录
cd /etc/apt/sources.list.d/
# 备份文件
cp ubuntu.sources ubuntu.sources.bak
# 编辑文件(可能需要root,请加上sudo,例如:sudo vim ubuntu.sources)
vim ubuntu.sources

修改文件内容,将里面的内容替换成以下内容,保存退出
会使用vim的自己修改,不会的请按照一下的按键一个一个的按,请注意大全部是大写大写大写

按键在这儿 –> V G D

解释

V 进入可视模式或者说选择模式

G 移动到最后一行 配合V实现选中整个文件

D 删除 大小写均可,最后的实现效果是删除整个文件的内容

删除之后将下面的配置文件复制粘贴到文件中

1
2
3
4
5
Types: deb
URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

alt text

最后先输入冒号,再输入wq,回车保存退出

:wq

更新软件包源

1
2
3
4
# 更新软件包源
apt update && apt upgrade
# 普通用户使用、root用户请忽略
sudo apt update && sudo apt upgrade

中间会有一个提示,问你要继续吗,按y键回车继续
alt text

ubuntu 20.04 换源参考文章

6. 安装ns-3.43

终于进入到正题了,首先切换目录到/opt/文件夹下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 切换目录
cd /opt/
# 下载文件
wget https://www.nsnam.org/release/ns-allinone-3.43.tar.bz2
# 安装bzip2用来解压文件(需要root)
apt install bzip2
# 解压文件
tar xjf ns-allinone-3.43.tar.bz2
# 进入解压后的文件夹
cd ns-allinone-3.43
# 安装所需的组件(这是我看一位印度老哥的博客,有些是必须的,有些可能不是,直接全部安装大约3G左右)(需要root)
apt install g++ python3 cmake ninja-build git gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 tcpdump wireshark sqlite3 libsqlite3-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools openmpi-bin openmpi-common openmpi-doc libopenmpi-dev doxygen graphviz imagemagick python3-sphinx dia imagemagick texlive dvipng latexmk texlive-extra-utils texlive-latex-extra texlive-font-utils libeigen3-dev gsl-bin libgsl-dev libgslcblas0 libxml2 libxml2-dev libgtk-3-dev lxc-utils lxc-templates vtun uml-utilities ebtables bridge-utils libxml2 libxml2-dev libboost-all-dev ccache
# 构建
./build.py --enable-examples --enable-tests

选择yes后,等待组件安装完毕,之后执行上面的构建命令,就成功安装了ns-3.43
alt text

完成后测试一下

1
2
3
4
# 切换目录
cd ns-3.43/
# 运行测试(需要root)
./ns3 run examples/tutorial/first.cc

成功出现了At time 这些数据说明安装成功
alt text

自己编写的脚本如何运行?

先说结果,放到scratch文件夹,运行命令,就可以运行了

1
2
# 运行测试(需要root)
./ns3 run scratch/你的文件名.后缀

alt text

我对他的结构不太了解,从官网的文档看,他将自定义的脚本当到了scratch文件夹下,然后是可以运行的,放到examples/tutorial/目录下会报错,
alt text