<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های علی کارگری</title>
        <link>https://virgool.io/feed/@ali78kargari</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 12:56:38</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>علی کارگری</title>
            <link>https://virgool.io/@ali78kargari</link>
        </image>

                    <item>
                <title>نصب و اجرای NetAnim</title>
                <link>https://virgool.io/@ali78kargari/%D9%86%D8%B5%D8%A8-%D9%88-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-netanim-blvgkrytrndd</link>
                <description>برای نصب Net Anim دستورهای زیر رو میزنیمcd ns-allinone-3.39/netanim-3.109/
make clean #not needed in last version
qmake NetAnim.pro
makeبرای راه اندازی این ابزار  توی همون مسیر که هستیم دستور زیر رو میزنیم.دقت داشته باشید که چون محیط کار نرم افزار گرافیکیه باید ssh -X زده باشیم../NetAnimاگه باز شد، تبریک میگم:)اما تست NetAnim:ما برای اسکریپت first بررسی میکنیم ولی اصول کار همینهاولین کار اینه که در ابتدای کار بگیم از کتابخونه مربوط به NetAnim استفاده کن#include “ns3/netanim-module.h”در آخر و پیش از دستور زیرSimulator::Run();باید گرههایی که میخواهیم توی انیمیشن ببینیمشونو معرفی کنیم:AnimationInterface anim (“anim1.xml”);
anim.SetConstantPosition(nodes.Get(0), 10.0, 11.0 );  
anim.SetConstantPosition(nodes.Get(1), 20.0, 21.0 );در این چند خط منظور از anim1.xml فایل خروجی هست که میتونیم توی NetAnim بازش کنیم و نتیجه رو ببینیم. این فایل بعد از اجرای شبیه سازی توی مسیر زیر ساخته میشه&lt;Working Dir&gt;/ns-allinone-3.39/ns-3.39/گرههای شماره صفر و یک در خطوط دوم سوم معرفی شدند که هرکدوم در موقعیتهای افقی و عمودی (10،11) و (20،21) قرار میگیرند.بعد از اینکارها باید بیلد و اجرا کنیم (اسم فایل من myfirstanim.cc هست). ./ns3 build
./ns3 run scratch/myfirstanimحالا باید netAnim رو باز کنیم و از دکمۀ open در بالا سمت راست فایل xml ساخته شده رو بهش بدیم.cd ../netanim-3.109/
./NetAnimنتیجه کار مثل پایینه.علاوه بر این، مواردی مثل آماری که نشونمون هم میده قابل توجهه.</description>
                <category>علی کارگری</category>
                <author>علی کارگری</author>
                <pubDate>Mon, 31 Jul 2023 17:28:45 +0330</pubDate>
            </item>
                    <item>
                <title>نصب و دستورهای اولیه ns-3</title>
                <link>https://virgool.io/@ali78kargari/%D9%86%D8%B5%D8%A8-%D9%88-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D9%87%D8%A7%DB%8C-%D8%A7%D9%88%D9%84%DB%8C%D9%87-ns-3-lp4ubuows9nh</link>
                <description>ابتدا باید متعلقات رو نصب کنیم.sudo apt update
