文章目錄
NS2-allinone-2.35安裝過程的實現
Ubuntu 16.04 安裝ns2.35+nam
- Step1: 更新系統
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已經安裝的包
sudo apt-get dist-upgrade #更新軟件,升級系統
- Step2:安裝ns2需要的幾個包
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk
sudo apt-get install libxmu-dev libxmu-headers #for nam
- Step3:下載安裝包,並複製到需要安裝的目錄
官網下載地址:http://www.isi.edu/nsnam/ns/,這裏下載ns-allinone-2.35.tar.gz
tar xvfz ns-allinone-2.35.tar.gz
cd ns-allinone-2.35
sudo ./install #進行安裝
- 第一次安裝報錯:
linkstate/ls.h:137:20: note: use ‘this->erase’ instead
make: * [linkstate/ls.o] Error 1
Ns make failed!
- 修復
- 修改ls文件:ns-2.35/linkstate/ls.h 第137行
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改爲:
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
保存後
sudo ./install #重新安裝順利完成
- Step4:配置環境變量
修改當前用戶環境變量(對應的文件爲’/home/用戶名’中的.bashrc,並非’/ns-allinone-2.35’底下的空白.bashrc)
# 有不同的方法修改環境變量 vi /etc/profile 等具體參考 修改環境變量的方法,這裏是在當前目用戶下,增加環境變量
vi ~/.bashrc
在文件末尾添加
# add path for ns2
export PATH=”$PATH:/home/安裝文件夾名/ns-allinone-2.35/bin:/home/安裝文件夾名/ns-allinone-2.35/tcl8.5.10/unix:/home/安裝文件夾名/ns-allinone-2.35/tk8.5.10/unix”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/安裝文件夾名/ns-allinone-2.35/otcl-1.14:/home/安裝文件夾名/ns-allinone-2.35/lib”
export TCL_LIBRARY=”$TCL_LIBRARY:/home/安裝文件夾名/ns-allinone-2.35/tcl8.5.10/library”
>source ~/.bashrc #是修改起作用
- Step5:驗證ns2安裝
#關閉終端,重啓終端,輸入ns,出現%,說明ns2安裝成功
注意:環境變量配錯的話,會提示
程序“ns”尚未安裝。 您可以使用以下命令安裝: sudo apt-get install ns2”
請注意正確配置環境變量
- Step6:安裝nam (NAM 是圖形顯示的一部分)
#進入nam目錄
cd ns-allinone-2.35/nam-1.15
#進入後
sudo ./configure
#注意,此處會出錯,提示爲
`installation of tcl seems incomplete or can’t be found automatically`
解決方法:
sudo ./configure –with-tcl=/home/用戶目錄/文件存放目錄/ns-allinone-2.35/tcl8.5.10 –with-tcl-ver=8.5.10 –with-tk=/home/用戶目錄/文件存放目錄/ns-allinone-2.35/tk8.5.10 –with-tk-ver=8.5.10
#執行 編譯安裝
sudo make install
命令行輸入
nam
彈出nam console
說明nam安裝成功(這裏的圖形顯示,只會在圖形用戶界面下,命令的putty 工具下,是沒用的,一句話,你必須有桌面程序纔行)
注意:如果通過“sudo apt-get install nam”安裝的nam,執行nam命令會報異常
“段錯誤,核心文件已轉儲”
遇到該問題的網友可以“sudo apt-get remove –purge nam”卸載nam及其配置後按Step6安裝。
- Step7:測試simple.tcl
```bash
cd ns-allinone-2.35/ns-2.35/tcl/ex/
ns simple.tcl
顯示下圖即可。1
在雲服務器上實現的NS2 添加VNC(vritual network console)
執行環境就是 unbuntu 16.04
整體感官圖2
- step1:unbuntu 上安裝VNCserver 來使用
安裝Xfce4桌面環境。Xfce4是在Unix和Unix-like(Linux, FreeBSD)上運行的開源桌面環境,其特點是快速,輕量,同時擁有美觀的交互界面,易於使用。Xfce4的安裝十分簡單,運行如下命令即可
#安裝Xfce4桌面環境
sudo apt-get install xfce4
- step2:安裝VNCServer
sudo apt-get install vnc4server
完成安裝以後,在終端輸
# 啓動vnc server
vncserver
- step3:設置登錄VNC的密碼
設置登錄VNC的密碼,之後會出現一段提示。
主要意思是VNCServer產生了一個新桌面:1,並在/home/username/.vnc/目錄下生成了配置文件xstartup。此時如果直接用VNCView連接遠程桌面會出現空白的窗口,因此需要我們配置這個xstartup文件
配置xstartup文件。修改後的xstartup文件內容如下,針對Xfce4桌面環境.
# 修改內容
vi home/neon/.vnc/xstartup
#!/bin/sh
# 如何修改的方法
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
- step4:修改配置文件後,運行如下命令結束掉之前產生的窗口:1
vncserver -kill:1
- step5:之後重新啓動VNCServer
vncserver
step6: 關閉防火牆
背景知識:一般來說, 我們會使用名氣比較的大iptables等程序對這個防火牆的規則進行管理。iptables可以靈活的定義防火牆規則, 功能非常強大。但是由此產生的副作用便是配置過於複雜。一向以簡單易用著稱Ubuntu在它的發行版中,附帶了一個相對iptables簡單很多的防火牆配置工具:ufw。
# 這裏是直接簡單化,而不是打開那個防火牆端口,打開那個端口自行百度
# 關閉防火牆 ufw enable 啓動防火牆
ufw disable
#重啓機器,有時候不需要重啓(看機器的提示)
reboot
-
step7: 有時候需要開放安全組
舉例實現的是騰訊雲服務的添加所有入站規則,和出站規則
-
step8: 使用svnViewer 連接
根據代碼的運行情形設置,鏈接參數
注意參數的填寫,是否正確。
- 出現Authentication Failure的情況
解決辦法:
是因爲vnc用一套自己的密碼系統,不要去輸入ssh登錄時的密碼,所以只需要進入遠程服務器中,設置一哈vnc的密碼即可!
vncpasswd
搞定收工!
注意:剛建立的鏈接方式,可能無法使用粘貼複製,和table 功能。自行百度解決。
WinSCP 是一個 Windows 環境下使用的 SSH 的開源圖形化 SFTP 客戶端。同時支持 SCP 協議。它的主要功能是在本地與遠程計算機間安全地複製文件,並且可以直接編輯文件
如何使用winscp 登陸,傳輸文件的方式。
Cygwin系列
計算機世界裏存在各種各樣的操作系統,目前通用操作系統有主流的三大類:
- UNIX,通用操作系統鼻祖,發展出特別多衍生系統;
- Windows,微軟家根基,桌面市場霸主;
- GNU/Linux,UNIX近親,有各種發行版如Ubuntu、CentOS等。
這些系統有各自的內核,出於系統穩定性考慮是不允許用戶程序直接操作內核,同時也將內核開發和應用軟件開發隔離開來,系統將必要的函數封裝成庫供應用軟件調用,約定的規範即爲應用軟件接口(Application Program Interface,API)
如果各
系統平臺都能提供相同的系統函數庫
,那麼開發者在這個系統函數庫基礎之上編寫軟件代碼,那麼就很容易將軟件移植到各個系統平臺。然而,這只是個美好的願望,IEEE就是爲了達成這樣的願望才牽頭制定POSIX標準。POSIX標準主要就是針對UNIX API
而制訂,不管函數如何包裝、功能如何實現,但API按照標準約定來(比如函數變量等符號名稱、數據結構、參數類型與個數、基本工具命令名稱等),Linux完全兼容POSIX標準
(部分函數符合POSIX,部分函數是Linux專有,即是POSIX的超集),微軟聲稱Windows部分兼容POSIX標準。
Cygwin3就是在Windows中增加了一箇中間層——兼容POSIX的模擬層,並在此基礎上構建了大量Linux-like的軟件工具
參考(傾權留言刪)