NS-3 环境搭建

2023.09.05

安装虚拟机

这里选用的是 VMware,当然其他工具也行,就是需要 Linux 这个环境。

首先进入阿里云镜像站,选择 Ubuntu 22.04 镜像进行下载。

下载完成之后随便选择一个不会被删掉的位置就行,下面就打开 VMware 创建新的虚拟机,非常简单,单击 创建新虚拟机 然后选择 安装程序光盘映像文件,在路径中选择刚刚下载的 Ubuntu 镜像。后面的步骤直接按照默认值,一直往下进行就行。

安装 NS-3 环境

这里选用 3.35 版本,可以在这里进行下载 all-in-one 版本,这个装起来比较方便。

首先,我们的虚拟机要做一些配置,为了稍后下载软件快一些,我们需要对 apt 的源替换为清华大学的源,Ubuntu 的清华源可以在这个网址中查询到。查好对应版本的镜像源之后,我们需要修改 /etc/apt/sources.list 文件:

bash
# 首先复制一下源文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 修改文件
vi /etc/apt/sources.list
# 更新 apt 软件列表
sudo apt-get update

我们可以从 NS-3 的 Wiki 中找到,配置 3.35 版本的最低要求是需要安装 g++python

bash
sudo apt install g++ python

安装之后就需要解压前面下载的 ns-allinone-3.35.tar.bz2

bash
tar xjf ns-allinone-3.35.tar.bz2

进入 ns-allinone-3.35 目录,输入 ls 可以查看目录下有个 build.py 文件,我们执行:

bash
./build.py --enable-example --enable-test

接下来会看到编译过程,执行结束后会看到什么模块编译了,什么模块没有编译。如果想确认是否编译完成可以执行脚本:

bash
./waf --run hello-simulator

运行结束之后,会看到 Hello Simulator 的输出。

实体机 VSCode 配置

配置虚拟机的 ssh:

bash
# 安装 sshd
sudo apt-get install sshd
# 启动服务
sudo service sshd start

# 如果 sshd 安装不上,请将 apt 源换成清华源试试
# 仍然不行的话,将 sshd 换成 openssh-server
sudo apt-get install openssh-server

在实体机的 VSCode 上,安装 Remote-SSH 这个插件,然后进行连接配置,

image

txt
Host ns-3 # 主机名
    HostName 192.168.182.129 # 虚拟机 IP 地址
    User root # 要登录的用户

虚拟机的 ip 地址可以通过 ip a 得到。

这里用 root 用户登录是因为不用超级用户权限登录的话,文件都会爆红出错。

但是,我们尝试连接的时候,会出现 Permission denied, please try again 这样的提示,需要我们编辑 /etc/ssh/sshd_config 这个文件:

bash
vi /etc/ssh/sshd_config

找到 PermitRootLogin 字段,将其值改为 yes,重新 ssh 服务,再连接就可以连接上了。

bash
# 重新启动服务
sudo service sshd restart

最后,在 VSCode 中为虚拟机装上 C/C++ 智能提示插件,按 F1 找到 C/C++ 编辑配置(JSON) 在里面将 includePath 字段改为 "${workspaceFolder}/build/**" 这样在加载的时候快一些。配置成功之后,就能得到对代码的智能提示了。

自动登录

在使用的过程中发现,每次连接都需要输入密码,非常麻烦,所以去搜索了一下怎么自动连接,这是一个办法: 在 Git Bash 下输入以下命令,<Username> 是连接的用户名(例如 root<Server IP> 就是虚拟机的 IP (命令中不需要尖括号)

bash
ssh-copy-id -i ~/.ssh/id_rsa.pub <Username>@<Sever IP>

本文最后更新于 2024 年 3 月 5 日