<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سید مرتضی امیرکار</title>
        <link>https://virgool.io/feed/@m_76288656</link>
        <description>DevOps engineer</description>
        <language>fa</language>
        <pubDate>2026-06-16 07:10:05</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>سید مرتضی امیرکار</title>
            <link>https://virgool.io/@m_76288656</link>
        </image>

                    <item>
                <title>راهنمای جامع ساخت DNS Load Balancer با AdGuard Home برای سرعت و امنیت اینترنت</title>
                <link>https://virgool.io/@m_76288656/dns-load-balancer-adguard-home-guide-nu0q1pfhvfse</link>
                <description>در این پست می خوام درمورد این صحبت کنم که چطور میتونیم یک Dns Load Balancer رو به ساده ترین و موثر ترین روش ممکن برای استفاده در محیط خانه پیاده سازی کنیم.دی ان اس چیه؟کامپیوتر ها توانایی درک ادرس هایی همچون google.com یا virgool.io رو ندارند و صرفا توانایی درک یک IPبرای برقراری ارتباط دارنداینجا هست که DNS وارد عمل میشه، شما در یک درخواست از DNS server مورد نظر خود میخواهید که مقدارIP اون دامنه رو به شما بده، و پس از اون کامپیوتر شما با کمک اون IP با سرور ارتباط برقرار میکند.DNS Load Balancer چیه و چرا باید از اون استفاده کند؟همینطور که گفتم شما هربار میخواهید با یک ادرس ارتباط بر قرار کنید ابتدا کامپیوتر شما با ارسال درخواست DNS به سرور متوجه میشه که باید با چه IP ارتباط برقرار کنه، خب شما فکر کنید که در روز هزاران بار درخواست DNS ارسال میکنید ، البته لازم به ذکر هست که کامپیوتر ها در پس زمینه نیز برای ارتباط های خود نیز از DNS استفاده میکنند.و اینکه گاهی اوقات ممکنه سرعت ارتباط شما با DNS server بنا به دلایل زیادی کند شود یا اینکه ممکنه بخواهید جواب های DNS رو cache کنید تا اگه در شبکه یک نفر دیگه خواست بپرسه که IP اون دامنه چیه، نره از سرور بپرسه، بلکه از اون مقداری که cache کرده جواب رو بده، این کار باعث افزایش سرعت درخواست های DNS برای شما میشودهمچنین در لحظه ممکنه که یک DNS server سرعت بیشتری داشته باشه و جواب رو زودتر به شما بدهدر این جا هست که شما میتوانید از DNS Load Balancer استفاده کنیدشما در ان DNS server ها مورد نظر خودتون رو تعریف میکنید ، و اون هربار که شما درخواست میزنید درخواست رو به همه انها ارسال میکند و اونی که سریع تر جواب بده ، مقدار جواب را cache میکند و درخواست شما را جواب میدهدهمچنین میتواند در یک حالت دیگر هربار درخواست را به یک سرور بفرستید تا بار بین DNS server ها تقسیم شود.در حالت دیگر میتوانید درخواست را برای همه بفرستید و بعد از دریافت جواب، سرور بررسی میکند که جواب کدام سرور سرعت بیشتری دارد و مقدار IP ان را به شما برمیگرداند، البته که این روش یکم نسبت به باقی راه ها کند تر هست زیرا باید جواب تمام سرور هارو بگیرد و سرعت رسیدن بسته IP هارو بررسی کند و در نهایت به شما پاسخ دهدحتی میتوانید یک blocklist از ادرس هایی که malware هستند یا برای تبلغات استفاده میشوند را بهش بدهنید که راه رسیدن شما به انها رو ببند که باعث میشود تبلیغات در شبکه شما به همراه دسترسی به سایت های malware کاهش پیدا کند.چرا AdGuard Home را انتخاب کردیم؟شاید بپرسید با وجود ابزارهای متعدد و قدرتمندی مثل Blocky، dnscrypt-proxy یا حتی Bind برای مدیریت DNS، چرا سراغ AdGuard Home رفتیم؟ انتخاب این ابزار برای پیاده‌سازی DNS Load Balancer دلایل فنی و کاربردی متعددی دارد که آن را به گزینه‌ای ایده‌آل برای استفاده در محیط خانه یا شبکه‌های کوچک تبدیل می‌کند:۱. همه‌کاره بودن (All-in-One Solution)۲. رابط کاربری گرافیکی (Dashboard) آسان و کاربرپسند۳. پشتیبانی داخلی از روش‌های مختلف۴. قابلیت شخصی‌سازی و DNSCryptتوجه داشته باشید که AdGuard Home برای استفاده خانگی و شبکه‌های کوچک عالیه، اما Load Balancer واقعی به معنی Enterprise یا Health Check حرفه‌ای نیست. برای شبکه‌های بزرگ بهتره از ابزارهایی مثل Unbound یا dnsdist استفاده کنید.پیاده سازی AdGaurd Homeخب بریم برای پیاده سازی یک DNS Load Balancer ، ما از ابزار AdGaurd Home استفاده میکنیم و اون رو به صورت یک container با کمک docker پیاده سازی میکنیمدر ابتدا نیاز است تا شما docker رو بر روی سیستم عامل یا سرور خود نصب داشته باشید، اگه نصب ندارید با داکیومنت میتوانید ان را بر روی سیستم عامل خود نصب کنیدسپس یک فایل متنی با نام docker-compose.yml میسازیم و مقدار زیر را در ان قرار میدهیم.version: &#039;3.3&#039;services:adguardhome:container_name: adguard-homeimage: adguard/adguardhomevolumes:- work:/opt/adguardhome/work- conf:/opt/adguardhome/confports:- 53:53- 3002:3000- 80:80/tcp- 443:443/tcp- 443:443/udprestart: unless-stoppedvolumes:work:conf:سپس دستور زیر را وارد کنید تا سرویس مورد نظر اجرا شودdocker compose up -dبعد رفتن به ادرسhttp://127.0.0.1:3002میتوانید وارد بخش تنظیمات اولیه شوید.در صفحه اولیه تمامی مقادیر رو روی مقدار پیش فرض بزارید و در نهایت پس از تعریف کردن نام کاربری و رمز عبور میتوانید از طریق ادرسhttp://127.0.0.1/وارد پنل خود شوید.تنظیم DNS در AdGuard Homeدر مرحله اخر ما نیاز داریم تا DNS server ها مورد نظر خود را به AdGuard بدیم تا بین اونها ترافیک رو پخش کنهدر این مثال من از دی ان اس شکن، بگذر و الکترو استفاده میکنم،البته شما میتوانید از هرنوع DNS از هر ارائه دهنده ای استفاده کنید.برای تنظیم DNS ها ، پس از لاگین به پنل ادمین، از طریق نوار بالا روی گزینه Settings نگه میداریم و روی قسمت DNS Settings کیلیک میکنیم.سپس DNS سرور های مورد نظر خود را توی لیست Upstream DNS servers قرار دهید، برای مثال:در ادامه، در بعدی توی قسمت Upstream DNS servers ما میتوانیم به سه شکل از این سرویس استفاده کنیم که شامل:Load-balancing:توی این حالت درخواست های شما هربار به صورت رندوم به یکی از DNS server ها ارسال میشود و بار بین انها تقسیم میشود.Parallel requests:در این حالت درخواست به تمامی سرور ها به صورت همزمان ارسال میشود و هر سروری سریع تر پاسخ بدهد، مقدار جواب ان برای شما ارسال میشود.Fastest IP Addressدر این حالت درخواست شما به تمامی سرور ها ارسال میشود و زمانی که همگی پاسخ دادند، AdGuard بررسی میکند که کدام از IP های پاسخ سریع تر هست و در نهایت جواب رو برای شما ارسال میکند.این روش به دلیل مکانیزمی که دارد باعث میشود تا درخواست های DNS شما کند شود.پیشنهاد من استفاده از حالت اول و دوم هست، که بنا به نیاز خود میتوانید بین این حالت ها انتخاب کنید.توی این اموزش حالت Load-balancing را انتخاب میکنیم و در نهایت در انتهای این لیست بر روی گزینه Apply کلیک کنید تا تغییرات شما دخیره شود.نحوه استفاده از DNS ساخته شدهدر این قسمت نحوه تست کردن DNS سروری که ساختید توضیح داده میشود و اینکه چطور میتوانید در سیستم خود از ان استفاده کنید.تست DNS server با کمک دستور digاین روش برای استفاده در سیستم عامل های لینوکسی هست، اگر از MacOs استفاده میکنید این دستور به صورت پیش فرض نصب هست.برای نصب dig در سیستم عامل های debian base مثل ubuntu یا debian ، دستور زیر را اجرا کنیدsudo apt-get install dnsutilsپس از نصب با اجرا دستور زیر میتوانید dns سرور خود را تست کنیدdig google.com @127.0.0.1در بخش اول میگیم که میخوایم IP دامنه google.com را با کمک سرور 127.0.0.1 دریافت کنید.اگر این دستور را داخل یک سیستم دیگر اجرا میکنید باید بجای 127.0.0.1 ،IP مربوط به سیستمی که در ان سرویس خود را اجرا کرده اید وارد کنیدبرای مثال اگه IP مربوط به DNS server شما برابر با 192.168.1.27 هست باید به این شکل دستور را وارد کنید:dig google.com @192.168.1.27استفاده از DNS server در سیستم های مختلفبرای استفاده از DNS server متوانید به صورت دستی در تمامی دستگاه هایی که دارید ، ادرس سرور خود را به عنوان DNS server وارد کنید ، یا اینکه برای تنظیم خودکار بر روی تمامی دستگاه های شبکه نیاز است تا بر روی روتر خود ادرس DNS server را برابر با IP سرور خود قرار دهید.نحوه تغییر DNS در ویندوز، مک، گوشی و پلی استیشن ۵</description>
                <category>سید مرتضی امیرکار</category>
                <author>سید مرتضی امیرکار</author>
                <pubDate>Thu, 05 Feb 2026 15:53:00 +0330</pubDate>
            </item>
            </channel>
</rss>