一、VMware安装

VMware虚拟机安装多种多样,可参考下方链接:

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA4MjU4MTg2Ng==&action=getalbum&album_id=3421466920749137927&scene=21#wechat_redirect

大家根据自身电脑配置情况酌情选择版本,这里不再赘述

二、Ubuntu安装

1.映像下载

这里选择Ubuntu16.04,选用阿里镜像源,由于大小较大,选用磁力链接下载的方式

阿里云镜像源链接:https://mirrors.aliyun.com/ubuntu-releases/16.04/

选用64位系统,由于仿真需要图形化显示,选用desktop的版本

image-20241109200352112

可以点击红色箭头直接下载,也可以点击黄色箭头下载磁链通过p2p下载软件下载,这里使用bitcomet下载,由于做种的人很多,用户也很多,可以看到下载的速度很快

image-20241109201741414

2.虚拟机配置

下载的时候同时先配置虚拟机,

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

Snipaste_2024-11-07_19-40-56

Snipaste_2024-11-07_19-43-00

选择自定义,硬件兼容默认。

选择稍后安装操作系统,先装一个空壳,稍后再装系统。

Snipaste_2024-11-07_19-43-10

选择Linux操作系统,Ubuntu64位

Snipaste_2024-11-07_19-44-17

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

image-20241109202148962

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

image-20241107200019785

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

image-20241107200136056

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

image-20241107200237596

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

image-20241107200406862

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

image-20241109202232139

3.配置系统

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

image-20241109224052979

然后开启虚拟机,可以点击上方保持横纵比拉伸来放大屏幕

image-20241109224209378

接下来通过引导程序安装系统

  1. 点击Install Ubuntu

  2. 勾选Install third-party software for ...

  3. 由于是建立了新盘,选择Erase disk and install Ubuntu

  4. 选择东八区,点击地址为上海

    image-20241109235500264

  5. 选择键盘布局为English(US)

  6. 设置用户名和密码,需要注意密码很重要,之后还要用

    image-20241109235715243

  7. 点击Install启动安装,等待之后重启即可

进入系统后搜索启动terminal

安装一些基础软件:

sudo apt-get install -y vim ssh

4.系统换源

为提高相关软件下载速度,需要换源,这里我们使用清华的源(ubuntu16版本号是xenial,注意分辨)

链接如下:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

使用编辑器编辑源列表文件

cd /etc/apt/
sudo cp sources.list sources.list.bakup	//备份原先文件
sudo vim sources.list

i键进入编辑模式,注释掉原先源,将上方源复制到文件最后。按ESC键退出编辑模式,输入:wq + Enter保存并退出vim

更新源

sudo apt-get update
sudo apt-get upgrade

三、安装ns2

1.安装依赖库

在安装ns2之前我们需要准备以下几个依赖库:

  • libx11-dev:提供X Window系统相关的开发库。
  • tcl-dev:为Tcl语言提供编译环境。
  • tk-dev:为Tk图形界面库提供开发支持。
  • gcc 和 g++:用于编译C和C++代码。
  • make:构建工具,用于编译NS2。

(引用自https://blog.csdn.net/weixin_36296444/article/details/141827130)

一键安装

sudo apt-get install -y libx11-dev gcc make tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev build-essential libxmu-dev libxmu-headers

测试安装

g++ -v

你也可以编译一段程序验证:

cd ~
sudo vim test.cpp
#include <cstdio>
#include <iostream>

int main(void)
{
    std::cout << "Hello World" << std::endl;
    return 0;
}
sudo g++ test.cpp -o test && ./test

程序输出Hello World,没有问题

2.安装ns2

先下载ns2的all in one包(你也可以选择源码,但是安装可能会遇到一些问题),官网给出的链接是sourcedorge的下载链接

官网链接:https://www.isi.edu/websites/nsnam/ns/

下载链接:http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download

如何把文件发送到虚拟机上呢,这里使用sftp将文件发上去,先查看虚拟机的IP地址:

ifconfig

image-20241110003623995

其中ens33网卡就是我们之前配置的NAT网络对应的网卡

返回主机系统,在刚才下载到压缩包的路径打开cmd

通过sftp使用刚才设置的用户和密码登录系统,并将文件发送上去(将xxx修改为自己设置的用户名)

sftp xxx@192.168.81.130
put ns-allinone-2.35.tar.gz /home/xxx/

image-20241110012029766

返回虚拟机可以看到文件已经上传成功

image-20241110004044625

解压缩源码压缩包:

tar -zxvf ns-allinone-2.35.tar.gz
cd ns-allinone-2.35

开始安装

./install

发现报错

image-20241110012629683

是因为我们使用的g++版本与当时不同,只能修改源码来解决

sudo vim ns-2.35/linkstate/ls.h

137行的erase改为this->erase即可,再次执行./install等待安装完成即可

显示安装完成:

image-20241110013512544

依据提示设置环境变量:

image-20241110013602064

sudo vim ~/.bashrc
export PATH=$PATH:/home/xxx/ns-allinone-2.35/bin:/home/xxx/ns-allinone-2.35/tcl8.5.10/unix:/home/xxx/ns-allinone-2.35/tk8.5.10/unix
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/ns-allinone-2.35/otcl-1.14:/home/xxx/ns-allinone-2.35/lib
export TCL_LIBRARY=$TCL_LIBRARY:/home/xxx/ns-allinone-2.35/tcl8.5.10/library

(将xxx改为自己的名称)

编译环境变量:

source ~/.bashrc

验证安装(这步时间较长,不建议,建议直接跳到下一步)

cd ns-2.35 && ./validate

3.测试ns2

退出重启terminal,输入ns,出现一个%证明安装成功

输入exit退出:

cd ns-allinone-2.35/ns-2.35/tcl/ex
ns example.tcl

如果出现了数据,证明ns2运行正常。再输入

ns simple.tcl

倘若弹出动画演示框,则证明ns完全安装正确

image-20241110022350629

四、一些问题

1.运行simple显示无nam

重新安装nam即可

cd ~/ns-allinone-2.35/nam-1.15
./configure
make
sudo make install

然后测试,出现nam console说明安装成功,回去重新测试即可

image-20241110022648267

2.复制粘贴技巧

如果没有安装tools,复制粘贴可能不太方便,可以使用ssh链接

可以win+R然后输入powershell

ssh xxx@192.168.81.130

登录即可,就获得了一个在本地运行的终端,右键即可粘贴

image-20241110022933657