آموزش استفاده از TCP traceroutetrace route چیست ؟فرض کنید اتصال شما به یک سرور از دست میره. اولین احتمالی که هست خاموش شدن یا مشکل کانفیگ سرور هستش. ولی زمانی که اینترنت خودتون رو تغییر بدید، مثلا به جای ایرانسل از همراه اول استفاده می کنید اتصال برقرار میشه.! اولین احتمالی که هست مشکل در مسیر ارسال پکت هاست. برای چک کردن مسیر ارسال از tracet route استفاده میکنن. trace route چطوری کار میکنه ؟ زمان ارسال پکت های چیزی بهشون اضافه میشه به نام TTL که مخفف Time to Live هستش. یعنی مدت زمان زنده ماندن پکت شما و یک عددی رو داخل خودش نگاه میداره، این عدد میتونه 1 تا 255 باشه ( این محدودیت به دلیل مقدار حافظه ای هست که برای این عدد در نظر گرفته شده ). البته معیارش زمان نیست معیار تعداد روتر هایی داخل مسیر هستش خب این یعنی چی ؟ فرض میکنیم شما پکتی رو ارسال میکنید با TTL = 50 و ip =1.1.1.1 زمانی که پکت از مودم شما عبور میکنه. TTL تغییر میکنه به 49 ، وقتی از روتر بالا دستی مودم شما عبور میکنه TTL میشه 48 و این روند ادامه پیدا میکنه تا زمانی که برسه به مقصد که 1.1.1.1 هست.پس TLL بعد از گذاشت از هر روتر یکی ازش کم میشه حالا بیایم فرض کنیم قبل از این که پکت به مقصد ما برسه TTL پکت ما داخل یکی از روتر ها 0 بشه ، حالا چه اتفاقی می افته ؟پکت حذف میشه ولی این آخر کار نیست. روتری که پکت ما رو حذف کرده یک پیام برای ما ارسال میکنه این پیام با پروتکل ICMP که ازش برای عیب یابی در شبکه استفاده میکنن ارسال میشه این پروتکل در لایه network کار میکنه این قسمت رو دقت کنید ! هر نوع پکتی ارسال کنید با هر پروتکلی ( icmp،udp،tcp) زمانی که TTL =0 بشه پیامی که از سمت روتر برای ما ارسال میشه icmp هستش داخل این پیام آدرس ip روتر نوشته شده البته اطلاعات دیگه ای هم به ما میده حالا اگر ما بخوایم آدرس تمام روتر های مسیر رو پیدا کنیم میتونیم یک پکت درست کنیم با TTL که خودمون مشخص کردیم به این صورت که اگر بخوایم ip روتر اول رو پیدا کنیم پکتی ارسال میکنیم با TTL = 1 و زمانی که به روتر اول میرسه TTL میشه 0 و روتر برای ما یک پیام ارسال میکنه ، حالا اگه بخوایم ip روتر دوم رو پیدا کنیم پکتی ارسال میکنیم با TTL = 2 چطوری از trace route استفاده کنیم ؟ ویندوز : در ویندوز باید وارد cmd بشید و از دستور tracert استفاده کنید به این صورت tracert 1.1.1.1این دستور با پروتکل icmp کار میکنه لینوکس :در لینوکس از دو دستور traceroute و tracepath میتونید استفاده کنید tracepath داخل سیستم عامل موجوده ولی برای traceroute باید برنامه نصب بشه دستور نصب :ubuntu : apt install traceroutecentos : yum install tracerouteهر دو دستور از پورتکل udp برای trace استفاده میکنن. با سویچ -T در traceroute میتونید از پروتکل tcp هم استفاده کنید.آموزش استفاده از TCP traceroute در ویندوزبرای استفاده از tracetcp در ویندوز به دو نرم افزار WinPcap و tracetcp نیاز دارید (لینک دانلود نرم افزار ها )ابتدا نرم افزار WinPcap را نصب کنید سپس نرم افزار tracetcp را داخل مسیر C:\Windows\System32 قرار بدینبعد از نصب وارد cmd بشید و دستور tracetcp را با ip مدنظرتون وارد کنید آموزش ویدیویی استفاده از TCP traceroute:.h_iframe-aparat_embed_frame{position:relative;} .h_iframe-aparat_embed_frame .ratio {display:block;width:100%;height:auto;} .h_iframe-aparat_embed_frame iframe {position:absolute;top:0;left:0;width:100%; height:100%;}
ادامه مطلببلاگ ها
لیست تمامی بلاگ هانصب وردپرس در اوبونتو ubuntuدر این آموزش به نحوه ی نصب وردپرس در سیستم عامل اوبونتو ubuntu می پردازیم.سعی شده این آموزش ساده در نظر گرفته شده باشد، و به دور از پیچیدگی های خاصی به این مبحث پرداخته شده باشد.پیشنیاز هایک سرور ابونتو با دسترسی rootیک دامنه، که با استفاده از BIND به سرور متصل شده باشد. ( می توانید با استفاده از آموزش راه اندازی DNS سرور دامنه خود را به سرور متصل کنید )پیکربندی سروربررسی DNS سروربرای ادامه کار باید مطمئن شویم که دامنه ما به سرور ست شده است. ما این کار را با استفاده از دستور ping انجام خواهیم داد.با استفاده از دستور زیر ما این کار را انجام می دهیم ( مثلا دامنه ی ما siraei.com است )ping siraei.comخروجی به دست آمده چیزی شبیه زیر استC:\Users\Siraei>ping siraei.comPinging siraei.com [127.0.0.1] with 32 bytes of data:Reply from 127.0.0.1: bytes=32 time=51ms TTL=52Reply from 127.0.0.1: bytes=32 time=48ms TTL=52Reply from 127.0.0.1: bytes=32 time=50ms TTL=52Reply from 127.0.0.1: bytes=32 time=47ms TTL=52Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: Minimum = 47ms, Maximum = 51ms, Average = 49msالبته در اینجا به جای 127.0.0.1 ما باید ip سرور خود را مشاهده کنیم.اگر در خروجی ip سرور را مشاهده نکردید باید کمی صبر کنید تا رکورد های DNS آپدیت شوند، یا به عبارت دیگر نیم سرور ها در سطح اینترنت پخش شوند.آپدیت کردن سیستمما باید سیستم خود را آپدیت کنیم.apt updateسپسapt upgradeایجاد کاربردر این جا یک یوزر یا کاربر برای استفاده از وردپرس ایجاد می کنیم. ( به جای ali می توانیم نام دلخواه خود را وارد کنیم.adduser aliسپس، پسورد یوزر مورد نظر را وارد می کنیم.تنظیم ساعت و تایم زون (timezone)در ادامه ما نیاز به ست کردن ساعت و تاریخ و همچنین در کل تایم زون سرور داریم، که با استفاده از دستور زیر آن را انجام می دهیم.dpkg-reconfigure tzdataایجاد یک دایرکتوری ( پوشه ) برای وردپرسخب، ما باید یک پوشه برای محل نصب وردپرس ایجاد کنیم، برای مثال :mkdir /var/www/wordpressپرمیژن ها یا همان مجوز های سطح دسترسی باید به یوزر ایجاد شده داده شود :chown ali:ali /var/www/wordpressنصب نرم افزار های مورد نیازنصب پکیج منیجر ارائه سرور مجازی وارز هلند...امکان ارائه سرور مجازی برای تست نفوذ با سیستم عامل کالی لینوکسسرور مجازی وارز
در CentOS ، منطقه ی زمانی در هنگام نصب تنظیم می شوند. اما به آسانی هم می توان در زمان دیگری هم تغییرات مورد نظر را انجام داد.استفاده ی صحیح از تایم زون یا منطقه ی زمانی برای بسیاری از وظایف ، عملکرد ها و پردازش های سیستم حیاتی است. برای مثال ، cron daemon از تایم زون یا منطقه ی زمانی سیستم برای اجرای کرون جاب ها (cron job) استفاده می کند، و در بررسی لاگ های سیستم (گزارش ها) مسئله ی یا منطقه ی زمانی بسیار حائز اهمیت است چرا که بر اساس همان تایم زون دسته بندی و بررسی می شوند.در این آموزش ما به بررسی نحوه ی تغییر یا تنظیم منطقه ی زمانی (Timezone) در CentOS 7 می پردازیم.پیش نیاز هابرای این که بتوانیم timezone سیستم را تغییر دهیم باید حتما با یوزری که دارای سطح دسترسی روت یا sudo است به سیستم لاگین یا ورود کنیم.بررسی منطقهی زمانی فعلیدر CentOS و همچنین بیشتر توزیع های لینوکس امروزی ، ما می توانیم با دستور timedatectl هم منطقه ی زمانی و هم زمان را مشاهده و هم آن را تغییر دهیم.timedatectlبا توجه به خروجی زیر می توانیم مشاهده کنیم که منطقه زمانی سیستم بر روی UTC تنظیم شده است : Local time: Wed 2019-02-06 22:43:42 UTC Universal time: Wed 2019-02-06 22:43:42 UTC RTC time: Wed 2019-02-06 22:43:42 Time zone: Etc/UTC (UTC, +0000) NTP enabled: noNTP synchronized: yes RTC in local TZ: no DST active: n/aمنطقه زمانی سیستم با پیوند نمادین /etc/localtime به یک شناسه منطقه زمانی باینری در پوشه /usr/share/zoneinfo پیکربندی میشود. بنابراین، همچنین می توان برای بررسی تایم زون مسیری که همان پیوند نمادین به آن اشاره می کند را با دستور ls نمایش داد:ls -l /etc/localtimeخروجی :lrwxrwxrwx. 1 root root 29 Dec 11 09:25 /etc/localtime -> ../usr/share/zoneinfo/Etc/UTCتغییر Timezone در CentOS 7 :قبل از تغییر منطقه ی زمانی ، ما باید نام اصلی و طولانی آن را پیدا کنیم. قرار داد نام گذاری تایم زون معمولا در فرمت "Region/City" یا "منطقه/شهر" است.برای لیست کردن تمامی تایم-زون های در دسترس ، ما می توانیم یا لیست تمامی فایل های پوشه ی /usr/share/zoneinfo را مشاهده کنیم و یا مجددا از دستور timedatectl استفاده کنیم:timedatectl list-timezonesخروجی :...America/TijuanaAmerica/TorontoAmerica/TortolaAmerica/VancouverAmerica/WhitehorseAmerica/Winnipeg...هنگامی که تشخیص دادیم کدام تایم زون برای مکان و منطقه ی ما دقیق است، دستور زیر را در حالت کاربر sudo اجرا می کنیم:sudo timedatectl set-timezone your_time_zoneبرای مثال، زمانی که میخواهیم منطقه ی زمانی سیستم را به America/Toronto تغییر بدهیم از دستور زیر استفاده می کنیم:sudo timedatectl set-timezone America/Torontoسپس، برای تایید تغییرات، باید دستور timedatectl را وارد کنیم:timedatectl Local time: Wed 2019-02-06 17:47:10 EST Universal time: Wed 2019-02-06 22:47:10 UTC RTC time: Wed 2019-02-06 22:47:10 Time zone: America/Toronto (EST, -0500) NTP enabled: noNTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 2018-11-04 01:59:59 EDT Sun 2018-11-04 01:00:00 EST Next DST change: DST begins (the clock jumps one hour forward) at Sun 2019-03-10 01:59:59 EST Sun 2019-03-10 03:00:00 EDTتغییر تایم زون با استفاده از یک پیوند نمادین یا (Symlink)اگر از نسخه قدیمیتری از CentOS استفاده می کنیم و دستور timedatectl روی سیستم مورد نظر وجود نداشته باشد، میتوان با پیوند نمادین /etc/localtime به فایل تایم زون در پوشه ی /usr/share/zoneinfo، منطقه زمانی را تغییر داد.فایل یا پیوند نمادین فعلی مورد نظر یعنی /etc/localtime را با دستور زیر پاک می کنیم:sudo rm -rf /etc/localtimeتایم زون یا منطقه ی زمانی مورد نظز را که در نظر داریم پیکربندی کنیم شناسایی کرده و یک پیوند نمادین ایجاد می کنیم:sudo ln -s /usr/share/zoneinfo/America/Toronto /etc/localtimeدر مرحله ی بعدی می توانیم یا با لیست کردن فایل /etc/localtime و یا با استفاده از دستور date این کار را تایید کنیم:dateخروجی :Wed Feb 6 17:52:58 EST 2019جمع بندی:خب ، ما در این آموزش به بررسی چگونگی تغییر تایم زون یا همان منطقه ی زمانی در سیستم CentOS پرداختیم.درصورت هرگونه سوال یا مشکل از طریق کامنت با ما در ارتباط باشید.
ادامه مطلبنصب و تامین امنیت phpMyAdmin با Nginx در CentOS 7سیستم های مدیریت پایگاه داده وابسته همانند MySQL و MariaDB برای بخش قابل توجهی از وب سایت ها و برنامه های کاربردی مورد نیاز هستند. با این حال همه افراد و کاربران با مدیریت دیتا ها و داده های خود از طریق خط فرمان احساس راحتی نمی کنند.برای حل این مشکل، یک پروژه ای با نام phpMyAdmin برای عرضه ی جایگزین یک رابط مبتنی بر وب ساخته شد. در این آموزش، ما آموزش نصب و تامین امنیت phpMyAdmin با Nginx در CentOS 7 را به شما آموزش خواهیم داد. این تنظیمات را بر روی وب سرور Nginx نصب کرده و انجام خواهیم داد. که دارای مشخصات و عمل کرد خوبی است و همچنین لود های سنگین را نسبت به وب سرور های دیگر می تواند هندل یا رسیدگی کند.پیش نیاز هاقبل از شروع، ما یک سری پیش نیاز را باید مستقر و آماده کنیم.برای مطمئن شدن از پایه ی سخت و استوار بر این سیستم، باید از آموزش های مربوط به CentOS استفاده کنیم، همچنین باید برای اجرای فرمان ها باید با یوزر با دسترسی root و یا دستور sudo استفاده کرد.پیش نیاز دوم در این آموزش، نحوه ی راه اندازی و نصب LEMP بر روی سرور با سیستم عامل CentOS است.زمانی که سرور ما به درستی عملکرد های موارد فوق را انجام می دهد، میتوان مابقی آموزش را دنبال کرد.قدم اول - نصب phpMyAdminدر حال حاضر در پلتفرم، LEMP که شامل ( Linux, Nginx, MariaDB, and PHP ) است ، می توانیم بلافاصله نصب phpMyAdmin را شروع کنیم. البته متاسفانه phpMyAdmin در مخازن یا همان رپرزتوری CentOS 7 موجود نیست.برای دریافت پکیج های مورد نظر ما نیاز دارید یک مخزن اضافه به سیستم مان اضافه کنیم. مخزن EPEL یا (Extra Packages for Enterprise Linux) در خود دارای خیلی از پکیج های اضافه است. که به طور مثال phpMyAdmin که ما به آن نیاز داریم.با دستور زیر آن را نصب می کنیم:sudo yum install epel-releaseاکنون به مخزن EPEL دسترسی داریم، و phpMyAdmin را با دستور زیر نصب می کنیم:sudo yum install phpmyadminخب! اکنون این نصب کامل شده است.برای اینکه وب سرور Nginx به phpMyAdmin دسترسی داشته باشد، ما فقط باید یک لینک نمادین از فایل های نصب شده به پوشه ی اصلی Nginx ایجاد کنیم. با استفاده از دستور زیر :sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/htmlهمچنین باید پردازشگر PHP خود را برای یکبار مجددا را اندازی کنیم تا مطمئن شویم ماژول های اضافی PHP نصب شده به درستی لود یا اجرا می شوند:sudo systemctl restart php-fpmبا این کار اکنون نصب phpMyAdmin ما اجرایی شده است. برای دسترسی به اینترفیس یا رابط مورد نظر در ادامه ی دامین یا آی پی آدرس خود /phpMyAdmin را اضافه می کنیم:http://server_domain_or_IP/phpMyAdminدر این مقاله آموزش نصب و تامین امنیت phpMyAdmin با Nginx در CentOS 7 را برای شما توضیح دادیم. درصورت هرگونه سوال یا مشکل از طریق کامنت با ما در ارتباط باشید.
ادامه مطلببک آپ گیری خودکار از MongoDBبک آپ گیری خودکار از دیتابیس MongoDB عمل خوبی در برابر وقوع اتفاقات ناگوار برای سرور است. به طور مشخص، قرار گیری یک نسخه از همه چیز بر روی جایی غیر از دیتابیس، در صورت وقوع اتفاقی به ما اطمیان خاطر می دهد. همچنین ما می توانیم به سرعت آن را بازیابی و اجرا نماییم.بسیاری از شرکت های هاستینگ، سرویس بک آپ گیری را به عنوان یک سرویس پولی در نظر می گیرند، اما زمانی که ما می توانیم خودمان بک آپ گیری و پشتیبان گیری را به صورت شبانه و در چند دقیقه راه اندازی کنیم، چرا باید پول پرداخت کنیم.خب! در اینجا به طور خلاصه به عملیات ی که قرار است انجام دهیم، می پردازیم:راه اندازی اسکریپتی خودکاری که یک بک آپ فولدر با تاریخ جاری ایجاد کرده، و پایگاه داده MongoDB ما را به آن فولدر یا دایرکتوری اکسپورت می کند.این اسکریپت را بر روی سروری قرار می دهیم که بتواند اسکریپت های cron را برای ما اجرا کند.در نهایت cron را برای اجرای بک آپ گیری شبانه تنظیم می کنیم.قدم آغازینقبل از این که ما شروع به نوشتن اسکریپت کنیم، یک نقطه در سرور را برای فایل های بک آپ ایجاد می کنیم. برای نمونه، فرض می کنیم می خواهیم فایل های بک آپ خود را در root وب سرور و در پوشه ای با نام db_backups نگاه داریم.به سادگی این دایرکتوری یا پوشه را در سرور ایجاد می کنیم:mkdir /db_backupsقدم اول - نوشتن اسکریپتخب، ما یک شل اسکریپت کوچکی مبنی بر ایجاد یک دایرکتوری با نام تاریخ روز که پایگاه داده MongoDB را در آن اکسپورت می کند می نویسیم. که این اسکریپت چیزی شبیه به (اسکریپت) زیر است.:#!/bin/shDIR=`date +%m%d%y`DEST=/db_backups/$DIRmkdir $DESTmongodump -h <your_database_host> -d <your_database_name> -u <username> -p <password> -o $DESTدر بالا نمونه ی یک شل اسکریپت ای که یک دایرکتوری در فرمت MMDDYY را ایجاد می کند مشاهده می کنیم، همچنین مسیر کامل دایرکتوری ایجاد شده را کنار هم قرار می دهد، دایرکتوری مورد نظر را ایجاد کرده؛ و در نهایت، برای اکسپورت کردن دیتابیس یا همان پایگاه داده در دایرکتوری از ابزار Mongo's mongodump استفاده می کند.این اسکریپت را ایجاد می کنیم و آن را در جایی روی سرور خود ذخیره کرده، مثلا در ~/scripts یا جای مشابه دیگری که ما تشخیص می دهیم.قدم دوم - تنظیم کرون (cron) برای اجرای اسکریپت به صورت شبانهاکنون که اسکریپت بک آپ خود را برای اجرا و به صورت آماده داریم. پس فقط ما نیاز به اجرا به صورت شبانه داریم تا این عمل یعنی بک آپ گیری انجام شود. این عمل به راحتی با استفاده از cron برای اجرای اسکریپت صورت می پذیرد.بر روی سرور خودمان و به راحتی crontab را همانند زیر اجرا می کنیم:sudo crontab -eدر فایل مذکور، زیر تمام نظرات یا کامنت ها اما در در بالا، خط زیر را وارد می کنیم:45 1 * * * ../../scripts/db_backup.shدر کرون، هر خط نشان دهنده یک ورودی ثبت شده است.فرمت یا قالب هر ورودی به cron می گوید که چگونه عمل کند و دارای 5 فیلد متفاوت برای تعیین روز و ساعت اجرای دستور است. این فیلدها به ترتیب قرار می گیرند: دقیقه، ساعت، روز ماه، ماه، روز هفته. ستاره به این معنی است که در هر تقسیم فاصله (وقفه) اجرا می شود (بنابراین، اگر یک ستاره را در قسمت دوم قرار دهید، هر ساعت اجرا می شود).بنابراین، در ورودی بالا، به cron میگوییم که اسکریپت ما (مسیری را که در ورودی میبینید)، در ساعت 1:45 صبح هر شب اجرا کند. خب! فقط crontab خود را ذخیره کرده و خارج می شویم.نکات اضافهکارهای دیگری که ممکن استبرای بهبود این اسکریپت انجام گیرد: پاک نمودن دایرکتوری هایی که بیشتر از یک ماه ایجاد شده اند، البته به شرطی که نیازی به این بک آپ ها نداریم، پس به سادگی دایرکتوری های قدیمی را همزمان با پشتیبان گیری شبانه خود حذف می کنیم.همچنین باید اسکریپت خود را با استفاده از متغیرهای مختلفی نظیر رمز عبور یا همان پسورد ایمن کنیم. قرار دادن پسورد دیتابیس در اسکریپتی نظیر این، بسیار می تواند خطرناک باشد. در صورتی که اسکریپت مقابل افراد اشتباه قرار گیرد،باید از یک متغیر برای پر کردن رمز عبور خود استفاده کنیم. همچنین ممکن است اتصال به Mongo از طریق ssh را ما به عنوان یک مسئله در نظر بگیریم، اما متاسفانه این مسئله خارج از محدوده این آموزش است.در این آموزش نحوه بک آپ گیری خودکار از MongoDB را به شما آموزش دادیم . با این دید که اگر شما بدانید مسئله ی بک آپ چقدر حائز اهمیت است (در صورت وقوع اتفاقات ناگوار)، امیدواریم این مقاله به شما کمک شایانی کند!
ادامه مطلبدر این آموزش ما بررسی میکنیم که چگونه به محیط گرافیکی اوبونتو 20.04 و در gnome Desktop لاگین یا ورود کنیم.به طور خلاصه موارد زیر را یاد می گیریم:چگونه پسورد root را تنظیم و ست نماییمچگونه GDM را پیکربندی و لاگین و ورود کاربر root در محیط گرافیکی را اجازه دهیمچگونه PAM را پیکربندی و لاگین و ورود کاربر root در محیط گرافیکی را اجازه دهیمنرم افزار ها و موارد مورد نیازسیستم :اوبونتو 20.04 نصب شده.نرم افزار :نیازی به نرم افزار خاصی نیست.موارد دیگر :دسترسی root و یا به صورت sudo به سیستم لینوکس از طریق کامند.قرارداد یا کنوانسیون ها :الزام دسترسی با یوزر root به لینوکس، همچنین یا کاربری که با sudo امکان دسترسی به root داشته باشد و بتواند با این سطح دسترسی دستورات را اجرا نماید.نیاز به یک یوزر یا کاربر با سطح دسترسی متعارف و معمولی برای اجرای دستورات وجود دارد.دستورات اجازه ی ورود به ابونتو 20.04 در محیط گرافیکی یا GUI به صورت قدم به قدمقدم اولتنظیم پسورد کاربر root$ sudo passwdدر فرمان بالا، ما بر روی یوزر root پسوردی را تنظیم می کنیم که همچنین در موقع لاگین و یا ورود به محیط گرفیکی نیز مورد استفاده قرار می گیرد.قدم دومدر مرحله ی بعد، نیاز به ویرایش /etc/gdm3/custom.conf که فایل GDM می باشد و همچنین اجازه ورود کاربر root را می دهد، می باشد.در اینجا ما با ویرایشگر مورد علاقه خود به ویرایش فایل مذکور با سطح دسترسی root می پردازیم، همچنین با توجه به تصویر بالا، سطر AllowRoot=true را حتما جایگذاری می کنیم.قدم سومسپس، فایل پیکربندی احراز هویت daemon PAM را که در /etc/pam.d/gdm-password قرار دارد، ویرایش می کنیم. و همچنین سطری که در آن اجازه ی لاگین با کاربر root را در محیط گرافیکی رد کرده و تکذیب می کند را در اصطلاح کامنت یا غیر فعال می کنیم.برای انجام این کار به ویاریش فایل /etc/pam.d/gdm-password می پردازیم و سپس یک # در سطری که در زیر به آن اشاره شده است اضافه می کنیم:auth required pam_succeed_if.so user != root quiet_successبا توجه به تصویر بالا، سطری که حق دسترسی کاربر root را به محیط گرافیکی رد میکند را کانت می کنیم.قدم چهارماتمام کار! در اینجا کافیست، سرور اوبونتو را ریبوت دهیم.با توجه به تصویر بالا بر روی Not listed? کلیک کرده و مشخصات root را وارد می کنیم.جمع بندیخب دوستان وان سروری! ما به پایان این آموزش رسیدیم.امیدواریم از این آموزش استفاده ی کامل رو ببرید. همچنین امیدواریم که با نظرات خود به بررسی و ایجاد آموزش های بیشتر به ما کمک کنید.
ادامه مطلبآموزش راه اندازی K3S , GlusterFS , Load balancerدر این آموزش ما نحوه ی کوبرنتیس کلاستر با استفاده از K3S می پردازیم. K3S یک توزیع کوبرنتیس سبک و کم حجم است که برای سرور های دیتاسنتری هتزنر نظیر CX11 که مجموعه ی وان سرور ارائه می دهد، است. علاوه بر این، ما در این آموزش ، راه اندازی لود بالانسر ابری که بارگیری SSL و ارسال ترافیک به سیستم کوبرنتیس ما را انجام می دهد، را فرا خواهیم گرفت. ما یاد خواهید گرفت که چگونه با استفاده از GlusterFS یک فایل سیستم توزیع شده و تکراری راه اندازی کنیم.موارد مورد نیاز و پیش نیاز هاما در این آموزش فرض می کنیم، که شما از طریق شرکت وان سرور یک سرور دیتاسنتری هتزنر تهیه نمودید و از طریق سایت ما به این سرور مورد نظر دسترسی دارید.در این آموزش از اصطلاحات و موارد پیشفرض زیر استفاده شده است:دامنه : <example.com>کلید SSH (یا همان SSH Key): <your_ssh_key>توکن مخفی تصادفی(Random secret token): <your_secret_token>توکن API سرور دیتاسنتری: <hetzner_api_token>آدرس های IP (IPV4) :K3S Master: 10.0.0.2K3S Node 1: 10.0.0.3K3S Node 2: 10.0.0.4Hetzner Cloud Load Balancer: 10.0.0.254قدم اول - ایجاد شبکه پرایوتاول، ما یک شبکه پرایوت ایجاد می کنیم؛ همچنین که از نود های کوبرنتیس ما برای ارتباط با یکدیگر تشکیل شده اند استفاده می کنیم. ما از شبکه ی 10.0.0.0/16 برای سابنت استفاده می کنیم.hcloud network create --name network-kubernetes --ip-range 10.0.0.0/16hcloud network add-subnet network-kubernetes --network-zone eu-central --type server --ip-range 10.0.0.0/16قدم دوم - ایجاد گروه تعیین سطح و سرورهادر ادامه، یک گروه قرارگیری "گسترش" یا "spread" برای سرورهای خود و سپس ماشین های مجازی ایجاد می کنیم.قدم دوم بخش اول - ایجاد گروه قرار گیری spread (اختیاری)گروه تعیین سطح برای تضمین این است که ماشین های مجازی ما (VMs) بر روی هاست های مختلف ایجاد شوند، پس در این مورد، اگر هاست خراب شود و یا از دسترس خارج شود، هیچ کدام از ماشین های مجازی دیگر را تحت تاثیر خود قرار نمی دهد.hcloud placement-group create --name group-spread --type spreadقدم دوم بخش دوم - ایجاد ماشین های مجازیدر این جا ما از دبیان 10 استفاده می کنیم.hcloud server create --datacenter nbg1-dc3 --type cx11 --name master-1 --image debian-10 --ssh-key <your_ssh_key> --network network-kubernetes --placement-group group-spreadhcloud server create --datacenter nbg1-dc3 --type cx11 --name node-1 --image debian-10 --ssh-key <your_ssh_key> --network network-kubernetes --placement-group group-spreadhcloud server create --datacenter nbg1-dc3 --type cx11 --name node-2 --image debian-10 --ssh-key <your_ssh_key> --network network-kubernetes --placement-group group-spreadقدم سوم - ایجاد و اعلام فایروالخب، حالا که سرور های ما ایجاد شده اند و همچنین فعال هستند، با هم یک فایروال را ایجاد و آن را در ترافیک ورودی و خروجی محدود می کینم(به نوعی به تنظیم آن میپردازیم). ممکن ما فایروال را با توجه به نیاز های خودمان (نیاز باشد که) کمی کاستومایز کنیم.ایجاد فایروال:hcloud firewall create --name firewall-kubernetesاجازه یا Allow دادن ورودی SSH و ICMP :hcloud firewall add-rule firewall-kubernetes --description "Allow SSH In" --direction in --port 22 --protocol tcp --source-ips 0.0.0.0/0 --source-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow ICMP In" --direction in --protocol icmp --source-ips 0.0.0.0/0 --source-ips ::/0اجازه یا Allow دادن خروجی ICMP، DNS، HTTP، HTTPS و NTP:hcloud firewall add-rule firewall-kubernetes --description "Allow ICMP Out" --direction out --protocol icmp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow DNS TCP Out" --direction out --port 53 --protocol tcp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow DNS UDP Out" --direction out --port 53 --protocol udp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow HTTP Out" --direction out --port 80 --protocol tcp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow HTTPS Out" --direction out --port 443 --protocol tcp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow NTP UDP Out" --direction out --port 123 --protocol udp --destination-ips 0.0.0.0/0 --destination-ips ::/0اعمال رول های فایروال بر روی هر سه سرورها:hcloud firewall apply-to-resource firewall-kubernetes --type server --server master-1hcloud firewall apply-to-resource firewall-kubernetes --type server --server node-1hcloud firewall apply-to-resource firewall-kubernetes --type server --server node-2قدم چهارم - نصب K3Sخب خب! الان زمان K3S رسیده. قبل از این که نود اصلی و نود های عامل را آماده کنیم، اول سیستم را آپگرید کرده و AppArmor را نصب می کنیم. به سرور مجازی های ایجاد شده SSH کرده و سپس دستور های زیر را بر روی همه ی آن ها اجرا می کنیم:apt updateapt upgrade -yapt install apparmor apparmor-utils -yقدم چهارم بخش اول - نصب K3S بر روی نود اصلیبه نود اصلی (یا مستر نود) SSH می کنیم، و دستورات زیر را برای نصب و اجرا K3S سرور اجرا می کنیم:curl -sfL https://get.k3s.io | sh -s - server \ --disable-cloud-controller \ --disable metrics-server \ --write-kubeconfig-mode=644 \ --disable local-storage \ --node-name="$(hostname -f)" \ --cluster-cidr="10.244.0.0/16" \ --kube-controller-manager-arg="address=0.0.0.0" \ --kube-controller-manager-arg="bind-address=0.0.0.0" \ --kube-proxy-arg="metrics-bind-address=0.0.0.0" \ --kube-scheduler-arg="address=0.0.0.0" \ --kube-scheduler-arg="bind-address=0.0.0.0" \ --kubelet-arg="cloud-provider=external" \ --token="<your_secret_token>" \ --tls-san="$(hostname -I | awk '{print $2}')" \ --flannel-iface=ens10برای اطلاعات بیشتر در باره ی K3S می توانید، به اسناد ارائه شده یا همان داکیومنشن آن (در این لینک) مراجعه کنید. اما به طور خلاصه :ما برای ذخیره ی بیشتر مقداری از حافظه؛ metrics server را غیر فعال می کنیم.ما ذخیره سازی لوکال را غیر فعال می کنیم چون قرار است از GlusterFS استفاده کنیم.ما CIDR کلاستر را بر روی 10.244.0.0/16 تنظیم می کنیم.ما سه مورد یعنی : Kube Controller ، همچنین Kube Proxy ، و Kube Scheduler را بر روی هر آدرسی به حالت پذیرا قرار می دهیم(با توجه به فایروال)ما رمز توکن شیر شده را به مورد فوق تنظیم کرده ایم، یعنی : <your_secret_token>قدم چهارم بخش دوم - نصب Hetzner Cloud Controller Managerهنوز بر روی نود اصلی قرار داریم، برای نصب این مورد از دستور زیر استفاده می کنیم:kubectl -n kube-system create secret generic hcloud --from-literal=token=<hetzner_api_token> --from-literal=network=network-kuberneteskubectl apply -f https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/latest/download/ccm-networks.yamlقدم چهارم بخش سوم - نصب کنترل کننده ی ارتقا سیستم (اختیاری)دستور زیر آپگرید کننده ی K3S را ارائه می دهد:kubectl apply -f https://github.com/rancher/system-upgrade-controller/releases/latest/download/system-upgrade-controller.yamlقدم چهارم بخش چهارم - نصب K3S بر روی نود عاملاکنون که سرور K3S ما راه اندازی شده است، به دو نود عامل SSH کرده و دستورات زیر را برای نصب K3S و ارتباط آن با سرور اجرا می کنیم:curl -sfL https://get.k3s.io | K3S_URL=https://10.0.0.2:6443 K3S_TOKEN=<your_secret_token> sh -s - agent \ --node-name="$(hostname -f)" \ --kubelet-arg="cloud-provider=external" \ --flannel-iface=ens10قدم پنجم - نصب GlusterFS (اختیاری)GlusterFS یک نرم افزار رایگان و اوپن سورس (منبع باز) سیستم فایل شبکه به صورت مقیاس پذیر است. میتوان از آن برای تکثیر فایلها در تمام ماشینهای مجازی خود استفاده کنیم تا pod های ما بدون توجه به اینکه در کدام نود در حال اجرا هستند، به ذخیرهسازی دائمی خود دسترسی داشته باشند.قدم پنجم بخش اول - آماده کردن تمام نود هابه هر 3 سرور SSH کرده و دستورات زیر را برای نصب، فعال نمودن و اجرا کردن، سرور Gluster بر روی همه ی ماشین ها اجرا می کنیم:wget -O - https://download.gluster.org/pub/gluster/glusterfs/9/rsa.pub | apt-key add -echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/9/LATEST/Debian/buster/amd64/apt buster main > /etc/apt/sources.list.d/gluster.listapt update && apt install -y glusterfs-serversystemctl enable glusterd && systemctl start glusterdفایل سیستم کنترلی Gluster در پوشه ای به نام brick قرار دارد. همچنین توسط GlusterFS نصب شده است. با دستورات زیر دایرکتوری های لازم را ایجاد کنیم:mkdir -p /data/glusterfs/k8s/brick1mkdir -p /mnt/gluster-k8sقدم پنجم بخش دوم - تنظیم کلاسترفقط بر روی نود اصلی، 2 نود دیگر را به عنوان همتا اضافه می کنیم:gluster peer probe 10.0.0.3gluster peer probe 10.0.0.4تایید کردن وضعیت بر روی نود اصلی و نود های فرعی:gluster peer statusقدم پنجم بخش سوم - ایجاد volumeدر نود اصلی خودمان، دستور زیر را برای ایجاد و شروع یک volume تکراری اجرا می کنیم:gluster volume create k8s replica 3 \ 10.0.0.2:/data/glusterfs/k8s/brick1/brick \ 10.0.0.3:/data/glusterfs/k8s/brick1/brick \ 10.0.0.4:/data/glusterfs/k8s/brick1/brick \ forcegluster volume start k8sgluster volume infoقدم پنجم بخش چهارم - اجرا کردن GlusterFS volumeبر روی هر سه نود GlusterFS volume جدید اجرا شده را مونت می کنیم:echo "127.0.0.1:/k8s /mnt/gluster-k8s glusterfs defaults,_netdev 0 0" >> /etc/fstabmount /mnt/gluster-k8sقدم ششم - تنظیم لود بالانس (load balancing)در اینجا ما به طور مثال از لود بالانسر هتزنر SSL offloading و برای مسیریابی رکوئست های HTTP به راه اندازی K3S استفاده می کینم.قدم ششم بخش اول - فعال کردن پروتکل پراکسی در Traefikبا استفاده از دستورات زیر این عمل را انجام می دهیم:cat <<EOF > /var/lib/rancher/k3s/server/manifests/traefik-config.yamlapiVersion: helm.cattle.io/v1kind: HelmChartConfigmetadata: name: traefik namespace: kube-systemspec: valuesContent: |- additionalArguments: - "--entryPoints.web.proxyProtocol.trustedIPs=10.0.0.254" - "--entryPoints.web.forwardedHeaders.trustedIPs=10.0.0.254"EOFقدم ششم بخش دوم - ایجاد load balancer (متعادل کننده بار)متعادل کننده بار یا همان لود بالانسر را ایجاد کنیم و با استفاده از IP پرایوت ثابت 10.0.0.254 آن را به شبکه پرایوت یا خصوصی متصل می کنیم:hcloud load-balancer create --type lb11 --location nbg1 --name lb-kuberneteshcloud load-balancer attach-to-network --network network-kubernetes --ip 10.0.0.254 lb-kubernetesسه ماشین مجازی خودمان را به عنوان تارگت ها اضافه می کنیم و مطمئن می شویم که ترافیک با استفاده از شبکه پرایوت هدایت می شود:hcloud load-balancer add-target lb-kubernetes --server master-1 --use-private-iphcloud load-balancer add-target lb-kubernetes --server node-1 --use-private-iphcloud load-balancer add-target lb-kubernetes --server node-2 --use-private-ipبا استفاده از Let's Encrypt یک گواهی یا همان سرتیفیکیت برای <example.com> ایجاد می کنیم و <certificate_id> را می گیریم:hcloud certificate create --domain <example.com> --type managed --name cert-t1hcloud certificate listبا استفاده از پروتکل پروکسی، سرویس HTTP را برای <example.com> اضافه می کنیم و بررسی سلامت را فعال می کنیم:hcloud load-balancer add-service lb-kubernetes --protocol https --http-redirect-http --proxy-protocol --http-certificates <certificate_id>hcloud load-balancer update-service lb-kubernetes --listen-port 443 --health-check-http-domain <example.com> قدم هفتم - تست نمودن setup انجام شدهتنظیمات و برپایی و ست آپ ما که مربوط به K3S است به اتمام رسیده است. خب وقت این رسیده که از nginx و سرویس HTTP توسط K3S استفاده کنیم.قدم هفتم بخش اول - نوشتن در GlusterFS volumeیک index.html ایجاد می کنیم:mkdir /mnt/gluster-k8s/webtest1echo "Hello World!" > /mnt/gluster-k8s/webtest1/index.htmlقدم هفتم بخش دوم - اسقرار یک وب سرورnginx را مستقر و ایجاد کنید، GlusterFS volume را برای محتوای ثابت نصب می کنیم، پورت HTTP 80 را با استفاده از یک سرویس در معرض دید (انتشار) قرار می دهیم و یک مسیر ورودی Traefik برای دامنه خود ایجاد می کینم :cat <<"EOF" | kubectl apply -f -apiVersion: apps/v1kind: Deploymentmetadata: name: webtest1spec: replicas: 1 selector: matchLabels: app: webtest1 template: metadata: labels: app: webtest1 spec: volumes: - name: volume-webtest1 hostPath: path: "/mnt/gluster-k8s/webtest1" containers: - image: nginx name: nginx ports: - name: port-nginx containerPort: 80 volumeMounts: - mountPath: "/usr/share/nginx/html" name: volume-webtest1 readOnly: false---apiVersion: v1kind: Servicemetadata: name: webtest1spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: webtest1 type: ClusterIP---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata: name: webtest1spec: entryPoints: - web routes: - match: Host(`<example.com>`) kind: Rule services: - name: webtest1 port: 80EOFقدم هفتم بخش سوم - دسترسی به وب سایتاتمام کار، همچنین ما باید به وب سایت مان https://<example.com> دسترسی داشته باشیم.جمع بندیما با موفقیت یک کلاستر K3S Kubernetes را با یک نود سرور و دو نود عامل راه اندازی کردیم. متعادل کننده بار یا همان لود بالانسر ترافیک را به سیستم ما ارائه می دهد و بارگذاری HTTPS را نیز انجام داده و ما آماده هستیم تا مقداری حجم کار را روی K3S خود قرار دهیم.خب، دوستان وان سروری اگر سوال ، پیشنهاد و انتقادی هست در خدمتیم. میتونید سوال ها تون رو در قسمت نظرات بپرسین تا خدمتتون پاسخ بدیم.
ادامه مطلبتانل دو سرور لینوکس لوکال به اینترنتدر زیرساخت یک شبکه ( با توجه به مشترک بودن ) ممکن است، دارای یک شبکه ی پابلیک (Public) یا عمومی و همچنین یا یک شبکه ی خصوصی (Private) یا پراویت باشد. امکان دارد در شبکه عمومی به هیچ نوع ارتباطی به شبکه خصوصی نیازی نباشد، اما در مواردی در سابنت یا زیر شبکه ی خصوصی ممکن است نیاز به ارتباط با بیرون باشد. مثلا فرض کنید نیاز هست که در سابنت خصوصی ( شبکه ی مورد نظر پرایوت ) ما نیاز به آپدیت کردن فایروال یا نرم افزار های مورد نظر و یا بک آپ گیری بر روی اینترنت داشته باشیم. در این مقاله آموزش تانل دو سرور لینوکس لوکال به اینترنت را به شما آموزش خواهیم داد.از یک گیتوی سیستم عامل لینوکس با دو کارت شبکه برای متصل کردن دو شبکه به هم ( یا در اصطلاح بریج زدن یا پل زدن بین دو شبکه ) می توان استفاده کرد. یک کارت شبکه میتواند برای شبکه بیرونی یا پبلیک و دیگری برای شبکه ی خصوصی یا پرایوت در سرور استفاده شود. برای این کار از IP Forwarding و NAT برای هدایت ترافیک شبکه ( مسیریابی یا روتینگ ) استفاده می کنیم ( از شبکه خصوصی به شبکه عمومی ) .ترافیک سرور ها یا نود های داخلی به نظر می رسد از IP گیتوی سرچشمه میگیرند، ترافیک های ایجاد شده ی خارجی به گیتوی رسیده و از سابنت یا شبکه ی پرایوت قابل مشاهده نیستند.البته فایروال سرور گیتوی، می تواند ترافیک خروجی از شبکه را کنترل و اصلاح کند.موارد مورد نیازلینوکس CentOS یا Red Hat Enterpriseیک گیتوی به همراه 2 کارت شبکه که شامل موارد زیر است:کارت شبکه ی پابلیک با آدرس IP مثلا 203.0.113.110کارت شبکه ی پرایوت با آدرس IP مثلا 10.0.0.1یک سرور یا نود معمولی با همراه یک کارت شبکه :کارت شبکه ی پرایوت با آدرس IP مثلا 10.0.0.2انجام زیرساختدر این مثال ، زیر ساخت ما تشکیل شده است از یک گیتوی که شبکه پرایوت را به شبکه اینترنت بریج می کند.کارت شبکه ی اولیه ، eth0 ، گیتوی را به آدرسIP ، مورد نظر یعنی 203.0.113.110 و همچنین به همراه اینترنت پابلیک از طریق LAN 1 متصل می کند. کارت شبکه ی ثانویه ، یعنی eth1 ، آدرس IP مورد نظر یعنی 10.0.0.1 را به شبکه پرایوت بر روی LAN 2 متصل می کند.دومین سرور داخلی که در این جا با نام node 1 تعریف شده ، به همراه آدرس IP خودش یعنی 10.0.0.2 بر روی LAN 2 در شبکه ی پرایوت مستقر است. البته سرور ها یا نود های دیگر در این شبکه ، به همین ترتیب پیکربندی خواهند شد. تصویر زیر دیاگرامی تمثیلی است برای درک بهتر آنچه گفته شد.پیکربندی کارت شبکه ی گیتوی اولیهبه صورت پیشفرض ، آدرس IP پابلیک به گیتوی سرور اختصاص داده شده است. این مسئله برای این آموزش مناسب است، البته می توان از آدرس IP پابلیک استاتیک هم استفاده نمود.هیچ تغییری لازم نیست در /etc/sysconfig/network-scripts/ifcfg-eth0 انجام داد ، مگر این که آدرس IP استاتیک مد نظر ما باشد. به صورت پیش فرض فایل ifcfg-eth0 به احتمال خیلی زیاد کافی است ، اما پارامتر های اصلی پیکربندی را در زیر آمده است :BOOTPROTO="dhcp" DEVICE="eth0" ONBOOT="yes" پیکربندی کارت شبکه ی گیتوی ثانویهکارت شبکه ی ثانویه بر روی گیتوی سرور اصلی نیاز به استقرار آدرس IP استاتیک دارد. فایل /etc/sysconfig/network-scripts/ifcfg-eth1 باید همانند موارد زیر باشد.BOOTPROTO="static" IPADDR="10.0.0.1" NETMASK="255.255.255.0" DEVICE="eth1" ONBOOT="yes"سرویس شبکه ی مورد نظر برای انجام تغییرات باید یک بار ریست شود ، که البته در موقع ریست شدن ممکن است ما ارتباط مان را به مدت زمان محدود و خیلی کمی از دست بدهیم:systemctl restart NetworkManagerپیکربندی کارت شبکه سرور داخلیسرور node1 داخلی نیاز به استقرار آدرس IP پرایوت استاتیک و همچنین آدرس IP گیتوی که با آدرس IP گیتوی خروجی مطابقت دارد را نیازمند است. فایل /etc/sysconfig/network-scripts/ifcfg-eth0 را مطابق آدرس IP استاتیک ، نت مسک ، و گیتوی مطلبق زیر به روز رسانی یا آپدیت می کنیم.TYPE="Ethernet" BOOTPROTO="static" IPADDR="10.0.0.2" NETMASK="255.255.255.0" GATEWAY="10.0.0.1" DEVICE="eth0" ONBOOT="yes"سرویس نتورک منیجر ( NetworkManager ) بر روی هر سرور باید برای اعمال تغییرات یکبار ریست شوند.systemctl restart NetworkManagerفعال کردن IP Forwardingدر این مرحله ما نیاز داریم Forwarding یا حمل و نقل IP را از طریق خط فرمان اعمال کنیم.sysctl -w net.ipv4.ip_forward=1برای حفظ فورواردینگ در هنگام ریبوت یا خاموش و روشن شدن سرور نیاز است که در فایل /etc/sysctl.d/ip_forward.conf تغییرات زیر را اعمال کنیم.echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/ip_forward.confفعال کردن NATمسکیوریت کردن IP یا ( IP masquerading ) هم اکنون باید از طریق IPtables و با توجه به دستورات زیر فعال شود.firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 10.0.0.0/24firewall-cmd --reloadنود یا کامپیوتر داخلی هم اکنون باید با اینترنت جهانی و توسط گیتوی سرور اصلی در ارتباط باشد. برای اثباط این مسئله کافی است که از طریق کامپیوتر داخلی پینگ گرفته شود تا پینگ به سرور اصلی رسیده و تست شود.ping 8.8.8.8جمع بندیخب! ما در این آموزش سعی کردیم به صورت ساده و راحت و روان آموزش تانل دو سرور لینوکس لوکال به اینترنت را بیان کنیم. امیدواریم از این آموزش بهره کافی را برده باشید.
ادامه مطلبتفاوت و مقایسه IPv4 با IPv6در عصر تکنولوژیکی امروز ، ما شاهد یک جهش عظیم در استفاده از اینترنت و دستگاه های شبکه هستیم. هر خانه دارای یک لپ تاپ ، تلفن هوشمند ، ساعت دیجیتال ، دستگاه اینترنت اشیا ، قطعه اتوماسیون خانه و سایر دستگاه هایی است که به شبکه خانگی یا اینترنت متصل هستند. دستگاه ها از طریق پروتکل های مختلف شبکه با یکدیگر ارتباط برقرار می کنند که TCP و IP بیشترین پروتکل های مورد استفاده هستند. هر دستگاه متصل به شبکه باید دارای آدرس IP باشد که دستگاه را در شبکه مشخص می کند.این مقاله پروتکل اینترنت ، تفاوت و مقایسه IPv4 با IPv6 را توضیح می دهد.IP (پروتکل اینترنت) چیست؟ما که انسان هستیم ، با استفاده از نام خود ، یکدیگر را شناسایی کرده و با آن ارتباط برقرار می کنیم. به همین ترتیب ، در دنیای محاسبات ، دستگاه ها از آدرس های IP برای شناسایی و تعامل با یکدیگر استفاده می کنند. یک زبان مشترک که همه دستگاه های محاسباتی برای برقراری ارتباط با یکدیگر استفاده می کنند ، به عنوان پروتکل شناخته می شود. این پروتکل مانند زبان های انسانی دارای مجموعه ای از قوانین است که داده ها را فرمت و پردازش می کند.پروتکل اینترنت (IP) مجموعه ای از قوانین است که آدرس دهی و مسیریابی داده ها بین رایانه ها را مشخص می کند. بیشتر از پروتکل های انتقال شبکه مانند TCP و UDP استفاده می شود.امروزه اینترنت به دلیل این الگوی آدرس دهی منحصر به فرد وجود دارد. IANA محدوده آدرس IP شبکه ها/سایت هایی که به اینترنت متصل می شوند را مدیریت می کند. با این حال ، اگر یک زیرساخت شبکه محلی جداگانه اجرا کنیم ، می توانیم شماره ها را مطابق اولویت خود اختصاص دهیم. حال ، بیایید وارد ریزگردهای معماری و تحلیل مقایسه ای آن شویم.IPv4اولین نسخه اصلی پروتکل اینترنت (IP) نسخه 4 (IPv4) است. از یک طرح آدرس دهی شبکه 32 بیتی استفاده می کند که بیشتر به چهار عدد 8 بیتی معروف به اکتت تقسیم می شود. به عنوان مثال ، google.com دارای آدرس IP 141.251.36.46 است. این فرمت به عنوان نماد چهار نقطه ای شناخته می شود. این آدرس های IP را می توان به صورت دستی پیکربندی کرد یا به طور خودکار از طریق سرور DHCP به دست آمد.برای بررسی وضعیت دستگاه از راه دور ، می توانیم با استفاده از دستور ICMP به آن، پینگ IP را بررسی کنیم :ping -c 1 google.comPING google.com (142.251.36.46) 56(84) bytes of data.64 bytes from ams17s12-in-f14.1e100.net (142.251.36.46): icmp_seq=1 ttl=116 time=247 ms...آدرس های IP به دو بخش ، آدرس شبکه و میزبان برای ایجاد شبکه های فرعی تقسیم می شوند. اعداد زیر شبکه به تصمیم گیری در مورد شبکه و قسمت های میزبان IP کمک می کند. همچنین ، فضای IP موجود به پنج جدول مختلف تقسیم می شود که در جدول زیر آمده است.کلاس آدرسمحدوده IPپوشش زیر شبکهتعداد شبکه هاتعداد میزبان در هر شبکهکلاس A1.0.0.0 تا 126.0.0.0255.0.0.012616،777،214کلاس B128.0.0.0 تا 191.255.0.0255.255.0.016،28265،534کلاس C192.0.0.0 تا 223.255.255.0255.255.255.02،097،150254کلاس D224.0.0.0 تا 239.255.255.255چندپخشیکلاس E240.0.0.0 تا 255.255.255.255تحقیق/محفوظ/تجربیمحاسبه زیر شبکه شامل چند اصطلاح ریاضی در پشت صفحه است. برای سهولت در محاسبه ، می توانیم از ابزارهایی مانندipcalc یا subnetcalc با زیر شبکه IPv4 استفاده کنیم. قطعات زیر نحوه استفاده از ابزارها را نشان می دهد:ipcalc 110.0.20.18/24خروجی:Address: 110.0.20.18 01101110.00000000.00010100. 00010010Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111=>Network: 110.0.20.0/24 01101110.00000000.00010100. 00000000HostMin: 110.0.20.1 01101110.00000000.00010100. 00000001HostMax: 110.0.20.254 01101110.00000000.00010100. 11111110Broadcast: 110.0.20.255 01101110.00000000.00010100. 11111111Hosts/Net: 254 Class Asubnetcalc 192.168.10.15/24خروجی:Address = 192.168.10.1511000000 . 10101000 . 00001010 . 00001111Network = 192.168.10.0 / 24Netmask = 255.255.255.0Broadcast = 192.168.10.255Wildcard Mask = 0.0.0.255Hosts Bits = 8Max. Hosts = 254 (2^8 - 2)Host Range = { 192.168.10.1 - 192.168.10.254 }Properties =- 192.168.10.15 is a HOST address in 192.168.10.0/24- Class C- PrivateGeoIP Country = Unknown (??)DNS Hostname = (Name or service not known)معمولاً آدرسهای IP به رابط دستگاه میزبان نهایی و روتر گتوی داده می شود ، همانطور که در زیر نشان داده شده است.در اینجا ، ترافیک از ماشین A (10.235.64.58) به رابط گتوی روتر (10.235.64.57) در سمت چپ ابر اینترنت می رسد. از طریق مسیریابی اینترنتی و در نهایت به سرور مقصد به گتوی سرور گوگل می رسد.برای شناسایی IP رابط شبکه می توانید از دستوراتی مانند ifconfig , hostname یا ip استفاده کنید.ifconfig ens160ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.235.64.58 netmask 255.255.255.252 broadcast 10.235.64.59inet6 fe80::fc7f:d8da:a969:1c1d prefixlen 64 scopeid 0x20<link>ether 00:0c:29:23:6f:30 txqueuelen 1000 (Ethernet)RX packets 35607241 bytes 34540488400 (34.5 GB)RX errors 0 dropped 12 overruns 0 frame 0TX packets 24701952 bytes 15008379564 (15.0 GB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0hostname -I10.235.64.58آدرس های IP شبکه مانند 0.0.0.0یا 127.0.0.1. اولی مسیر پیش فرض یا مسیر چهار صفر است ، در حالی که دومی آدرس loopback نامیده می شود.در قطعه زیر ، جدول مسیریابی IP Kernel را با مسیر پیش فرض آن شبکه می بینیم. پرچم 'U' نشان دهنده این است که مسیر شبکه UP است ، در حالی که G نشان می دهد که مسیر شبکه دروازه شبکه است.netstat -rn | grep ens160Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface0.0.0.0 10.235.64.57 0.0.0.0 UG 0 0 0 ens16010.235.64.56 0.0.0.0 255.255.255.252 U 0 0 0 ens160معمولاً دیتاگرام IPv4 شامل یک قسمت سربرگ با 20 بایت ، فیلد گزینه ها و فیلدهای داده با طول متغیر است. قالب بسته نمونه در زیر نشان داده شده است.در زیر ، عکس Wireshark به رمزگشایی اطلاعات سربرگ بسته از ترافیک فعال کمک می کند.IPv6پروتکل اینترنت نسخه 6 نسخه به روز شده پروتکل اینترنت (IP) است. نسخه 6 پروتکل اینترنت جایگزین نسخه قدیمی (IPv4) است که 75 درصد کل ترافیک اینترنت را تا سال 2018 حمل می کند (منبع: Google IPv6 Stats).آدرس IPv6 128 بیت (16 بایت) با استفاده از 32 رقم هگزادسیمال است ، در حالی که این ارقام برای سهولت مدیریت به هشت گروه چهار رقمی تقسیم می شوند. تصویر مختصری در زیر نشان داده شده است.چند مرحله اساسی در کنوانسیون نامگذاری IPv6 وجود دارد.قانون 1: همه حروف بدون حروف کوچک هستند. به عنوان مثال ، 'ab41' معادل 'AB41' قانون 2 : فیلدهای متوالی با '0' را می توان بصورت "::" تجسم کرد ، اما تنها یکبار در قانون خطاب 3: نشان دادن صفرهای پیشرو در یک زمینه اختیاری است. به عنوان مثال ، '001a' برابر '1a' استبرای مثال ، بیایید آدرس IPv6 را بگیریم ، 45ab: 0000: a179: 0000: 0000: c1c0: abcd: 0876اعمال قانون 1 => 45ab: 0000: a179: 0000: 0000: c1c0: abcd: 0876 اعمال قانون 2 => 45ab: 0: a179: 0: 0: c1c0: abcd: 876 اعمال قانون 3 => 45ab: 0: a179 :: c1c0: abcd: 876سه نوع آدرس IPv6 وجود دارد: Unicast ، Multicast و Anycast. آدرس unicast رابط شبکه واحد و بسته هایی است که به آن رابط خاص تحویل داده می شود. علاوه بر این ، آدرسهای unicast دارای سطوح محلی (پیوند محلی) و جهانی هستند. آدرس Multicast رابط های گروهی است که بسته ها به آنها تحویل داده می شود. آدرس Anycast رابط گروه و بسته ای است که به نزدیکترین رابط تحویل داده می شود.چند آدرس معروف در جدول زیر آورده شده است.] :: 1/128آدرس Loopbackff00 ::/8آدرس های چند رسانه ایfe80 ::/10پیوندها-آدرسهای محلی2001 ::/16آدرسهای IPic6 Unicast معمولی2002 ::/166 تا 4 آدرس Unicastsubnetcalc 2001:4860:4860::8888/64Address = 2001:4860:4860::88882001 = 00100000 000000014860 = 01001000 011000004860 = 01001000 011000000000 = 00000000 000000000000 = 00000000 000000000000 = 00000000 000000000000 = 00000000 000000008888 = 10001000 10001000Network = 2001:4860:4860:: / 64Netmask = ffff:ffff:ffff:ffff::Wildcard Mask = ::ffff:ffff:ffff:ffffHosts Bits = 64Max. Hosts = 18446744073709551616 (2^64 - 1)Host Range = { 2001:4860:4860::1 - 2001:4860:4860:0:ffff:ffff:ffff:ffff }Properties =- 2001:4860:4860::8888 is a HOST address in 2001:4860:4860::/64- Global Unicast Properties:+ Interface ID = 0000:0000:0000:8888+ Sol. Node MC = ff02::1:ff00:8888GeoIP Country = United States (US)DNS Hostname = dns.googleمجدداً بسته IPv6 دارای سربرگ و ظرفیت است. اندازه هدر 40 بایت است و آدرس مبدا و مقصد 32 بیت است. قالب بسته نمونه در زیر نشان داده شده است.اگرچه IPv6 مزایای زیادی دارد ، اما نمی تواند جایگزین IPv4 شود. هر دو نسخه پروتکل باید مدتی برای مهاجرت یکپارچه وجود داشته باشند. بنابراین ، ارائه دهندگان خدمات یک سیستم پشتیبانی دو پشته ارائه می دهند که دارای رابط شبکه است که می تواند بسته های IPv4 و IPv6 را درک کند.برای خرید سرور مجازی با IPV4 و IPV6 رایگان کلیک کنیدتفاوت و مقایسه IPv4 با IPv6 - تجزیه و تحلیل مقایسه ای سریعامکاناتپروتکل اینترنت - نسخه 4 [IPv4]پروتکل اینترنت - نسخه 6 [IPv6]استقرار و تخصیص19811999طول32 بیتی128 بیتیفضای آدرس4.29 10 10^93.4 10 10^38قالب بندیاعشاری نقطه نقطه [[10.235.64.56]هگزادسیمال / [2400 :: 4]تعداد Octets416اندازه سربرگبین 20 - 60 بایت متغیر است40 بایتکلاس هاپنج کلاس: کلاس A ، کلاس B ، کلاس C ، کلاس D ، کلاس Eهیچ یکویژگی های امنیتی / احراز هویت و رمزگذاریدر دسترس نیستدر دسترسجمع را بررسی کنیددر دسترسدر دسترس نیستIPSecخارجی و اختیاریویژگی داخلیهاپ شمارشنشان داده شده توسط فیلد TTLنشان داده شده توسط زمینه Hoplimitتکه تکه شدنتوسط روترهای فرستنده و ارسال کننده انجام می شودفقط توسط فرستنده انجام می شودزمینه های گزینهدر هدر IPv4 ارائه شده استهیچ فیلد اختیاری وجود ندارد ، اما هدرهای افزونه IPv6 در دسترس هستندچندپخشیIGMP عضویت گروه چند رسانه ای را مدیریت می کندMLD جایگزین IGMP می شودپیام پخش شدهدر دسترسدر دسترس نیست. Multicast استفاده می شودنگاشت IP به MACپروتکل حل آدرسپروتکل کشف همسایهنتیجهما اصول اولیه پروتکل اینترنت و نسخه های آن، تفاوت و مقایسه IPv4 با IPv6 را بررسی کردیم. در طول راه ، مقاله طرح آدرس دهی ، قالب بسته ، عملکرد IPv4 و IPv6 را با تجزیه و تحلیل مقایسه ای روشن می کند. اگرچه امروزه IPv4 بیشتر ترافیک اینترنت را حمل می کند ، IPv6 آینده دنیای شبکه است.
ادامه مطلبآموزش رفع مشکل صفحه سفید (مرگ) در وردپرساگر وب سایت وردپرسی دارید ، یکی از رایج ترین خطاهایی که ممکن است با آن برخورد کنید صفحه سفید مرگ (WSOD) است. با این حال ، تجربه آن می تواند ترسناک باشد زیرا ممکن است در مورد علت اصلی WSOD فکر کنید و هیچ سرنخی در مورد مرحله بعدی ندارید.WSOD می تواند دلایل مختلفی داشته باشد ، و تعیین آنها به این راحتی ها نیست ، به ویژه اگر با جنبه فنی وردپرس آشنا نیستید. در اینجا ، ما برخی از موثرترین روش های حل WSOD را برای وب سایت های وردپرسی شما گردآوری کرده ایم. اما ، ابتدا ، اجازه دهید صفحه سفید مرگ وردپرس را درک کنیم.صفحه سفید مرگ چیست؟همانطور که از نامش مشخص است ، White Screen of Death یا WSOD صفحه ای خالی است که به جای وب سایت وردپرس ظاهر می شود. علاوه بر این ، بسته به مرورگری که در آن هستید ممکن است پیام های خطای متفاوتی وجود داشته باشد. به عنوان مثال ، در Google Chrome ، ممکن است یک پیام خطای HTTPS 500 دریافت کنید که نشان دهنده خطاهای داخلی است.یکی از دلایل مهم WSOD می تواند محدودیت حافظه PHP باشد. محدودیت حافظه PHP حداکثر آستانه فضای حافظه است که یک اسکریپت وب سایت می تواند از آن استفاده کند.1. محدودیت حافظه PHPهر وب سایت از طریق سرورهای پشتیبان تغذیه می شود که آنها را در حال اجرا نگه می دارد. قدرت چنین سرورهای پشتیبان از RAM ، قابلیت پردازش پردازنده ها و ذخیره سازی ناشی می شود.از افزونه ها تا تم ها ، تصاویر با اندازه نامناسب ، ویژگی های پیچیده و سایر عناصر وب سایت های وردپرس می توانند محدودیت های حافظه PHP را خالی کنند. جدا از مصرف محدودیت حافظه PHP ، این افزونه ها خود می توانند باعث ایجاد WSOD شوند.این می تواند فرانت اند شما را دان کند ، که می توانید با ورود سریع به داشبورد وردپرس آن را بررسی کنید. در مرحله بعد ، به منوی ابزار در داشبورد وردپرس بروید و بر روی سلامت سایت کلیک کنید تا محدودیت حافظه PHP از پیش تعیین شده را بدانید. اکنون ، فایلهای خود را با توجه به محدودیت حافظه PHP تنظیم کنید. با این حال ، اگر ارائه دهنده خدمات میزبانی شما محدودیت را به سختی کد گذاری کرده است ، نمی توانید در این مورد کاری انجام دهید.جدا از این مشکلات ، مسائل امنیتی مربوط به وب سایت وردپرس وجود دارد که می تواند باعث ایجاد WSOD شود. بنابراین ، اجازه دهید علل مختلف و راه حل های عملی برای رفع مشکل صفحه سفید وردپرس در مورد مرگ را مورد بحث قرار دهیم.2. Cache را حذف کنیدیکی از ساده ترین راه ها برای بازگرداندن صفحه وب وردپرس خود از WSOD ، پاک کردن حافظه پنهان است. اول ، هر زمان که یک کاربر بخواهد از وب سایت شما بازدید کند ، یک درخواست وب را به مرورگر ارسال می کند. در مرحله بعد ، مرورگر یک فایل HTML ثابت را برای کاربر ارسال می کند که در بین مردم به عنوان ذخیره وب سایت معروف است.چنین فایل استاتیک HTML دارای تمام فایل ها ، متون ، تصاویر و سایر عناصر صفحه وب شما خواهد بود. این پرونده های حافظه پنهان بعداً پس از اتمام توسط مرورگر ریخته می شوند. در حال حاضر مشکل زمانی برطرف می شود که چندین کش ذخیره شده باعث ایجاد خطا می شوند. بهترین راه برای اطمینان از عدم وجود خطای ذخیره سازی ، پاک کردن حافظه پنهان است.مثلا مرورگر Microsoft Edge را در نظر بگیرید. از قسمت تنظیمات ، می توانید حافظه پنهان مرور را پاک کنید.در صفحه تنظیمات گزینه Privacy، Search، Services را پیدا کنید و سپس گزینه ای برای پاک کردن انواع مختلف داده های مرور دریافت خواهید کرد. در اینجا ، کش را از گزینه حذف آن انتخاب کنید.علاوه بر این ، می توانید حافظه پنهان وب سایت را از داشبورد وردپرس خود پاک کنید. پس از اتمام کار ، مرورگر را ببندید و مجدداً راه اندازی مجدد کنید تا وب سایت وردپرس خود بارگیری شود.3. اشکال زدایی خطاهای PHPاین راه حل مخصوص صفحه مرورگر شما است ، هیچ پیام خطایی نشان نمی دهد و فقط یک صفحه سفید سفید نشان می دهد. برای اشکال زدایی خطای PHP ، باید فایل wp-config.php را از فهرست اصلی ویرایش کنید.فایل پیکربندی با توجه به ارائه دهنده خدمات میزبانی کجا است؟ می توانید از ابزار مدیریت فایل از ارائه دهنده میزبانی یا سرویس FTP استفاده کنید. پس از یافتن فایل خاص ، آن را باز کرده و کد زیر را پیدا کنید:define( 'WP_DEBUG', false )حالا مقدار کد false را به true تغییر دهید. اگر چنین کدی وجود ندارد ، می توانید آن را به صورت دستی قرار دهید. مرحله بعدی ذخیره فایل و بارگذاری مجدد سایت است. بنابراین ، در صورت وجود هرگونه خطای PHP در کد ، ابزار اشکال زدایی آنها را نشان می دهد. سپس ، می توانید کد را اصلاح کنید تا این خطاها را اصلاح کنید و دوباره صفحه سفید وردپرس مرگ (WSOD) را بررسی کنید.وب سایت های وردپرس طیف وسیعی از موضوعات و افزونه ها را ارائه می دهند. با این حال ، افزونه های قدیمی می توانند برای امنیت وب سایت شما دلهره آور باشند و منجر به WSOD شوند.4. آخرین راه حلدر صورت شکست همه اقدامات فوق ، آخرین راه حل برای دریافت پشتیبانی با ارائه دهنده خدمات میزبانی تماس بگیرد. برخی از راه حل ها ، به عنوان مثال ، بهبود محدودیت حافظه PHP یا حتی ارائه گواهینامه های امنیتی ، می تواند توسط ارائه دهنده خدمات میزبانی شما برطرف شود. بنابراین ، برای حل مشکل WSOD ، از تیم فنی آنها درخواست پشتیبانی کنید.نتیجهصفحه سفید مرگ یک تجربه وحشتناک برای هر کسی است که دلایل زیادی دارد. اگر شما دانش اولیه ای از وردپرس ندارید راه حل آن می تواند چالش برانگیز باشد. با این حال ، راه حل های مختلف وجود دارد ، همانطور که در اینجا مورد بحث قرار گرفته است ، که می توانید از آنها استفاده کنید. برخی از آنها اساسی هستند ، مانند به روز رسانی افزونه ، در حالی که برخی دیگر پیشرفته هستند ، مانند تعمیر کدهای PHP.
ادامه مطلبدستورات بررسی شبکه لینوکسبرای بررسی اتصالات شبکه لینوکس از جمله وضعیت ، منبع/مقصد ، آدرس ها و استفاده از پهنای باند و غیره ، باید از یکی از ابزارها یا دستورات زیر در لینوکس استفاده کنید:دستور ss : آمارهای سوکت (اتصال به شبکه) مانند تمام اتصالات TCP / UDP ، اتصال ایجاد شده در پروتکل (به عنوان مثال ، نمایش همه اتصالات ssh ایجاد شده) ، نمایش همه سوکت های tcp در حالت های مختلف مانند ESTABLISHED یا FIN-WAIT-1 و غیرهدستور netstat : می تواند اتصالات شبکه ، جداول مسیریابی ، رابط ها و موارد دیگر را نمایش دهد.دستورات tcptrack و iftop : اطلاعات مربوط به اتصالات TCP را که در رابط شبکه می بیند نمایش می دهد و به ترتیب میزان استفاده از پهنای باند را در یک رابط توسط میزبان نمایش می دهد.برای نمایش سوکت های TCP در حال اجرا، بسته و منتظر ، دستور زیر را وارد کنید:ss -sنمونه خروجی ها:Total: 529 (kernel 726)TCP: 1403 (estab 286, closed 1099, orphaned 1, synrecv 0, timewait 1098/0), ports 774Transport Total IP IPv6* 726 - - RAW 0 0 0 UDP 27 13 14 TCP 304 298 6 INET 331 311 20 FRAG 0 0 0 یا می توانید از دستور netstat به شرح زیر استفاده کنید:netstat -sنمونه خروجی ها:Ip: 102402748 total packets received 3 with invalid addresses 0 forwarded 0 incoming packets discarded 102192035 incoming packets delivered 95627316 requests sent outIcmp: 6726 ICMP messages received 167 input ICMP message failed. ICMP input histogram: destination unreachable: 2353 timeout in transit: 4 echo requests: 4329 10323 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 5994 echo replies: 4329IcmpMsg: InType3: 2353 InType8: 4329 InType11: 4 OutType0: 4329 OutType3: 5994Tcp: 839222 active connections openings 2148984 passive connection openings 1480 failed connection attempts 1501 connection resets received 281 connections established 101263451 segments received 94668430 segments send out 9820 segments retransmited 0 bad segments received. 1982 resets sentUdp: 1024635 packets received 18 packets to unknown port received. 0 packet receive errors 1024731 packets sentTcpExt: 592 invalid SYN cookies received 396 resets received for embryonic SYN_RECV sockets 2 packets pruned from receive queue because of socket buffer overrun 3 ICMP packets dropped because they were out-of-window 2166428 TCP sockets finished time wait in fast timer 2773 time wait sockets recycled by time stamp 11 packets rejects in established connections because of timestamp 1223930 delayed acks sent 298 delayed acks further delayed because of locked socket Quick ack mode was activated 263 times 16413851 packets directly queued to recvmsg prequeue. 627914668 packets directly received from backlog 1146535624 packets directly received from prequeue 43628505 packets header predicted 10588802 packets header predicted and directly queued to user 8646100 acknowledgments not containing data received 44710342 predicted acknowledgments 5 times recovered from packet loss due to fast retransmit 596 times recovered from packet loss due to SACK data 2 bad SACKs received Detected reordering 1 times using FACK Detected reordering 4 times using time stamp 3 congestion windows fully recovered 7 congestion windows partially recovered using Hoe heuristic TCPDSACKUndo: 44 208 congestion windows recovered after partial ack 2743 TCP data loss events 190 timeouts after SACK recovery 90 timeouts in loss state 2268 fast retransmits 220 forward retransmits 3704 retransmits in slow start 1318 other TCP timeouts TCPRenoRecoveryFail: 2 98 sack retransmits failed 226 packets collapsed in receive queue due to low socket buffer 267 DSACKs sent for old packets 1 DSACKs sent for out of order packets 272 DSACKs received 34 connections reset due to unexpected data 184 connections reset due to early user close 147 connections aborted due to timeoutIpExt: InBcastPkts: 10نمایش همه پورت های شبکه بازاز دستور ss به صورت زیر استفاده کنید:ss -lنمونه خروجی ها:Recv-Q Send-Q Local Address:Port Peer Address:Port 0 50 127.0.0.1:mysql *:* 0 128 127.0.0.1:11211 *:* 0 128 *:sunrpc *:* 0 128 :::www :::* 0 128 *:55153 *:* 0 3 10.1.11.27:domain *:* 0 3 192.168.1.101:domain *:* 0 3 127.0.0.1:domain *:* 0 3 :::domain :::* 0 128 :::ssh :::* 0 128 *:ssh *:* 0 128 127.0.0.1:ipp *:* 0 128 ::1:ipp :::* 0 128 :::afs3-callback :::* 0 128 *:afs3-callback *:* 0 100 *:smtp *:* 0 128 ::1:953 :::* 0 128 127.0.0.1:953 *:* 0 5 *:8000 *:* یا از دستور netstat به صورت زیر استفاده کنید:netstat -tulpnنمونه خروجی ها:Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1380/mysqld tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 1550/memcached tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 936/portmap tcp 0 0 0.0.0.0:55153 0.0.0.0:* LISTEN 1025/rpc.statd tcp 0 0 10.1.11.27:53 0.0.0.0:* LISTEN 1343/named tcp 0 0 192.168.1.101:53 0.0.0.0:* LISTEN 1343/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1343/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 979/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1828/cupsd tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 10129/transmissiontcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1694/master tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1343/named tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1539/icecast2 tcp6 0 0 :::80 :::* LISTEN 1899/apache2 tcp6 0 0 :::53 :::* LISTEN 1343/named tcp6 0 0 :::22 :::* LISTEN 979/sshd tcp6 0 0 ::1:631 :::* LISTEN 1828/cupsd tcp6 0 0 :::7001 :::* LISTEN 10129/transmissiontcp6 0 0 ::1:953 :::* LISTEN 1343/named udp 0 0 239.255.255.250:1900 0.0.0.0:* 11937/opera udp 0 0 239.255.255.250:1900 0.0.0.0:* 11937/opera udp 0 0 0.0.0.0:111 0.0.0.0:* 936/portmap udp 0 0 0.0.0.0:777 0.0.0.0:* 1025/rpc.statd udp 0 0 0.0.0.0:38297 0.0.0.0:* 1025/rpc.statd udp 0 0 192.168.1.101:33843 0.0.0.0:* 11937/opera udp 0 0 10.1.11.27:53 0.0.0.0:* 1343/named udp 0 0 192.168.1.101:53 0.0.0.0:* 1343/named udp 0 0 127.0.0.1:53 0.0.0.0:* 1343/named udp 0 0 0.0.0.0:68 0.0.0.0:* 5840/dhclient udp 0 0 127.0.0.1:11211 0.0.0.0:* 1550/memcached udp 0 0 0.0.0.0:7001 0.0.0.0:* 10129/transmissionudp 0 0 10.1.11.27:33372 0.0.0.0:* 11937/opera udp6 0 0 :::53 :::* 1343/named نمایش همه سوکت های TCPدستور ss را به صورت زیر بنویسید:ss -t -aیا از دستور netstat به صورت زیر استفاده کنید:netstat -natنمایش همه سوکت های UDPدستور ss را به صورت زیر تایپ کنید:ss -u -aیا از دستور netstat به صورت زیر استفاده کنید:netstat -nauفرمان lsofبرای لیست اطلاعات بیشتر در مورد پورت های باز شده می توانید از دستور lsof زیر استفاده کنید :lsof -i :portNumberlsof -i tcp:portNumberlsof -i udp:portNumberlsof -i :80 | grep LISTENفقط اتصالات ایجاد شده را مشاهده کنیداز دستور netstat به صورت زیر استفاده کنید:netstat -natu | grep 'ESTABLISHED'دستور tcptrack نمایش وضعیت از اتصالات TCP که آن را در یک رابط شبکه داده را می بیند. tcptrack بر وضعیت آنها نظارت می کند و اطلاعاتی مانند وضعیت ، آدرس مبدا/مقصد و میزان استفاده از پهنای باند را در لیست مرتب شده و به روز شده بسیار شبیه دستور بالا نمایش می دهد. tcptrack -i eth0نمونه خروجی ها:دستور iftopدستور iftop به ترافیک شبکه در یک رابط شبکه معین مانند eth0 گوش می دهد و جدول استفاده از پهنای باند فعلی توسط جفت میزبان را نشان میدهد:iftop -i eth1می تواند بسته هایی را که به داخل و خارج از شبکه 192.168.1.0/24 منتقل می شوند ، نمایش داده یا تجزیه و تحلیل کند:iftop -F 192.168.1.0/24نمونه خروجی ها :نتیجه:در این آموزش دستورات مختلف بررسی شبکه لینوکس را به شما آموزش دادیم. لطفا سوالات و نظرات خود را از طریق کامنت ارسال کنید.
ادامه مطلبمعرفی بهترین توزیع های لینوکستوزیع های زیادی از لینوکس وجود دارد. حتی نمیتوان به یک عدد دقیق فکر کرد، چون میتوان تعداد زیادی از توزیع های مختلفی از لینوکس را پیدا کرد که از یک جهت و یا از جهات مختلف با هم تفاوت داشته باشند.بعضی از آن ها تنها یک کلون از دیگری به نظر میرسد، در حالی که بعضی از آن ها کاملا خاص و یونیک هستند. کمی گیج کنندست! اما این موارد زیبایی لینوکس را نشان میدهد.نگران نباشید ، حتی اگر هزاران توزیع وجود داشته باشد، در این پست لیستی از بهترین توزیع های لینوکس موجود در حال حاضر تهیه شده.در اینجا ، ما سعی می کنیم توزیع ها را دسته بندی کنیم.توجه داشته باشید، ما در این لیست الویت خاصی نداریم و صرفا بر اساس سلیقه ی شخصی به معرفی می پردازیم.بهترین توزیع های لینوکس برای افراد مبتدیدر این دسته بندی ، هدف ما این است که توزیع هایی را که استفاده از آنها آسان است را ، بررسی کنیم. نیازی به بررسی عمیق نیست، فقط می توان بعد از نصب از آن ها استفاده کرد.Ubuntuاوبونتو بدون شک یکی از محبوب ترین توزیع های لینوکس است. حتی می توان آن را از قبل نصب در بسیاری از لپ تاپ های موجود مشاهده کرد.اینترفیس کاربری آن بسیار آسان است. اگر با آن کار کنید ، به راحتی می توانید ظاهر آن را بر اساس نیاز خود تنظیم کنید. در هر صورت ، می توان انواع تم آن را نیز نصب کرد.علاوه بر آنچه ارائه می دهد، یک انجمن آنلاین (فروم) گسترده ای از کاربران اوبونتو موجود است.Linux MintLinux Mint Cinnamon یکی دیگر از توزیع های محبوب لینوکس در بین مبتدیان است. دسکتاپ پیش فرض مینت شبیه ویندوز XP است و به همین دلیل بسیاری از کاربران هنگام از رده خارج شدن ویندوز XP آن را انتخاب کردند.Linux Mint مبتنی بر اوبونتو است و بنابراین همه برنامه های موجود برای اوبونتو را دارد. سادگی و سهولت استفاده از آن دلیلی است که برای کاربران جدید لینوکس، به گزینه ای برجسته تبدیل شده است.elementary OSelementary OS یکی از زیباترین گزینه های موجود لینوکس است، UI شبیه Mac OS است؛ بنابراین اگر قبلاً از سیستم مجهز به Mac استفاده کرده اید ، راحت بودن با آن راحت است.این توزیع مبتنی بر اوبونتو است و تمرکز آن بر ارائه یک محیط لینوکس کاربر پسند است که با در نظر گرفتن عملکرد، تا آنجا که ممکن است زیبا به نظر میرسد. MX LinuxMX Linux تقریباً یک سال پیش مورد توجه قرار گرفت. هم اکنون یکی از محبوب ترین توزیع های لینوکس است. اگر هنوز از آن استفاده نکرده اید، هنگام استفاده از آن تعجب خواهید کرد.برخلاف اوبونتو ، MX Linux یک توزیع محبوب وکاربر پسند لینوکس است که بر اساس Debian با Xfce به عنوان محیط دسک تاپ خود است. علاوه بر ثبات بی عیب و نقص آن، با بسیاری از ابزارهای رابط کاربری گرافیکی همراه است که راحتی هر کاربر با ویندوز یا مک را راحت تر می کند.همچنین ، پکیج منیجر آن کاملاً با یک کلیک به سادگی نصب می شود. حتی می توانید بسته های Flatpak را جستجو کرده و در کمترین زمان نصب کنید (Flathub به طور پیش فرض به عنوان یکی از منابع در پکیج منیجر موجود است).Zorin OSسیستم عامل Zorin یک توزیع دیگر مبتنی بر اوبونتو است که اتفاقاً یکی از زیبا ترین و بصری ترین سیستم عامل برای دسک تاپ است. به خصوص ، پس از انتشار Zorin OS 15 ؛ قطعاً آن را برای کاربران بدون هیچ پیش زمینه لینوکسی ای توصیه می شود. بسیاری از برنامه های مبتنی بر رابط کاربری گرافیکی نیز به خوبی لانچ می شوند.همچنین می توان آن را روی رایانه های شخصی قدیمی نصب کرد، با این حال ، اطمینان حاصل کنید که نسخه Lite را انتخاب کنید. علاوه بر این، دارای نسخه های Core ، Education و Ultimate است. می توانید نسخه Core را به صورت رایگان نصب کنید، اما اگر می خواهید از توسعه دهندگان پشتیبانی کنید و به بهبود Zorin کمک کنید ، نسخه Ultimate را تهیه کنید.Zorin OS توسط دو نوجوان مستقر در ایرلند راه اندازی شد!Pop!_OSPop! _OS ؛ انتخاب بسیار خوبی برای توسعه دهندگان یا متخصصان علوم کامپیوتر است. البته ، فقط برای برنامه نویس ها محدود نمی شود، اگر تازه شروع به استفاده از لینوکس کرده اید، این یک انتخاب عالی نیز است. این برنامه مبتنی بر اوبونتو است، اما بسیار بیشتر بصری و روان است. علاوه بر ویژگی های ظاهری قابل قبول، رمزگذاری تمام را اعمال می کند.گزینه های دیگرDeepin و سایر توزیع های مبتنی بر اوبونتو (مانند کوبونتو ، Xubuntu) نیز می توانند گزینه های مناسب برای مبتدیان باشند. اگر قصد دارید گزینه های بیشتری را جستجو کنید می توانید نگاهی به آنها بیندازید.بهترین توزیع سرورهای لینوکسبرای سرورها، انتخاب توزیع لینوکس به ثبات ، عملکرد و پشتیبانی سازمانی برمی گردد. اگر فقط در حال آزمایش باشید، می توانید هر distro یا توزیع را که می خواهید امتحان کنید.اما، اگر آن را برای یک وب سرور یا هر چیز اساسی نصب می کنید ، باید نگاهی به برخی از توصیه های ما بیندازید.Ubuntu Serverبسته به مکانی که نیاز داریم، اوبونتو گزینه های مختلفی را برای سرور فراهم می کند. اگر به دنبال یک راه حل بهینه شده برای اجرای در AWS ، Azure Google Cloud Platform و غیره هستید ، Ubuntu Cloud راهی است که باید دنبال شود.در هر صورت، می توان بسته های سرور اوبونتو را انتخاب کرد و آن را بر روی سرور خود نصب نمود. با این وجود ، اوبونتو محبوب ترین توزیع لینوکس در مورد استقرار در فضای ابری است.توجه داشته باشید که توصیه می کنیم به دنبال نسخه های LTS باشید.Red Hat Enterprise LinuxRed Hat Enterprise Linux یک پلتفرم درجه یک لینوکس برای مشاغل و سازمان ها است. اگر از روی آمار جلو برویم، Red Hat ممکن است محبوب ترین انتخاب برای سرورها نباشد. اما، گروه قابل توجهی از کاربران سازمانی هستند که به RHEL (مانند Lenovo) اعتماد می کنند.از نظر فنی، Fedora و Red Hat با هم مرتبط هستند. هرچه Red Hat پشتیبانی می کند، قبل از در دسترس قرار دادن Fedora برای RHEL ، در Fedora آزمایش می شود.SUSE Linux Enterprise Serverنگران نباشید، این توزیع را با OpenSUSE اشتباه نکنید. تحت یک نام تجاری مشترک "SUSE" است، اما OpenSUSE یک توزیع منبع باز (اوپن سورس) هدفمند است.SUSE Linux Enterprise Server یکی از محبوب ترین راه حل ها برای سرورهای مبتنی بر cloud است.CentOS 8CentOS بیشتر شبیه نسخه RHEL ، است زیرا از منابع Red Hat Enterprise Linux گرفته شده است.اکنون که CentOS با CentOS Stream جایگزین شده، می توان CentOS Stream را که یک بالادست برای Red Hat Enterprise Linux است امتحان کرد یا به دنبال گزینه های CentOS باشیم.Cent OS 7 تا سال 2024 پشتیبانی می شود و Cent OS 8 در اواخر عمر خود در سال 2021 مشاهده می شود. بنابراین، می توان قبل از آزمایش گزینه های CentOS یا CentOS Stream ، آن را به عنوان یک آزمایش امتحان نمود.گزینه های دیگرهمچنین می توان فدورا سرور یا دبیان را به عنوان گزینه هایی برای برخی از توزیع های ذکر شده در بالا ، استفاده کرد.بهترین توزیع های لینوکس برای رایانه های قدیمیاگر رایانه قدیمی دارید که در اطراف شما است یا اگر واقعاً نیازی به ارتقا سیستم خود ندارید، هنوز هم می توان برخی از بهترین توزیع های لینوکس موجود را امتحان کرد.Puppy LinuxPuppy Linux به معنای واقعی کلمه یکی از کوچکترین توزیع های موجود است. این نرم افزار می تواند با سهولت در پیکربندی های سخت افزاری قدیمی اجرا شود.اگر نیاز به تجربه کاملی در رایانه خوب و قدیمی خود باشد، ارزش بررسی آن را دارد. با گذشت سالها ، تجربه کاربر همراه با اضافه شدن چندین ویژگی مفید جدید این توزیع، بهبود یافته است.Solus Budgie این توزیع، یک سیستم عامل دسک تاپ سبک وزن است. می توان محیط های دسک تاپ مانند GNOME یا MATE را انتخاب کرد. با این حال ، Solus Budgie اتفاقاً یک توزیع کامل لینوکس برای مبتدیان است ، در حالی که منابع سیستم را زیاد درگیر نمیکند.Bodhiلینوکس بودی در بر روی اوبونتو ساخته شده است. با این حال، برخلاف اوبونتو، با تنظیمات قدیمی بسیار خوب اجرا می شود.مهمترین نکته در این توزیع دسک تاپ Moksha آن است (که ادامه دسکتاپ Enlightenment 17 است). تجربه کاربر بصری است.antiXantiX ؛ که تا حدی شبیه به MX Linux است، توزیع سبک لینوکس متناسب با رایانه های قدیمی و جدید است. UI چشمگیر نیست ؛ اما مطابق انتظار کار می کند.این برنامه مبتنی بر دبیان است و می تواند بدون نیاز به نصب، به عنوان یک توزیع مستقیم و لایو CD مورد استفاده قرار گیرد. antiX همچنین بوت لودرهای لایو را فراهم می کند. برخلاف برخی دیگر از مزاحمت ها، باید تنظیمات را ذخیره کنید تا با هر راه اندازی مجدد آن را از دست ندهید. نه تنها این، همچنین می توانید تغییرات را در فهرست روت (root )با ویژگی "Live persistence" آن ذخیره کنید.بنابراین، اگر به دنبال یک توزیع کننده USB-live برای ارائه در سخت افزارهای قدیمی هستید؛ راه حل antiX راهی برای آن است.Sparky Linuxلینوکس Sparky مبتنی بر Debian است که به نظر می رسد یک گزینه عالی لینوکس برای سیستم های سطح پایین است. Sparky Linux چندین نسخه ویژه را برای کاربران مختلف ارائه می دهد.گزینه های دیگرهمچنین می توان Linux Lite ، Lubuntu و Peppermint را به عنوان برخی از توزیع های سبک لینوکس امتحان کرد.بهترین توزیع لینوکس برای کاربران حرفه ایهنگامی که با انواع پکیج منیجر ها و دستوراتاستفاده می شود، می توان شروع به بررسی توزیع های لینوکس کنید که فقط برای کاربران پیشرفته طراحی شده است.البته ، اگر یک حرفه ای باشیم، مجموعه ای از الزامات خاص را خواهیم داشت. با این حال ، اگر مدتی است که از لینوکس به عنوان یک کاربر معمول استفاده می شود، بررسی این توزیع ها لازم است.Arch LinuxArch Linux خود یک توزیع ساده و در عین حال قدرتمند و بزرگ برای یادگیری است. بر خلاف دیگران ، شما همه چیز را با یک بار نصب از قبل نخواهید داشت. شما باید سیستم را پیکربندی کنید و بسته به نیاز بسته ها را اضافه کنید.همچنین ، هنگام نصب Arch Linux ، باید مجموعه ای از دستورات را دنبال کرد (البته بدون نسخه گرافیکی). اگر می خواهید آن را نصب کنید، باید در مورد برخی از کارهای اساسی پس از نصب Arch Linux نیز بدانید. این به شما کمک می کند تا شروع خوبی داشته باشید.علاوه بر همه تنوع و سادگی ، لازم به ذکر است که جامعه (کامینیوتی و فروم های اینترنتی) پشت Arch Linux بسیار فعال است. بنابراین ، اگر به مشکلی برخوردید ، نگران نباشید.Gentooاگر می دانید چگونه کد منبع را کامپایل کنید ، Gentoo Linux را باید امتحان کنید. این توزیع یک توزیع سبک نیز است؛ با این وجود، باید دانش فنی لازم را برای کارایی آن داشته باشیم.SlackwareSlackware یکی از قدیمی ترین توزیع های لینوکس است که هنوز هم مهم است. اگر مایل به جمع آوری یا توسعه نرم افزاری برای ایجاد محیطی مناسب برای خود باشیم، Slackware راهی مناسب است.حتی اگر تعداد کاربران یا توسعه دهندگان که از آن استفاده می کنند به طور قابل توجهی کاهش یافته است ، هنوز هم یک گزینه خارق العاده برای کاربران پیشرفته و حرفه ای است.بهترین توزیع چند منظوره لینوکسبرخی از توزیع های لینوکس وجود دارد که می توان به عنوان یک سیستم عامل مبتدی یا پیشرفته برای دسک تاپ و سرور استفاده کرد. از این رو، ما فکر کردیم که بخش جداگانه ای برای چنین توزیع هایی آماده کنیم.FedoraFedora دو نسخه جداگانه ارائه می دهد؛ یکی برای دسک تاپ یا لپ تاپ و دیگری برای سرورها (به ترتیب Fedora Workstation و Fedora Server).بنابراین، اگر به دنبال یک سیستم عامل دسکتاپ سریع هستید؛ با داشتن یک توزیع قوی در حالی که کاربرپسند است، Fedora یک گزینه است. در هر صورت، اگر به دنبال سیستم عامل لینوکس برای سرور خود هستید، این انتخاب خوبی است.ManjaroManjaro مبتنی بر Arch Linux است. در حالی که Arch Linux برای کاربران پیشرفته و حرفه ای طراحی شده است، Manjaro این کار را برای یک تازه وارد آسان می کند. این یک توزیع لینوکس ساده و مبتدی است. رابط کاربری به اندازه کافی خوب است و مجموعه ای از برنامه های کاربردی رابط کاربری گرافیکی را ارائه می دهد.Debianخوب، اوبونتو بر اساس دبیان ساخته شده است، بنابراین باید توزیع خوبی باشد. دبیان یک گزینه ایده آل برای دسک تاپ و سرور است.ممکن است این بهترین سیستم عامل برای مبتدیان نباشد ، اما با مراجعه به اسناد رسمی می توان به راحتی کار خود را شروع کنید. نسخه اخیر Debian 10 Buster تغییرات و بهبودهای لازم را به همراه دارد. بنابراین ، شما باید آن را امتحان کنید!جمع بندیخب ما در این آموزش به بررسی و معرفی مهمترین انواع توزیع های لینوکس پرداختیم امیدواریم از این آموزش بهره کافی رو برده باشید.
ادامه مطلبپنل دانش گوگل (Knowledge Panel) چیست؟پنل دانش گوگل (Knowledge Panel) یا همان نالج پنل گوگل پنلی است که وقتی اسم یک شخص را در گوگل سرچ میکنید در سمت راست صفحه برای شما باز میشود، این پنل معمولا برای افراد معروف و یا افرادی که در گوگل رزومه ای معتبری دارند باز میشود.پنل دانش گوگل اطلاعات خود را از کجا نمایش میدهد؟گراف دانش (Knowledge Graph) یک پایگاه دانش است که در موتور جستجوی وب گوگل استفاده میشود و به صورت جستجوی مفهومی عمل میکند و اطلاعاتش را از پایگاههای داده بسیاری کسب میکند. این پنجره اطلاعات گستردهای درباره موضوع مورد جستجو ارائه میکند و هدف آن کمک به کاربران برای رسیدن به اطلاعات مورد نظرشان در کمترین زمان ممکن است. (ویکی پدیا)مزایای نالج پنل گوگل چیست؟نالج پنل گوگل در واقع میتواند یک رزومه بین المللی و معتبر برای شما در هر رشته ای باشد، هم اکنون خواننده ها، بازیگر ها، فوتبالیست ها، و یا حتی نویسنده ها و یا کارگردان های معروف و مطرح در سطح دنیا دارای این پنل در گوگل هستند، در واقع زمانی که این پنل با نام شما در گوگل درج میشود و اطلاعات شما همچون نام و شغل و بیوگرافی شما را در ان نمایش میدهد بدین معنی است که شما توسط گوگل که معتبرترین موتور جستجوی جهان برای تمامی مردم است یک فرد شناخته شده هستید،چرا که همانطور که در بالا اشاره کردیم این نالج پنل یا همان گراف دانش (Knowledge Graph) اطلاعات خود را از موتور جستجوی گوگل دریافت میکند و بدین منظور وقتی شما دارای این پنل باشید دارای یک رزومه بین المللی میباشید.دریافت تیک آبی اینستاگرام با نالج پنل گوگلبله درست متوجه شدید، شما برای دریافت تیک ابی اینستاگرام اولین و مهمترین چیزی که باید داشته باشید یک نالج پنل گوگل است، چرا؟ به همان دلیل رزومه ای بین المللی که باید برای شما وجود داشته باشد که یکی از مهم ترین فاکتور های اینستاگرام برای تایید درخواست تیک ابی شما است، اگر شما الان اسم هر کسی که در اینستاگرام تیک ابی دارد را در گوگل سرچ کنید میبینید که یک پنل برای این شخص مربوط به شغل او برای طراحی و نمایان شده است، پس یکی از مهمترین فاکتور ها برای دریافت تیک ابی اینستاگرام دارا بودن یک نالج پنل مربوط به شماست.ساخت نالج پنل گوگلساخت نالج پنل گوگل برای افراد مختلف متفاوت و مربوط به شغل آن هاست، مثلا برای خواننده ها باید در وبسایت های جهانی و معتبر دنیا موزیک ثبت شود، برای بازیگران و یا کارگردان ها و یا کسانی که اهل سینما هستند باید در وبسایت IMDB رزومه ای مشخصی داشته باشند، ولی تنها برای این 2 قشر جامعه کار به این سادگیست و برای اقشار مختلف دیگر همچون دکتر، مهندس و یا ... این کار کاری بسیار سخت است ولی تیم وان سرور بزودی امکانی برای شما فراهم میکند که میتوانید سفارش ساخت نالج پنل گوگل خود را با هر اطلاعاتی به تیم ما بسپرید.
ادامه مطلبBinance Earn امکان میدهد خدماتی را متناسب با سبک سرمایهگذاری خود انتخاب کرده، سپس میتوانیم استراحت کرده و اجازه دهیم سرمایه، برایمان کار کند.این سرویس مجموعه کاملی از خدمات مالی است که میتوان برای افزایش داراییهای رمز ارزی از آن استفاده کرد. میتوان آن را به عنوان حساب پس انداز رمزنگاری تصور کنیم. تفاوت حساب پس انداز معمول با Binance Earn این است که حساب ارز دیجیتال ما تواناییهای بسیار بیشتری دارد!شاید با این جمله معروف وارن بافت، سرمایهگذار مطرح آمریکایی، روبرو شده باشید: اگر راهی برای کسب درآمد در هنگام خواب پیدا نکردید، تا زمان مرگ کار خواهید کرد.. Binacne Earn راهی عالی برای افزایش پس انداز در حالی که خواب هستیم ارائه میدهد، زیرا سرمایه ما برایمان کار میکند.Binance Earn چیست؟ایننس ارن (Binance Earn) یک حساب پس انداز رمز ارزی بوده که توسط صرافی بایننس برای سرمایه گذاری و کسب درآمد از ارزهای دیجیتال ارائه شده است.اجازه دهید دستههای اصلی بایننس ارن را مرور کرده تا متوجه شویم کدام یک از سبکهای سرمایه گذاری با توجه به ویژگیها و شرایط برایمان، مناسبتر است.پس انداز منعطف (Flexible Saving)Flexible Saving به ما امکان میدهد از سرمایه خود کسب سود کنیم. استفاده از این خدمت کاملا ساده بوده و انعطافپذیری بالایی به ما میدهد. در هر زمان میتوان وجوه خود را واریز، سود کسب کرده و از آنها استفاده کنیم. بنابراین، اگر مقداری پول در والت اسپات خود نگهداری میکنیم، چرا آن را به حساب پس انداز منعطف واریز نکنیم؟ از آنجایی که هر زمان میتوان به آن دسترسی داشته باشیم، پس منطقی است زمانی که نیازی به آن نداریم از آن کسب سود کرده و هر زمان لازم بود، بهراحتی میتوان از آن برداشت انجام دهیم.نکته: در روز انتقال وجوه به حساب پسانداز منعطف، بهره محاسبه نشده و اولین سود پرداختی از روز بعد پس از واریز محاسبه میگردد.پس انداز ثابت (Fixed Saving)Fixed Saving بازدهی بهتر، اما انعطافپذیری کمتری برای دسترسی به وجوه ارائه میدهد. تفاوتی که در اینجا وجود دارد این است که یک دوره از پیش تعیین شده را برای وجوه خود تعیین کرده، تا سود مشخصی بر اساس مدت درخواستی اختصاص یابد. حساب پسانداز ثابت نرخ بهره بالاتری نسبت به پسانداز منعطف دارد، اما مدت و نرخ سود هر دو ثابت هستند.نکته: مدت پس انداز ثابت میتواند از 7 تا 90 روز متغیر باشد.وام دهی (Lending) در بایننس ارنفعالیتهای وام دهی رویدادهای ویژهای هستند که هر از چندگاهی در تب فعالیتها (Activates) در سایت بایننس ارائه میشوند. این مورد معمولا دارای محدودیتهایی بوده، به این معنی که باید در صورت تمایل سریعا اقدام به ایجاد اشتراک کنیم. فعالیتهای وام دهی حتی میتوانند بازده بالاتری نسبت به پس انداز ثابت داشته باشند. تقریبا میتوان گفت که این خدمت کاملا مشابه پس انداز ثابت است، با این تفاوت که فقط گاهی اوقات در دسترس است و از بازدهی بالاتری برخوردار می باشد.
ادامه مطلباستفاده از tcpdump در لینوکسtcpdump یک ابزار تحت کامند، بسیار قدرتمند و قابل انعطاف است و همچنین در عیب یابی مسائل و مشکلات شبکه به ما کمک می کند. در این مقاله ، برخی از رایج ترین فیچر ها ، ویژگی های و استفاده از tcpdump در لینوکس را بررسی خواهیم کرد.در مجموعه ی پر قدرت وان سرور و در بخش تیم مدیران شبکه، می خواهیم تجربیات خودمان را با شما به اشتراک بگذرایم. ما بسیار در بحث مشکلات مربوط به اتصالات ( connectivity ) برای عیب یابی دچار چالش شده ایم! در این موقعیت ها، tcpdump یک متحد و دوست بزرگ است.Tcpdump یک ابزار خط فرمان است که به ما امکان می دهد ترافیک شبکه را از طریق سیستم خود ضبط و تجزیه و تحلیل کنیم. همچنین این ابزار اغلب برای کمک به عیب یابی مشکلات شبکه و همچنین یک ابزار امنیتی نیز استفاده می شود.یک ابزار قدرتمند و همه کاره است که گزینه ها و فیلترهای زیادی را شامل می شود، tcpdump در موارد مختلفی قابل استفاده است. از آنجا که tcpdump یک ابزار خط فرمان است، برای جمع آوری داده هایی که بعدا قابل تجزیه و تحلیل هستند،کاربرد دارد؛ همچنین این ابزار قالیت این را دارد که در سرورهای راه دور ( ریموت سیستم ها یا ریموت سرور ها ) یا دستگاه هایی که GUI برای آنها در دسترس نیست ، اجرا شود. همچنین می تواند در پس زمینه مثلا به عنوان یکی از ابزار هایی مانند کرون جاب ( cron job ) اجرا شود.آموزش نصب Tcpdump در لینوکسTcpdump با چندین توزیع لینوکس همراه است، بنابراین احتمالاً ما آن را از قبل نصب داریم. با دستور زیر بررسی می کنیم که tcpdump روی سیستم ما نصب شده است یا خیر:which tcpdump/usr/sbin/tcpdumpاگر tcpdump نصب نشده بود، ما می توانیم با توجه به نسخه لینوکس مورد نظرمان آن را نصب کنیم. برای مثال، ما در CentOS و یا لینوکس Red Hat ما از دستور زیر استفاده می کنیم:sudo dnf install -y tcpdumpTcpdump به libpcap نیاز دارد، که یک کتابخانه ( لایبراری ) برای ضبط بسته های شبکه است. اگر نصب نشود ، به طور خودکار به عنوان یک دپندنسی ( وابستگی ) اضافه می شود.خب، حالا وقت ضبط پکت ها است.گرفتن پکت ها با tcpdumpبرای کپچر کردن ( گرفتن ) پکت ها برای عیب یابی یا تجزیه و تحلیل، tcpdump به پرمیژن ( سطح دسترسی ) های بالاتری نیاز دارد ، بنابراین در مثالهای زیر بیشتر دستورات با sudo پیشوند دارند.برای شروع، از دستور tcpdump --list-interfaces ( یا به صورت خلاصه -D ) برای مشاهده لیست اینترفیس های موجود شبکه برای عملیات کپچرینگ ( گرفتن / ذخیره سازی ) استفاده می کنیم:sudo tcpdump -D1.eth02.virbr03.eth14.any (Pseudo-device that captures on all interfaces)5.lo [Loopback]در مثال بالا، می توانیم لیست تمامی اینترفیس های موجود در سیستم ما را مشاهده کنیم. اینترفیس ویژه ( any ) امکان ضبط و کپچرینگ در هر اینرفیس فعال را فراهم می کند.خب، ما از این برای شروع کپچر کردن برخی از پکت ها ( بسته ها ) استفاده می کنیم. با اجرای این دستور همه پکت ها را در هر اینترفیس یا رابطی کپچر می کنیم:sudo tcpdump --interface anytcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes09:56:18.293641 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 3770820720:3770820916, ack 3503648727, win 309, options [nop,nop,TS val 76577898 ecr 510770929], length 19609:56:18.293794 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 196, win 391, options [nop,nop,TS val 510771017 ecr 76577898], length 009:56:18.295058 IP rhel75.59883 > gateway.domain: 2486+ PTR? 1.64.168.192.in-addr.arpa. (43)09:56:18.310225 IP gateway.domain > rhel75.59883: 2486 NXDomain* 0/1/0 (102)09:56:18.312482 IP rhel75.49685 > gateway.domain: 34242+ PTR? 28.64.168.192.in-addr.arpa. (44)09:56:18.322425 IP gateway.domain > rhel75.49685: 34242 NXDomain* 0/1/0 (103)09:56:18.323164 IP rhel75.56631 > gateway.domain: 29904+ PTR? 1.122.168.192.in-addr.arpa. (44)09:56:18.323342 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 196:584, ack 1, win 309, options [nop,nop,TS val 76577928 ecr 510771017], length 38809:56:18.323563 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 584, win 411, options [nop,nop,TS val 510771047 ecr 76577928], length 009:56:18.335569 IP gateway.domain > rhel75.56631: 29904 NXDomain* 0/1/0 (103)09:56:18.336429 IP rhel75.44007 > gateway.domain: 61677+ PTR? 98.122.168.192.in-addr.arpa. (45)09:56:18.336655 IP gateway.domain > rhel75.44007: 61677* 1/0/0 PTR rhel75. (65)09:56:18.337177 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 584:1644, ack 1, win 309, options [nop,nop,TS val 76577942 ecr 510771047], length 1060---- SKIPPING LONG OUTPUT -----09:56:19.342939 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 1752016, win 1444, options [nop,nop,TS val 510772067 ecr 76578948], length 0^C9003 packets captured9010 packets received by filter7 packets dropped by kernel$Tcpdump تا زمانی که پیامی مبنی بر وقفه دریافت نکند ، همچنان به کپچرینگ پکت ها ادامه می دهد. با فشار دادن Ctrl + C می توانیم کپچرینگ را قطع کنیم. همانطور که در این مثال مشاهده می کنید، tcpdump بیش از 9000 پکت را ضبط کرد. در این حالت، از آنجا که ما با استفاده از ssh به این سرور متصل هستیم ، tcpdump همه این بسته ها را هم ضبط کرد. برای محدود کردن تعداد پکت های گرفته شده و متوقف کردن tcpdump ، از گزینه -c (برای شمارش) استفاده می کنیم:sudo tcpdump -i any -c 5tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes11:21:30.242740 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 3772575680:3772575876, ack 3503651743, win 309, options [nop,nop,TS val 81689848 ecr 515883153], length 19611:21:30.242906 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 196, win 1443, options [nop,nop,TS val 515883235 ecr 81689848], length 011:21:30.244442 IP rhel75.43634 > gateway.domain: 57680+ PTR? 1.64.168.192.in-addr.arpa. (43)11:21:30.244829 IP gateway.domain > rhel75.43634: 57680 NXDomain 0/0/0 (43)11:21:30.247048 IP rhel75.33696 > gateway.domain: 37429+ PTR? 28.64.168.192.in-addr.arpa. (44)5 packets captured12 packets received by filter0 packets dropped by kernel$در این حالت ، tcpdump پس از گرفتن پنج پکت، کپچرینگ خودکار را متوقف کرد. این حالت در سناریوهای مختلف مفید است - به عنوان مثال ، اگر در عیب یابی اتصال و گرفتن چند پکت اولیه کافی است. این حالت حتی وقتی فیلترها را برای گرفتن پکت های خاص اعمال می کنیم (در زیر نشان داده شده است) بسیار مفیدتر است.به طور پیش فرض ، tcpdump آدرس های IP و پورت ها را به نام تبدیل یا ریزالو ( resolve ) می کند، همانطور که در مثال قبلی نشان داده شد. هنگام عیب یابی مشکلات شبکه، اغلب استفاده از آدرس های IP و شماره پورت آسان تر است. با استفاده از گزینه -n رزولیشن نام ، و درپورت با -nn رزولیشن نام را غیرفعال می کنیم:sudo tcpdump -i any -c5 -nntcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes23:56:24.292206 IP 192.168.64.28.22 > 192.168.64.1.35110: Flags [P.], seq 166198580:166198776, ack 2414541257, win 309, options [nop,nop,TS val 615664 ecr 540031155], length 19623:56:24.292357 IP 192.168.64.1.35110 > 192.168.64.28.22: Flags [.], ack 196, win 1377, options [nop,nop,TS val 540031229 ecr 615664], length 023:56:24.292570 IP 192.168.64.28.22 > 192.168.64.1.35110: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 615664 ecr 540031229], length 37223:56:24.292655 IP 192.168.64.1.35110 > 192.168.64.28.22: Flags [.], ack 568, win 1400, options [nop,nop,TS val 540031229 ecr 615664], length 023:56:24.292752 IP 192.168.64.28.22 > 192.168.64.1.35110: Flags [P.], seq 568:908, ack 1, win 309, options [nop,nop,TS val 615664 ecr 540031229], length 3405 packets captured6 packets received by filter0 packets dropped by kernelهمانطور که در بالا نشان داده شد، خروجی کپچر اکنون آدرس های IP و شماره پورت را نشان می دهد. این همچنین از صدور جستجوی DNS توسط tcpdump جلوگیری می کند که به ما کمک می کند تا در هنگام عیب یابی مشکلات شبکه ، ترافیک شبکه کاهش یابد.خب، اکنون که قادر به ضبط بسته های شبکه هستیم، بیایید معنی این خروجی را بررسی کنیم.تحلیل خروجیTcpdump قادر به ضبط و رمزگشایی پروتکل های مختلفی است، مانند TCP ، UDP ، ICMP و بسیاری از موارد دیگری است.به دلیل زیاد بودن حجم مطالب نمی توان همه موارد را بررسی کرد، برای کمک به شروع کار، با هم بسته TCP را بررسی می کنیم. یک بسته معمولی TCP ،کپچر شده توسط tcpdump به شکل زیر است:08:41:13.729687 IP 192.168.64.28.22 > 192.168.64.1.41916: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 372فیلد ها ممکن است بسته به نوع بسته ارسال شده، متفاوت باشد ، اما این قالب کلی است.فیلد اول ، 08: 41: 13.729687 ، نشان دهنده زمان بسته دریافت شده طبق ساعت محلی است.بعدی، ip است. به پروتکل لایه نتورک یا شبکه اشاره می کند. که در این مثال IPv4 یا ip ورژن 4 است.قسمت بعدی ، 192.168.64.28.22 ، آدرس IP منبع و پورت است. به دنبال آن آدرس IP مقصد و پورت ارائه می شود که با 192.168.64.1.41916 نشان داده شده.پس از مبدا و مقصد ، می توانیم فلگ های Flags [P.] را پیدا کنیم. مقادیر معمول برای این زمینه شامل موارد زیر است:این قسمت همچنین می تواند ترکیبی از این مقادیر، مانند [S.] برای یک بسته SYN-ACK باشد.شماره بعدی توالی داده های موجود در بسته است. برای اولین بسته ضبط شده، این یک عدد مطلق است. بسته های بعدی برای سهولت در پیگیری از تعداد نسبی استفاده می کنند. در این مثال ، توالی SEQ 196: 568 است ، به این معنی که این بسته حاوی بایت های 196 تا 568 است.در ادامه ، Ack Number: ack 1 دنبال می شود. در این حالت ، 1 است زیرا این طرف ارسال داده است. برای طرف دریافت کننده داده ، این قسمت بایت مورد انتظار بعدی (داده) را در این جریان نشان می دهد. به عنوان مثال ، شماره Ack برای بسته بعدی در این جریان 568 خواهد بود.قسمت بعدی ویندوز سایز، win 309 است که نشان دهنده تعداد بایت موجود در بافر دریافت کننده است و به دنبال آن گزینه های TCP مانند MSS (حداکثر اندازه قطعه) یا مقیاس Window وجود دارد.سرانجام ، ما طول بسته ، length 372 را داریم ، که نشان دهنده طول ، به بایت است. طول تفاوت بین بایت های آخر و اول در شماره توالی است.خب، حالا وقت آموختن این است که چگونه بسته ها را فیلتر کنیم تا نتایج را محدود کنیم و عیب یابی مسائل خاص را آسان تر کنیم.فیلتر کردن پکت هاهمانطور که در بالا ذکر شد ، tcpdump می تواند بسته های زیادی را ضبط ( کپچر ) کند، برخی از آنها حتی مربوط به مسئله ای نیستند که ما عیب یابی می کنیم. برای مثال اگر مشکل اتصال با یک وب سرور را که به ترافیک SSH علاقه مند نیستیم عیب یابی می کنیم، بنابراین حذف بسته های SSH از خروجی کار بر روی مسئله واقعی را آسان می کند.یکی از قدرتمندترین ویژگی های tcpdump توانایی فیلتر کردن پکت های گرفته شده با استفاده از پارامترهای مختلف مانند آدرس IP مبدا و مقصد ، پورت ها ، پروتکل ها و غیره است. با هم برخی از رایج ترین آنها را بررسی می کنیم.پروتکلبرای فیلتر کردن بسته ها بر اساس پروتکل، تعیین پروتکل در خط فرمان. به عنوان مثال، بسته های ICMP را فقط با استفاده از این دستور ضبط کنید:sudo tcpdump -i any -c5 icmptcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytesدر ترمینال دیگری، سعی می کنیم دستگاه دیگری را پینگ کنیم:ping opensource.comPING opensource.com (54.204.39.132) 56(84) bytes of data.64 bytes from ec2-54-204-39-132.compute-1.amazonaws.com (54.204.39.132): icmp_seq=1 ttl=47 time=39.6 msدوباره به ضبط tcpdump توجه کنید که tcpdump فقط بسته های مربوط به ICMP را ضبط و نمایش می دهد. در این حالت ، tcpdump بسته های نیم رزولیشن را که هنگام ریزالو کردن نام opensource.com تولید شده اند نمایش نمی دهد:09:34:20.136766 IP rhel75 > ec2-54-204-39-132.compute-1.amazonaws.com: ICMP echo request, id 20361, seq 1, length 6409:34:20.176402 IP ec2-54-204-39-132.compute-1.amazonaws.com > rhel75: ICMP echo reply, id 20361, seq 1, length 6409:34:21.140230 IP rhel75 > ec2-54-204-39-132.compute-1.amazonaws.com: ICMP echo request, id 20361, seq 2, length 6409:34:21.180020 IP ec2-54-204-39-132.compute-1.amazonaws.com > rhel75: ICMP echo reply, id 20361, seq 2, length 6409:34:22.141777 IP rhel75 > ec2-54-204-39-132.compute-1.amazonaws.com: ICMP echo request, id 20361, seq 3, length 645 packets captured5 packets received by filter0 packets dropped by kernelمیزبان ( هاست )با استفاده از فیلتر host فقط بسته های مربوط به یک میزبان خاص را محدود می کنیم:sudo tcpdump -i any -c5 -nn host 54.204.39.132tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes09:54:20.042023 IP 192.168.122.98.39326 > 54.204.39.132.80: Flags [S], seq 1375157070, win 29200, options [mss 1460,sackOK,TS val 122350391 ecr 0,nop,wscale 7], length 009:54:20.088127 IP 54.204.39.132.80 > 192.168.122.98.39326: Flags [S.], seq 1935542841, ack 1375157071, win 28960, options [mss 1460,sackOK,TS val 522713542 ecr 122350391,nop,wscale 9], length 009:54:20.088204 IP 192.168.122.98.39326 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 122350437 ecr 522713542], length 009:54:20.088734 IP 192.168.122.98.39326 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 122350438 ecr 522713542], length 112: HTTP: GET / HTTP/1.109:54:20.129733 IP 54.204.39.132.80 > 192.168.122.98.39326: Flags [.], ack 113, win 57, options [nop,nop,TS val 522713552 ecr 122350438], length 05 packets captured5 packets received by filter0 packets dropped by kernelدر این مثال ، tcpdump فقط بسته ها را از 54.204.39.132 و به 54.204.39.132 میزبان ضبط و نمایش می دهد.پورتبرای فیلتر کردن بسته ها بر اساس سرویس یا پورت مورد نظر، از فیلتر port استفاده می کنیم. به عنوان مثال ، بسته های مربوط به وب سرور (HTTP) را با استفاده از این دستور ضبط می کنیم:sudo tcpdump -i any -c5 -nn port 80tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes09:58:28.790548 IP 192.168.122.98.39330 > 54.204.39.132.80: Flags [S], seq 1745665159, win 29200, options [mss 1460,sackOK,TS val 122599140 ecr 0,nop,wscale 7], length 009:58:28.834026 IP 54.204.39.132.80 > 192.168.122.98.39330: Flags [S.], seq 4063583040, ack 1745665160, win 28960, options [mss 1460,sackOK,TS val 522775728 ecr 122599140,nop,wscale 9], length 009:58:28.834093 IP 192.168.122.98.39330 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 122599183 ecr 522775728], length 009:58:28.834588 IP 192.168.122.98.39330 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 122599184 ecr 522775728], length 112: HTTP: GET / HTTP/1.109:58:28.878445 IP 54.204.39.132.80 > 192.168.122.98.39330: Flags [.], ack 113, win 57, options [nop,nop,TS val 522775739 ecr 122599184], length 05 packets captured5 packets received by filter0 packets dropped by kernelIP منبع / نام هاستهمچنین می توانیم بسته ها را براساس آدرس IP منبع یا مقصد یا نام میزبان فیلتر کنیم به عنوان مثال ، برای گرفتن بسته ها از میزبان 192.168.122.98:sudo tcpdump -i any -c5 -nn src 192.168.122.98tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes10:02:15.220824 IP 192.168.122.98.39436 > 192.168.122.1.53: 59332+ A? opensource.com. (32)10:02:15.220862 IP 192.168.122.98.39436 > 192.168.122.1.53: 20749+ AAAA? opensource.com. (32)10:02:15.364062 IP 192.168.122.98.39334 > 54.204.39.132.80: Flags [S], seq 1108640533, win 29200, options [mss 1460,sackOK,TS val 122825713 ecr 0,nop,wscale 7], length 010:02:15.409229 IP 192.168.122.98.39334 > 54.204.39.132.80: Flags [.], ack 669337581, win 229, options [nop,nop,TS val 122825758 ecr 522832372], length 010:02:15.409667 IP 192.168.122.98.39334 > 54.204.39.132.80: Flags [P.], seq 0:112, ack 1, win 229, options [nop,nop,TS val 122825759 ecr 522832372], length 112: HTTP: GET / HTTP/1.15 packets captured5 packets received by filter0 packets dropped by kernelتوجه داشته باشید که tcpdumps بسته های گرفته شده با آدرس IP منبع 192.168.122.98 را برای چندین سرویس مانند وضوح نام (پورت 53) و HTTP (پورت 80) گرفته است. بسته های پاسخ نمایش داده نمی شوند زیرا IP منبع آنها متفاوت است.برعکس ، ما می توانید از فیلتر dst برای فیلتر کردن بر اساس مقصد IP / نام میزبان (هاست) استفاده کنیم:sudo tcpdump -i any -c5 -nn dst 192.168.122.98tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes10:05:03.572931 IP 192.168.122.1.53 > 192.168.122.98.47049: 2248 1/0/0 A 54.204.39.132 (48)10:05:03.572944 IP 192.168.122.1.53 > 192.168.122.98.47049: 33770 0/0/0 (32)10:05:03.621833 IP 54.204.39.132.80 > 192.168.122.98.39338: Flags [S.], seq 3474204576, ack 3256851264, win 28960, options [mss 1460,sackOK,TS val 522874425 ecr 122993922,nop,wscale 9], length 010:05:03.667767 IP 54.204.39.132.80 > 192.168.122.98.39338: Flags [.], ack 113, win 57, options [nop,nop,TS val 522874436 ecr 122993972], length 010:05:03.672221 IP 54.204.39.132.80 > 192.168.122.98.39338: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 522874437 ecr 122993972], length 642: HTTP: HTTP/1.1 302 Found5 packets captured5 packets received by filter0 packets dropped by kernelمخلوط کردن دستوراتهمچنین می توان فیلترها را با استفاده از عملگرهای منطقی و یا برای ایجاد عبارات پیچیده تر ترکیب کرد. به عنوان مثال ، برای فیلتر کردن بسته ها از آدرس IP منبع 192.168.122.98 و سرویس HTTP فقط ، از این دستور استفاده می کنیم:sudo tcpdump -i any -c5 -nn src 192.168.122.98 and port 80tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes10:08:00.472696 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [S], seq 2712685325, win 29200, options [mss 1460,sackOK,TS val 123170822 ecr 0,nop,wscale 7], length 010:08:00.516118 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [.], ack 268723504, win 229, options [nop,nop,TS val 123170865 ecr 522918648], length 010:08:00.516583 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [P.], seq 0:112, ack 1, win 229, options [nop,nop,TS val 123170866 ecr 522918648], length 112: HTTP: GET / HTTP/1.110:08:00.567044 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [.], ack 643, win 239, options [nop,nop,TS val 123170916 ecr 522918661], length 010:08:00.788153 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [F.], seq 112, ack 643, win 239, options [nop,nop,TS val 123171137 ecr 522918661], length 05 packets captured5 packets received by filter0 packets dropped by kernelبا گروه بندی فیلتر با پرانتز می توان عبارات پیچیده تری ایجاد کرد. در این حالت، کل عبارت فیلتر را با علامت های نقل قول قرار می دهیم تا از اشتباه گرفتن پوسته با عبارات پوسته جلوگیری شود:sudo tcpdump -i any -c5 -nn "port 80 and (src 192.168.122.98 or src 54.204.39.132)"tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes10:10:37.602214 IP 192.168.122.98.39346 > 54.204.39.132.80: Flags [S], seq 871108679, win 29200, options [mss 1460,sackOK,TS val 123327951 ecr 0,nop,wscale 7], length 010:10:37.650651 IP 54.204.39.132.80 > 192.168.122.98.39346: Flags [S.], seq 854753193, ack 871108680, win 28960, options [mss 1460,sackOK,TS val 522957932 ecr 123327951,nop,wscale 9], length 010:10:37.650708 IP 192.168.122.98.39346 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 123328000 ecr 522957932], length 010:10:37.651097 IP 192.168.122.98.39346 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 123328000 ecr 522957932], length 112: HTTP: GET / HTTP/1.110:10:37.692900 IP 54.204.39.132.80 > 192.168.122.98.39346: Flags [.], ack 113, win 57, options [nop,nop,TS val 522957942 ecr 123328000], length 05 packets captured5 packets received by filter0 packets dropped by kernelدر این مثال، ما بسته ها را فقط برای سرویس HTTP (پورت 80) و آدرس های IP منبع 192.168.122.98 یا 54.204.39.132 فیلتر می کنیم. این یک روش سریع برای بررسی هر دو طرف جریان یکسان است.بررسی محتوای بستهدر مثال های قبلی ، ما فقط هدر بسته ها را برای یافتن اطلاعاتی مانند منبع ، مقصد ، پورت ها و غیره بررسی می کردیم. گاهی اوقات این تنها چیزی است که ما برای عیب یابی مشکلات اتصال شبکه نیاز داریم. با این حال ، گاهی اوقات ، ما باید محتوای بسته را بررسی کنیم تا اطمینان حاصل کنیم که پیامی که ارسال می کنیم حاوی آنچه که نیاز داریم است یا پاسخ مورد انتظار را دریافت کرده ایم. برای دیدن محتوای بسته ، tcpdump دو فلگ اضافی دارد : -X برای چاپ محتوا در hex ، و ASCII یا -A برای چاپ محتوا در ASCII.به عنوان مثال ، محتوای HTTP یک درخواست وب مانند این را بررسی می کنیم:sudo tcpdump -i any -c10 -nn -A port 80tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes13:02:14.871803 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [S], seq 2546602048, win 29200, options [mss 1460,sackOK,TS val 133625221 ecr 0,nop,wscale 7], length 0E..<..@.@.....zb6.'....P...@......r........................................13:02:14.910734 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [S.], seq 1877348646, ack 2546602049, win 28960, options [mss 1460,sackOK,TS val 525532247 ecr 133625221,nop,wscale 9], length 0E..<..@./..a6.'...zb.P..o..&...A..q a...........R.W....... ................13:02:14.910832 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 133625260 ecr 525532247], length 0E..4..@.@.....zb6.'....P...Ao..'................R.W................13:02:14.911808 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 133625261 ecr 525532247], length 112: HTTP: GET / HTTP/1.1E.....@.@..1..zb6.'....P...Ao..'................R.WGET / HTTP/1.1User-Agent: Wget/1.14 (linux-gnu)Accept: */*Host: opensource.comConnection: Keep-Alive................13:02:14.951199 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [.], ack 113, win 57, options [nop,nop,TS val 525532257 ecr 133625261], length 0E..4.F@./.."6.'...zb.P..o..'.......9.2......R.a....................13:02:14.955030 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 525532258 ecr 133625261], length 642: HTTP: HTTP/1.1 302 FoundE....G@./...6.'...zb.P..o..'.......9........R.b....HTTP/1.1 302 FoundServer: nginxDate: Sun, 23 Sep 2018 17:02:14 GMTContent-Type: text/html; charset=iso-8859-1Content-Length: 207X-Content-Type-Options: nosniffLocation: https://opensource.com/Cache-Control: max-age=1209600Expires: Sun, 07 Oct 2018 17:02:14 GMTX-Request-ID: v-6baa3acc-bf52-11e8-9195-22000ab8cf2dX-Varnish: 632951979Age: 0Via: 1.1 varnish (Varnish/5.2)X-Cache: MISSConnection: keep-alive<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>302 Found</title></head><body><h1>Found</h1><p>The document has moved <a href="https://opensource.com/">here</a>.</p></body></html>................13:02:14.955083 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [.], ack 643, win 239, options [nop,nop,TS val 133625304 ecr 525532258], length 0E..4..@.@.....zb6.'....P....o...................R.b................13:02:15.195524 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [F.], seq 113, ack 643, win 239, options [nop,nop,TS val 133625545 ecr 525532258], length 0E..4..@.@.....zb6.'....P....o...................R.b................13:02:15.236592 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [F.], seq 643, ack 114, win 57, options [nop,nop,TS val 525532329 ecr 133625545], length 0E..4.H@./.. 6.'...zb.P..o..........9.I......R......................13:02:15.236656 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [.], ack 644, win 239, options [nop,nop,TS val 133625586 ecr 525532329], length 0E..4..@.@.....zb6.'....P....o...................R..................10 packets captured10 packets received by filter0 packets dropped by kernelبا توجه به مورد بالا، فرض می کند که تماس ها از HTTP ساده استفاده می کنند برای عیب یابی مشکلات API ها مفید است. برای اتصالات رمزگذاری شده ، این خروجی کاربرد کمتری دارد.ذخیره کپچر ها در یک فایلیکی دیگر از ویژگی های مفید ارائه شده توسط tcpdump توانایی ذخیره کپچر در یک فایل است تا بعداً بتوانیم نتایج را تجزیه و تحلیل کنیم. این مورد به ما امکان می دهد برای مثال بسته ها را در حالت دسته ای، در شب ضبط کرده و نتایج را در صبح تأیید کنیم. همچنین هنگامی که بسته های زیادی برای تجزیه و تحلیل وجود دارد از آنجا که ضبط در زمان واقعی می تواند خیلی سریع اتفاق بیفتد ، به ما کمک می کند.می توان برای ذخیره بسته ها در یک فایل به جای نمایش آنها روی صفحه ، از گزینه -w استفاده کرد:sudo tcpdump -i any -c10 -nn -w webserver.pcap port 80[sudo] password for ricardo:tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes10 packets captured10 packets received by filter0 packets dropped by kernelاین دستور خروجی را در فایلی به نام webserver.pcap ذخیره می کند. پسوند .pcap مخفف "packet capture" است و قراردادی برای این قالب فایل است.همانطور که در این مثال نشان داده شده است، هیچ چیز بر روی صفحه نمایش داده نمی شود و ضبط پس از گرفتن 10 بسته، طبق گزینه -c10 به پایان می رسد.Tcpdump فایلی را با فرمت باینری ایجاد می کند ، بنابراین نمی توان آن را به سادگی با ویرایشگر متن باز کرد. برای خواندن محتویات فایل ، tcpdump را با گزینه -r اجرا می کنیم:tcpdump -nn -r webserver.pcapreading from file webserver.pcap, link-type LINUX_SLL (Linux cooked)13:36:57.679494 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [S], seq 3709732619, win 29200, options [mss 1460,sackOK,TS val 135708029 ecr 0,nop,wscale 7], length 013:36:57.718932 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [S.], seq 1999298316, ack 3709732620, win 28960, options [mss 1460,sackOK,TS val 526052949 ecr 135708029,nop,wscale 9], length 013:36:57.719005 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 135708068 ecr 526052949], length 013:36:57.719186 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 135708068 ecr 526052949], length 112: HTTP: GET / HTTP/1.113:36:57.756979 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [.], ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 013:36:57.760122 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 642: HTTP: HTTP/1.1 302 Found13:36:57.760182 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [.], ack 643, win 239, options [nop,nop,TS val 135708109 ecr 526052959], length 013:36:57.977602 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [F.], seq 113, ack 643, win 239, options [nop,nop,TS val 135708327 ecr 526052959], length 013:36:58.022089 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [F.], seq 643, ack 114, win 57, options [nop,nop,TS val 526053025 ecr 135708327], length 013:36:58.022132 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [.], ack 644, win 239, options [nop,nop,TS val 135708371 ecr 526053025], length 0$از آنجا که دیگر بسته ها را مستقیماً از رابط شبکه ضبط نمی کنیم ، برای خواندن پرونده نیازی به sudo نیست.همچنین می توان از فیلترهای مورد بحث ما برای فیلتر کردن محتوا از پرونده استفاده کرد، دقیقاً مانند داده های لحظه ای. به عنوان مثال، بسته های موجود در پرونده کپچر را از آدرس IP منبع 54.204.39.132 با اجرای زیر رسیدگی می کنیم:tcpdump -nn -r webserver.pcap src 54.204.39.132reading from file webserver.pcap, link-type LINUX_SLL (Linux cooked)13:36:57.718932 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [S.], seq 1999298316, ack 3709732620, win 28960, options [mss 1460,sackOK,TS val 526052949 ecr 135708029,nop,wscale 9], length 013:36:57.756979 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [.], ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 013:36:57.760122 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 642: HTTP: HTTP/1.1 302 Found13:36:58.022089 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [F.], seq 643, ack 114, win 57, options [nop,nop,TS val 526053025 ecr 135708327], length 0جمع بندیاین ویژگی های اساسی tcpdump به ما کمک می کند تا با این ابزار قدرتمند و همه کاره شروع به کار کنیم. رابط خط فرمان tcpdump انعطاف پذیری زیادی برای ضبط و تحلیل ترافیک شبکه فراهم می کند. اگر برای درک جریانهای پیچیده تر به یک ابزار گرافیکی نیاز باشد، به Wireshark مراجعه می کنیم. یکی از مزایای Wireshark این است که می تواند فایل های .pcap گرفته شده توسط tcpdump را بخواند. می توانیم از tcpdump برای ضبط بسته ها از راه دور که فاقد رابط کاربری گرافیکی است استفاده کنیم و فایل نتیجه را با Wireshark تجزیه و تحلیل کنیم.
ادامه مطلبآموزش نصب و کانفیگ VNC server در اوبونتو 20.04 UbuntuVirtual Network Computing (VNC) یک سیستم اشتراک گرافیکی دسک تاپ است که به شما امکان می دهد از صفحه کلید و ماوس خود به صورت ریموت استفاده کنید. این یک گزینه منبع باز برای پروتکل مایکروسافت (RDP) است.در این مقاله آموزش نصب و کانفیگ VNC server در اوبونتو 20.04 توضیح داده شده است. ما همچنین نحوه اتصال ایمن از طریق یک تونل SSH به سرور VNC را به شما نشان خواهیم داد.نصب محیط دسکتاپسرورهای اوبونتو از خط فرمان مدیریت می شوند و به طور پیش فرض محیط دسکتاپ ندارند. اگر نسخه دسکتاپ اوبونتو را اجرا می کنید ، از این مرحله صرف نظر کنید.محیط های دسک تاپ مختلفی در مخازن اوبونتو موجود است. یک گزینه نصب Gnome است که محیط پیش فرض دسک تاپ در اوبونتو 20.04 است. گزینه دیگر نصب Xfce است . این یک محیط دسک تاپ سریع ، پایدار و سبک وزن است ، که آن را برای استفاده در سرور از راه دور ایده آل می کند.در این آموزش ، Xfce را نصب خواهیم کرد. دستورات زیر را به عنوان کاربر با امتیازات sudo وارد کنید :sudo apt updatesudo apt install xfce4 xfce4-goodiesبسته به سیستم شما ، بارگیری و نصب بسته های Xfce ممکن است مدتی طول بکشد.آموزش نصب VNC serverچندین سرور VNC مختلف در مخازن اوبونتو وجود دارد ، مانند TightVNC ، TigerVNC و x11vnc . هر سرور VNC از لحاظ سرعت و امنیت نقاط قوت و ضعف مختلفی دارد.ما TigerVNC را نصب خواهیم کرد. این یک VNC server با کارایی بالا و فعال است. برای نصب بسته دستور زیر را تایپ کنید:sudo apt install tigervnc-standalone-serverآموزش کانفیگ VNCپس از نصب VNC server ، مرحله بعدی ایجاد تنظیمات اولیه کاربر و تنظیم رمز عبور است.رمز عبور کاربر را با استفاده از دستور vncpasswd تنظیم کنید . هنگام اجرای دستور زیر از sudo استفاده نکنید:vncpasswdاز شما خواسته می شود گذرواژه را وارد کنید و تأیید کنید و اینکه آیا آن را به عنوان گذرواژه فقط برای مشاهده تنظیم کنید. اگر تنظیم کنید که یک گذرواژه فقط برای مشاهده تنظیم کنید ، کاربر نمی تواند با نمونه VNC با ماوس و صفحه کلید ارتباط برقرار کند.Password:Verify:Would you like to enter a view-only password (y/n)? nپرونده رمز عبور در فهرست /.vnc ذخیره می شود ~، که در صورت عدم وجود ایجاد می شود.بعد ، باید TigerVNC را برای استفاده از Xfce پیکربندی کنیم. برای انجام این کار ، فایل زیر را ایجاد کنید:nano ~/.vnc/xstartup#!/bin/sh unset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSexec startxfce4 ذخیره کنید و فایل را ببندید. دستورات بالا هر زمان که سرور TigerVNC را شروع یا راه اندازی مجدد می کنید ، به طور خودکار اجرا می شوند.پرونده ~/.vnc/xstartup همچنین باید مجوزهای اجرا را داشته باشد. از دستور chmod برای تنظیم مجوزهای پرونده استفاده کنید:chmod u+x ~/.vnc/xstartupاگر می خواهید گزینه های اضافی را به سرور VNC منتقل کنید ، یک پرونده با نام config ایجاد کنید و در هر خط یک گزینه اضافه کنید. به عنوان مثال: ~/.vnc/configgeometry=1920x1080dpi=96اکنون می توانید سرور VNC را با استفاده از دستور vncserver زیر شروع کنید:vncserverNew 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.comStarting applications specified in /home/linuxize/.vnc/xstartupLog file is /home/linuxize/.vnc/server2.linuxize.com:1.logUse xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.توجه داشته باشید که :1پس از hostname در خروجی بالا. این نشان دهنده تعداد پورت نمایشگر است که سرور vnc در آن در حال اجرا است. در این مثال ، سرور روی پورت TCP 5901(1 + 5900) در حال اجرا است . اگر یک نمونه دوم vncserver ایجاد کنید ، در پورت آزاد بعدی اجرا می شود :2، یعنی این سرور روی پورت 5902(5900 + 2) اجرا می شود .آنچه مهم است به یاد داشته باشید این است که هنگام کار با سرورهای وی ان سی ، :Xیک درگاه نمایشگر است که به آن اشاره دارد با تایپ کردن دستور زیر می توانید لیستی از تمام جلسات VNC که در حال اجرا هستند را دریافت کنید:vncserver -listTigerVNC server sessions:X DISPLAY #RFB PORT #PROCESS ID:1 5901 5710قبل از ادامه مرحله بعدی ، نمونه VNC را با استفاده از دستور vncserver با یک گزینه -kill و شماره سرور به عنوان آرگومان متوقف کنید . در این مثال ، سرور در پورت 5901 ( :1) در حال اجرا است ، بنابراین ما آن را با این کار متوقف خواهیم کرد:vncserver -kill :1Killing Xtigervnc process ID 5710... success!ایجاد یک فایل واحد Systemdبه جای شروع دستی جلسه VNC ، بیایید یک فایل systemd system ایجاد کنیم تا در صورت لزوم سرویس VNC را شروع ، متوقف و دوباره راه اندازی کنید.ویرایشگر متن خود را باز کرده و پیکربندی زیر را در آن کپی و پیست کنید. مطمئن شوید که نام کاربری را در خط 7 تغییر دهید تا با نام کاربری شما مطابقت داشته باشد.sudo nano /etc/systemd/system/vncserver@.service[Unit]Description=Remote desktop service (VNC)After=syslog.target network.target[Service]Type=simpleUser=linuxize PAMName=loginPIDFile=/home/%u/.vnc/%H%i.pidExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fgExecStop=/usr/bin/vncserver -kill :%i[Install]WantedBy=multi-user.targetذخیره کنید و فایل را ببندید.به systemd اطلاع دهید که یک پرونده واحد جدید ایجاد شده است:sudo systemctl daemon-reloadبرای شروع سرویس ، سرویس را فعال کنید:sudo systemctl enable vncserver@1.serviceعدد 1بعد از علامت @ پورت نمایشگر را نشان می دهد که سرویس VNC روی آن اجرا می شود. این بدان معناست که سرور VNC 5901همانطور که در بخش قبلی بحث کردیم ، روی پورت 1 خواهد داد .سرویس VNC را با اجرای زیر شروع کنید:sudo systemctl start vncserver@1.serviceتأیید کنید که سرویس با موفقیت شروع شده است:sudo systemctl status vncserver@1.service● vncserver@1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago...اتصال به VNC serverVNC یک پروتکل رمزگذاری شده نیست. روش توصیه شده ایجاد یک تونل SSH و انتقال ایمن ترافیک از دستگاه محلی خود در پورت 5901 به سرور موجود در همان پورت است.SSH Tunneling را در Linux و macOS تنظیم کنیداگر از سیستم عامل Linux ، macOS یا هر سیستم عامل دیگر مبتنی بر Unix استفاده کنید ، می توانید به راحتی با دستور زیر یک تونل SSH ایجاد کنید:ssh -L 5901:127.0.0.1:5901 -N -f -l vagrant 192.168.33.10از شما خواسته می شود رمزعبور کاربر را وارد کنید.حتماً usernameوserver_ip_address را جایگزین کنید با نام کاربری و آدرس IP سرور خود.SSH Tunneling را روی ویندوز تنظیم کنیداگر ویندوز را اجرا می کنید ، می توانید SSH Tunneling را با استفاده از سرویس گیرنده PuTTY SSH تنظیم کنید .Putty را باز کنید و آدرس IP سرور خود را در قسمت وارد کنید Host name or IP address.در زیر فهرست Connection، باکس SSH را باز کنید ، و Tunnels را انتخاب کنید . پورت سرور VNC را وارد کنید ( 5901) در Source Port و در Destination وارد کنید server_ip_address:5901 و روی Add کلیک کنید همانطور که در تصویر زیر نشان داده شده:برای ذخیره تنظیمات به صفحه Session برگردید ، بنابراین نیازی نیست هر بار آنها را وارد کنید. به سرور راه دور ، جلسه ذخیره شده را انتخاب کنید و روی دکمه Open کلیک کنید.اتصال با استفاده از Vncviewerاکنون که تونل SSH ایجاد شد ، زمان آن فرا رسیده است که Vncviewer خود را باز کرده و به سرور VNC در localhost:5901 متصل شوید. .برای Google Chrome می توانید از هر نمایشگر VNC مانند TigerVNC ، TightVNC ، RealVNC ، UltraVNC ، Vinagre و VNC Viewer استفاده کنید .ما از TigerVNC استفاده خواهیم کرد. viewer را باز کنید ، localhost:5901بزنید و روی Connect کلیک کنید.پس از ورود رمز ورود کاربر خود را وارد کنید ، و باید میز کار پیش فرض Xfce را مشاهده کنید. چیزی شبیه به این خواهد بود:با استفاده از صفحه کلید و ماوس می توانید تعامل با دسک تاپ XFCE از راه دور را از طریق دستگاه محلی خود شروع کنید.نتیجهما به شما آموزش نصب و کانفیگ VNC server در اوبونتو 20.04 را نشان داده ایم.برای پیکربندی سرور VNC برای بیش از یک کاربر ، پیکربندی اولیه را ایجاد کرده و رمز عبور را با استفاده از دستور vncpasswd تنظیم کنید. همچنین باید با استفاده از یک پورت دیگر ، یک پرونده سرویس جدید ایجاد کنید.
ادامه مطلبنرم افزار ریموت دسکتاپ کانکشن ( Remote Desktop Connection ) تنظیمات مختلفی ارائه می دهد، شما می توانید برای عملکرد بهتر، قابلیت اطمینان و اعتماد سازی و همچنین تجربه ی کلی از آن استفاده کنید.در شرایط کنونی که بیشتر افراد در خانه مشغول دور کاری هستند نیاز خیلی بیشتری برای ریموت شدن به سرور و یا استفاده از ریموت دسکتاپ است. یک ابزار مفید برای دسترسی به رایانه های از راه دور اتصال به دسک تاپ از راه دور مایکروسافت (RDC) است. این ابزار در ویندوز ساخته شده و همچنین برای پلتفرم های دیگر هم موجود است. ریموت دسکتاپ به شما اجازه می دهد که به کامپیوتر های دیگر در اقصی نقاط جهان ریموت شده و متصل شوید. با استفاده از ویژگی های بیسیک ( اولیه و اساسی ) RDC ( ریموت دسکتاپ کانکشن ) ، می توانید به راحتی با هر رایانه یا سرور vps از راه دور ارتباط برقرار کنید. اما با استفاده از برخی از ویژگی ها و تنظیمات پیشرفته تر ، می توانید عملکرد ، قابلیت اطمینان و تجربه کلی هر ارتباط یا سشن را تنظیم کرده و یا تغییر بدهید.همچنین با توجه به تحریمات اکسچنج ها و سایت هایی نظیر بایننس، بهترین گزینه موجود از نظر امنیتی استفاده از این سرویس یعنی VPS یا سرور مجازی ای است که شما با استفاده از ریموت دسکتاپ کانکشن به آن متصل می شوید.راه اندازی ریموت دسکتاپ، بر اساس نسخه شما از ویندوز متفاوت است. در ویندوز 10 بر روی منوی استارت کلیک کرده و به پایین لیست برنامه ها بروید، پوشه ی Windows Accessories را باز کرده، و در نهایت بر روی ریموت دسکتاپ کانکشن کلیک کنید. و در ویندوز 7 هم به همین ترتیب.در پنجره Remote Desktop Connection ، نام رایانه (computer name) یا آدرس IP دستگاه ریموت یا vps ای را که می خواهید به آن دسترسی پیدا کنید وارد کنید. سپس در قسمت مشخص شده، یوزر نیم خود را وارد کنید، توجه داشته باشید که در اکثر موارد این نام کاربری یا یوزرنیم ( Administrator ) است. سپس بر روی دکمه ی connect کلیک کنید. اما قبل از این موارد با هم چند مورد از تنظیمات مختلف را بررسی می کنیم. اگر نمی توانید تنظیمات پیشرفته تری را مشاهده کنید ، روی دکمه Show Options کلیک کنید. پنجره RDC تنظیمات خود را در بخشهای مختلف جای می دهد ، ما یکی یکی آن ها را بررسی خواهیم کرد.Generalدر برگه General می توانید کادر Always Ask for Credentials را علامت بزنید یا علامت آن را بردارید. با برداشتن علامت این جعبه ، دیگر مجبور نیستید رمز ورود خود را در هر بار اتصال به همان دستگاه وارد کنید. اگر به دلایل امنیتی نگران این موضوع هستید ، کادر را علامت گذاری کنید. اگر اعتبارنامه (Credentials) خود را قبلاً ذخیره کرده اید و باید آن را تغییر دهید یا حذف کنید ، مطمئن شوید که علامت جعبه برداشته نشده است و روی پیوند ویرایش یا حذف در جمله بالای آن کلیک کنید.گزینه Save the Current Connection Settings to an RDP File در صورتی که بخواهید از همان اتصالات از راه دور در رایانه دیگری استفاده کنید، مفید است. در این صورت ، بر روی دکمه ذخیره (Save) یا ذخیره به عنوان (Save As) کلیک کرده و پرونده RDP را در رایانه دیگر کپی کنید. در آنجا می توانید فایل RDP را باز کنید تا به همان سشن یا دسترسی پیدا کنید تا دیگر لازم نباشد ریموت دسکتاپ را دوباره راه اندازی کنید.Displayروی تب Display کلیک کنید. در قسمت Display Configuration ، می توانید اندازه ریموت دسکتاپ خود را تنظیم کنید. به طور پیش فرض ، ریموت برای استفاده از کل صفحه مانیتور شما با تمام وضوح کامل باز می شود. اگر می خواهید ریموت را در یک پنجره کوچکتر با اندازه قابل تغییر با وضوح کمتر مشاهده کنید ، نوار را به سمت چپ بکشید. بعلاوه ، اگر چند مانیتور دارید ، می توانید کادر استفاده از همه نمایشگرهای من، برای ریموت از راه دور را علامت بزنید.در قسمت Colors ، می توانید عمق رنگ ریموت از راه دور را تغییر دهید. به طور معمول ، شما می خواهید این مجموعه را در بالاترین کیفیت حفظ کنید ، اما اگر مشکلات پهنای باند عملکرد اتصال را کند می کند ، می توانید با استفاده از تنظیمات کم رنگ به عنوان یک راه حل ممکن استفاده کنید.هنگام استفاده از صفحه تمام صفحه باید گزینه نمایش نوار اتصال را انتخاب کنید تا بتوانید در حالت تمام صفحه به راحتی به کنترلهای مختلف ریموت از راه دور خود دسترسی پیدا کنید.Local Resourcesبه برگه Local Resources بروید. در قسمت Remote Audio ، روی دکمه تنظیمات کلیک کنید. در اینجا می توانید انتخاب کنید که از کجا صداهای رایانه از راه دور شنیده شود. اگر صدا از رایانه از راه دور مهم است ، تنظیمات را به Play On This Computer تغییر دهید تا بتوانید آنها را بشنوید. سپس می توانید تصمیم بگیرید که آیا ضبط صدا از راه دور مجاز است یا خیر. اگر تنظیمات را اینجا تغییر داده اید ، تأیید را کلیک کنید.در قسمت صفحه کلید ، روی دکمه منوی کشویی کلیک کنید. در اینجا ، شما می توانید تعیین کنید که چه زمان و کجا میانبرهای صفحه کلید ویندوز را فشار دهید ، چه در رایانه از راه دور و چه در رایانه فعلی.در قسمت Local Devices And Resources ، می توانید کادرهای مربوط به local resources را که می خواهید در طول یک جلسه از راه دور استفاده کنید ، مانند چاپگرهای محلی و کلیپ بورد ، علامت بزنید. برای مشاهده و انتخاب سایر دستگاههایی که ممکن است بخواهید بصورت محلی استفاده کنید ، مانند پورتها ، درایوهای دیسک و دستگاههای اتصال و پخش ، روی دکمه بیشتر کلیک کنید و سپس تأیید را کلیک کنید. بررسی این باکس ها به این معنی است که رایانه از راه دور به منابع محلی شما (local resources) دسترسی دارد. به دلایل امنیتی ، شما باید منابع موجود در این روش را فقط به منابع ضروری محدود کنید.Experienceروی تب Experience کلیک کنید. در قسمت Performance (عملکرد) ، روی منوی کشویی کلیک کنید تا سرعت اتصال خود را انتخاب کنید. به طور پیش فرض ، شما می خواهید این مجموعه را در Detect Quality Connection Automatic (حفظ کیفیت اتصال به صورت خودکار) نگه دارید. با این حال ، اگر در جلسات خود با مشکل عملکردی روبرو هستید ، می توانید با انواع دیگر اتصالات بازی کنید تا ببینید سرعت بهبود می یابد یا خیر.تنظیمات Bitmap Caching مداوم باید بررسی شود زیرا این گزینه سعی دارد با ذخیره سازی همان تصاویر از راه دور به صورت محلی ، سرعت عملکرد را افزایش دهد تا نیازی به انتقال دوباره آنها نباشد.Advancedدر آخر ، به تب Advanced بروید. در قسمت Authentication Server ، روی منوی کشویی کلیک کنید. این تنظیم نحوه مدیریت ارتباطات با رایانه های تأیید نشده را تعیین می کند. بسته به انواع رایانه هایی که به آنها متصل خواهید شد (به عنوان مثال ، ورک استیشن ها در مقابل سرورها) ، معمولاً باید این مجموعه را در Warn Me نگه دارید تا بتوانید روی آن کنترل داشته باشید.اگر سازمان شما از Remote Desktop Gateway برای اتصال به رایانه های داخلی از خارج از فایروال استفاده کند ، منطقه اتصال از هرجای دیگر اعمال می شود. در این صورت ، این می تواند تنظیماتی باشد که توسط بخش IT شما تعیین می شود. برای دیدن نحوه پیکربندی این گزینه ، روی دکمه تنظیمات کلیک کنید. مگر در مواردی که دستور دیگری داده شده باشد ، بگذارید تا روی تنظیم خودکار تشخیص خودکار RD Gateway تنظیم شود.پس از اتمام ، می توانید به یک رایانه از راه دور متصل شوید یا پنجره RDP را ببندید.جمع بندیخب، ما در این آموزش به نحوه ی کار با ریموت دسکتاپ کانکشن پرداختیم. همچنین تنظیمات آن را از موارد ابتدایی و مقدماتی تا پیشرفته مورد بررسی قرار دادیم. امیدواریم از این آموزش بهره کافی را برده باشید.
ادامه مطلبdistributed denial-of-service attacks یا (DDoS) روشی برای حمله به زیرساخت های آنلاین ، از جمله وب سایت ها و برنامه های آنلاین، است.این کار از دسترسی کاربران به خدمات جلوگیری می کند.اصطلاح، "distributed" یا "توزیع شده" به روشی است که این حملات به طور متناوب از تعداد زیادی رایانه یا دستگاه آسیب دیده ناشی می شود.جما آلن ، معمار ارشد امنیت ابری در Barracuda Networks ، می گوید: "این کار می تواند حمله ای نسبتاً ساده برای سایت های فاقد حفاظت کافی باشد."هدف این است که عملکرد طبیعی برنامه یا سایت را قطع شود، بنابراین برای هر بازدید کننده سایت و یا سرویس مورد نظر آفلاین به نظر می رسد.اهداف حمله DDoS چیست؟هدف این نوع از حملات می تواند برای اخاذی ، اخلال در تجارت رقبا و یا اعتراض باشد (حملات DDoS اغلب با گروه های هکتیویست مرتبط است) یا به عنوان بخشی از یک کارزار حمایت شده از دولت-ملت برای اهداف سیاسی یا حتی شبه نظامی باشد.همچنین محققان امنیتی اشاره دارن که حملات DDoS می تواند به عنوان انحراف استفاده شود. و به هکر ها اجازه دهد سایر سوء استفاده هارا از جمله سرقت اطلاعات انجام دهند.حمله DDoS چگونه کار می کند؟در ساده ترین شکل، حملات DDoS با طغیان ( flooding ) یک سرویس با بیش از چیزی که از عهده آن برمی آید ، کار می کند.البته، در واقعیت به این سادگی ها هم نیست و حملات DDoS برای استفاده از نقاط ضعف در اشکال مختلف ایجاد شده است.یک مهاجم کار خود را با کشف مرحله آغاز می کند و هدف آن شناسایی نقاط ضعف در سایت یا برنامه مورد نظر است. حتی ممکن است از فرم دیگری از DDoS برای پوشاندن آن فعالیت استفاده کنند.سپس اتکر یا مهاجم بهترین ابزار را برای اکسپلویت یا بهره برداری از سایت انتخاب می کند. آن ها ممکن است اکسپلویت را از طریق دیپ وب خریداری کنند و یا خودشان تولید کنند.حملات DDoS ، با طغیان یک سرویس با ترافیک بیشتر از آنچه که تحمل می کند کار می کند.
ادامه مطلببرای تبدیل شدن به یک تریدر موفق و حرفه ای باید ابتدا اصول مقدماتی ترید و سپس اصول پیشرفته تر تریدینگ را یاد بگیرید. پس از تسلط بر موارد ذکر شده، می توانید استراتژی های اثبات شده را بیاموزید و در اجرای آنها تجربه کسب کنید.همچنین، خیلی مهم ایست که در این حرفه به صورت واقع بینانه عمل کرد. و هیچ متد حرفه ای وجود ندارد که همیشه و به طور مداوم نتیجه ای بدهد که صد در صد در ترید با سود بیرون آمد. با این حال ، اگر تمرین کنید که اطلاعات دقیق را از اطلاعات نادرست یا گمراه کننده تفکیک کنید، می توانید بیشتر وقت خود را صرف تمرکز بر اطلاعاتی کنید که شما را به یک تریدر کارآمد و سودآور تبدیل می کند.مبانی تریدینگما در آموزش های پیشین به مواردی همچون، آموزش ترید در بایننس و همچنین، ترید در فارکس و نیز نکات مهم در باره ی رمز ارز ها پرداختیم.یکی از کارآمدترین روشها برای یادگیری ترید، یادگیری اصول بازار و تجارت و تریدینگ است. قبل از اجرای موفقیت آمیز اطلاعات ترید پیشرفته ، این سطح دانش اول لازم است.کتابهای مربوط به معاملات و ترید در کتابفروشی یا وب سایتهای معتبر است شما می توانید کلیه مبانی تریدینگ مورد نیاز را با هزینه نسبتاً کم یا بدون هزینه در اختیار داشته باشید. اصول اولیه شامل تمام اطلاعات واقعی در مورد ترید است، مانند:بازار های ترید ( مثل بایننس )نحوه حرکت قیمت ها ( پیشنهاد دادن و پرسیدن قیمت ها )انواع order و نحوه ی قرار دادن آن هامدیریت ریسکساعات تریدنحوه نظارت و مونیتورینگ بر عملکرد تریدینگ و معاملاتچه مقدار سرمایه برای تجارت موثر لازم استاصول تجارت و ترید معمولاً ماهیتی واقعی دارند و ذهنیت چندانی ندارند. ممکن است یک منبع اطلاعاتی بگوید که معاملات ارز در بایننس یا فارکس را با حداقل 500 دلار شروع کنید ، در حالی که منبع دیگر ممکن است بگوید حداقل با 1000 دلار شروع کنید. یک منبع لزوماً درست یا غلط نیست. اطلاعات حاصل از چندین منبع نشان می دهد که شما قطعاً باید حداقل با 500 دلار و در حالت ایده آل با 1000 دلار یا بیشتر شروع کنید.و همچنین صرافی های معتبر همچون بایننس بیشتر مبانی بازار را در اختیار تریدر ها قرار می دهند.یادگیری اصول پیشرفتهیادگیری اصول تجارت به ترید کنندگان جدید فرصتی می دهد تا در مورد بازارهای مختلف و بازاری که می خواهند در آن تجارت کنند اطلاعات کسب کنند.در هنگام یادگیری اصول اولیه، تریدر ها تعیین می کنند که آیا می خواهند سهام ، معاملات آتی ، تجارت فارکس و یا از همه مهمتر ترید در بایننس را شروع کنند. با انجام این انتخاب ، آنها می توانند در اصول ترید ویژه آن مارکت عمیق تر شوند.داشتن پس انداز کافییکی از موارد مهم این است که هرگز همه سرمایه خود را وارد سرمایه گذاری نکنید. این اولین قانون تبدیل شدن به یک تریدر موفق است. در بازار ارزهای رمز نگاری شده که نوسانات بسیار شدید است، همیشه ریسکهای زیادی سرمایه شما را تهدید میکند.با پولی وارد مارکت مورد نظر شوید که به آن نیاز ندارید تا درصورت کم شدن و یا از دست رفتن آن زندگی شما را تحت الشعاع قرار ندهد. درس گرفتن از اشتباهات خودهمه تریدر های موفق جهان بارها در انجام معاملات خود دچار اشتباه شدهاند. همچنین تریدر موفق کسی است که بعد از انجام یک اشتباه، شکست خود را میپذیرد و به جای توجیح اشتباه به دنبال دلایل آن میگردد.ممکن است تحلیل اشتباه باشد ولی بازار هیچگاه اشتباه نمیکند!اگر میخواهید به یک سرمایه گذار موفق در بازار ارزهای دیجیتال یا بورس تبدیل شوید باید از اشتباهات خود درس بگیرید و هرگز یک اشتباه را دوباره تکرار نکنید.در اولویت قرار دادن امنیتدر هر بازار سرمایهای قبل از سرمایه گذاری از امنیت کامل سیستم معاملاتی و محلی که در آن قصد انجام معاملات را دارید مطمئن شوید. در بازار ارزهای دیجیتال یا ارز های رمز نگاری شده خصوصاً برای ایرانیان، توجه به این موضوع اهمیت بیشتری پیدا میکند. قبل از هرچیز یک سرور مجازی یا vps برای خود انتخاب کنید. البته یک، وی پی اس مخصوص ترید یا سرور مجازی مخصوص ترید ، چرا که همانطور گفتیم امنیت همیشه در اولویت است.جمع بندیاین نکته مهم است که نباید با آی پی های متعدد وارد پنل بایننس شد، حدالمقدور از یک آی پی استفاده کنید که فقط از این آی پی برای یک اکانت بایننس استفاده شود تا مشکلات محدود شدن اکانت یا درخواست احراز هویت نداشته باشید. توجه داشته باشید که فیلترش-ک-ن های رایگان آی پی های اشتراکی دارن که صدها کاربر دیگر از آن استفاده میکنن و ممکن است چندین اکانت از این آی پی استفاده میکنند و همچنین تغییر در آی پی در دوره زمانی کوتاه بسیار زیاد است که باعث ایجاد مشکل میگردد.برای دریافت سرور مجازی مخصوص ترید میتونید همین الان از سیستم هوشمند وان سرور برای انتخاب خود و به صورت هدفمند استفاده کنید!برای در یافت سیستم هوشمند بر روی لینک زیر کلیک کنید:برای دریافت پیشنهاد هوشمند سرور مجازی ترید کلیک کنید !
ادامه مطلبدر این آموزش ما به بررسی یکی از ابزار های فوق العاده جالب بروت فورس صفحات لاگین یا همان ورود میپردازیم، که نام آن Web-Brutator است. ابزار Web-brutator به طور خودکار و اتوماتیک می تواند فرم های استاندارد احراز هویت و فرم های لاگین به وب را شناسایی کرده و bruteforce را به طور خودکار انجام دهد. این ویژگی از طریق فرم استاندارد ماژول در دسترس است ، و همچنین مبتنی بر چندین روش اکتشافی است.خب نگاهی بیندازیم.نصب موارد مورد نیازاول از همه ما باید، قبل از اقدام به نصب این ابزار، برخی از وابستگی ها را در سیستم kali linux خود نصب کنیم.apt install pythonapt install python3apt install python-pipapt install python3-pipنصب ابزاراکنون دستور git clone را اجرا می کنیم تا این ابزار را از gihtub بارگیری کنیم و سپس به داخل پوشه می رویم.git clone https://github.com/koutto/web-brutator.gitcd web-brutator/همانطور که می دانیم هر ابزار به ابزار دیگری نیز نیاز دارد و به آن وابستگی دارد، بنابراین دستور زیر را برای نصب این ابزارها اجرا خواهیم کرد.python3 -m pip install -r requirements.txtو تمام! همانطور که در تصویر زیر مشاهده می کنید ابزار ما با موفقیت راه اندازی شده است. با افزودن دستور "-h" می توانید تمام جزئیات مربوط به آن را بدست آورید.python3 web-brutator.py -hاکنون می توانید لیست کلمات خود را و مورد مورد نیاز دیگر مربوط به کاربر را قرار دهید. پس از تنظیم تمام جزئیات مورد نیاز در دستور، آن را اجرا کنید.–target : < از گزینه standardform برای شناسایی cms به خودی خود استفاده کنید >–url : < محل دقیق صفحه ی لاگین در وبسایت هدف >-U : < مسیر لیست کلمات نام کاربری >-P : < مسیر لیست کلمات عبور >-u : < نام کاربری >-p : < پسورد >python3 web-brutator.py --target standardform --url https://secnhack.in/wp-login.php -U user.txt -P pass.txt -s -t 40 -vو حالا ! همانطور که می بینید رمز عبور وب سایت موردنظر همراه با شناسایی خودکار CMS به راحتی انجام شده است.مشخص کردن نام کاربریبنابراین ، اگر قبلاً نام کاربری یا آدرس ایمیل مورد نظر را می دانید ، می توانید آن را با استفاده از گزینه "-u" وارد کنید.python3 web-brutator.py --target standardform --url https://secnhack.in/wp-login.php -u sg5479845@gmail.com -P pass.txt -s -t 40 -vعالی! نتایج دوباره بسیار چشمگیر است و می بینید که ما دوباره رمز ورود به وب سایت هدف را بدست آورده ایم.به همین ترتیب ، ویژگی های زیادی در داخل این ابزار وجود دارد که می توانید یکی یکی از آنها استفاده کنید و با به دست آوردن جزئیات ورود به سیستم ، از آنها استفاده کنید.جمع بندیخب، ما این در این آموزش به یکی از مباحث امنیت و تست نفوذ پرداختیم، یعنی کرک صفحه ی ورود با Web-Brutator.امیدواریم از این آموزش بهره کافی را برده باشید.
ادامه مطلب