sudo apt install qt5-default build-essentialبرای نصب cmake از دستور موجود در این لینک استفاده میکنیمنصب ns-3 سرراسته.wget https://www.nsnam.org/release/ns-allinone-3.39.tar.bz2
tar xjf ns-allinone-3.39.tar.bz2
cd ns-allinone-3.39/
./build.py --enable-examples --enable-testsمن نسخه فعلی رو نصب کردم که میشه 3.39 بنابراین دستورهایی که دارم یه کم متفاوته با نسخه های قدیمیتر.برای تست کارایی دستور زیر رو وارد کنید../ns3 run hello-simulatorباید با پیام hello-simulator روبرو شویم.برای اجرای اسکریپتهای نوشته شده باید اونا رو توی مسیر scratch قرار بدیم. ما فایل نمونۀ اول خودشونو میخواهیم اجرا کنیم.cp examples/tutorial/first.cc scratch/myfirst.cc
./ns3 build
./ns3 run scratch/myfirstکه یه همچین نتیجه ای میدهAt time +2s client sent 1024 bytes to 10.1.1.2 port 9
At time +2.00369s server received 1024 bytes from 10.1.1.1 port 49153
At time +2.00369s server sent 1024 bytes to 10.1.1.1 port 49153
At time +2.00737s client received 1024 bytes from 10.1.1.2 port 9اوکی؟:)توضیح اینکه چه اتفاقی می افته به خوبی توی مرجع زیر داده شده.Wireless Network Simulation, A Guide using Ad Hoc Networks and the ns-3 simulator, chapter 4.علاوه بر اون یه جزوۀ خلاصه و مفید از ns-3 هست به نام ns-3 cheat book که میتونید بهش مراجه کنید.</description>
                <category>علی کارگری</category>
                <author>علی کارگری</author>
                <pubDate>Sun, 30 Jul 2023 21:14:22 +0330</pubDate>
            </item>
                    <item>
                <title>پیش از شروع کار</title>
                <link>https://virgool.io/@ali78kargari/%D9%BE%DB%8C%D8%B4-%D8%A7%D8%B2-%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D8%A7%D8%B1-hzncksmsbz7w</link>
                <description>پس از نصب اوبونتو روی VM باید یه سری کارها کرد.بعد از تعیین منابع و تنظیم واسطهای شبکه (یک واسط NAT یا بریج و یک واسط host-Only) اولین کار اینه که باید تنظیمات این کارتها رو داخل لینوکس بررسی کنیم. دستورهای مفیدip a
ifconfig -a
sudo dhclientاگر ifconfig کار نکرد با دستور زیر نصبش میکنیم.sudo apt update
sudo apt install net-toolsاصولا بعد از زدن dhclient، اینترفیس مربوط به host-only با پروتکل DHCP آیپی میگیره. آیپی رو یادداشت میکنیم از توی سیستم هاست بهش ssh میزنیم.ssh username@ipاما احتمالا اگه بخواهیم از روت ssh بزنیم به مشکل میخوریم. برای اینکار اول میاییم پیکربندی ssh-server رو چک میکنیم:sudo vim /etc/ssh/sshd_configتغییرات زیر رو اعمال میکنیم---#PermitRootLogin prohibit-password
+++PermitRootLogin yesبعدش هم پسورد یوزر روت رو عوض (یا آپدیت) میکنیمsudo passwd rootو الان میتونیم به root یکراستssh بزنیم.ssh root@ipموضوع بعدی تغییر DNS برای دور زدن تحریمهاست (smart DNS). میتونیم خیلی راحت با ویرایش فایل /etc/hostname تغییرش بدیم (موقت) یا بطور دایم با پیکربندی NetPlan این کار رو بکنیم:sudo vim /etc/netplan/00-installer-config.yamlاین فایل yaml رو خیلی راحت میشه ویرایش کرد. از نمونه های زیر ایده میگیریم برای تعریف DNS و IP در اینترفیسی که میخواهیم.آدرس IP های شکن ایناست: network:
  version: 2
  renderer: networkd
  ethernets:
    ens5:
      addresses: []
      dhcp4: yes
      nameservers:
        addresses: [178.22.122.100, 185.51.200.2]یا برای اختصاص دستی IP :network:
    version: 2
    renderer: networkd
    ethernets:
       enp0s3:
       dhcp4: no
       addresses: [192.168.1.230/24]
       gateway4: 192.168.1.254
       nameservers:
          addresses: [8.8.4.4,8.8.8.8]بعد از تنظیم دستور زیر این تغییرات را اعمال میکنه.sudo netplan applyمعمولا به بسته های زیر هم نیاز پیدا میکنیم. پس همین اول کار نصبشون کنیم بهتره.sudo apt update
sudo apt install build-essential
...تمام.</description>
                <category>علی کارگری</category>
                <author>علی کارگری</author>
                <pubDate>Sun, 30 Jul 2023 17:54:30 +0330</pubDate>
            </item>
            </channel>
</rss>