اگر میخواهید تبلیغات و ردیابها را در سطح DNS فیلتر کنید و کنترل بیشتری روی درخواستهای DNS داشته باشید، نصب AdGuard Home روی سرور مجازی راهحل مناسبی است. در این راهنما، ابتدا به آموزش نصب AdGuard Home روی Ubuntu میپردازیم و بعد سراغ تنظیم پنل، DNS، پورتهای موردنیاز و اتصال دستگاهها میرویم تا در پایان یک DNS قابل مدیریت روی VPS داشته باشید.
AdGuard Home چیست؟
AdGuard Home یک DNS Server با رابط کاربری تحت وب است که درخواستهای DNS دستگاههای متصل را دریافت میکند و براساس قوانین و فیلترهایی که تعیین کردهاید به آنها پاسخ میدهد. تفاوت AdGuard Home با ابزارهایی که فقط روی یک دستگاه نصب میشوند این است که میتواند بهعنوان DNS مرکزی برای چند دستگاه یا حتی یک شبکۀ کامل استفاده شود.
در این حالت، درخواستهای DNS پیش از رسیدن به Resolver اصلی از AdGuard Home عبور میکنند و سرویس هم میتواند دامنههای تبلیغاتی، ردیابها و سایر دامنههایی را که در فیلترها قرار گرفتهاند مسدود کند.
اگر قصد دارید این سرویس را خارج از شبکه محلی و روی اینترنت اجرا کنید، داشتن VPS با IP ثابت و اتصال پایدار اهمیت بیشتری پیدا میکند.
پیشنیازهای نصب AdGuard Home
برای اینکه مراحل نصب AdGuard Home DNS بدون وقفه پیش برود، پیش از شروع این موارد را آماده کنید:
- سرور مجازی: یک VPS با Ubuntu و اتصال اینترنت پایدار.
- دسترسی SSH: امکان اتصال به سرور با کاربری که دسترسی sudo داشته باشد.
- IP ثابت: یک IP عمومی ثابت تا کلاینتها همیشه DNS را از یک آدرس مشخص دریافت کنند.
- دسترسی به فایروال: برای بازکردن پورتها و محدودکردن دسترسیهای غیرضروری.
- اتصال شبکۀ پایدار: برای اینکه سرور بتواند بهصورت مداوم به درخواستهای DNS پاسخ دهد.
برای استفادۀ شخصی یا تعداد محدودی دستگاه، AdGuard Home معمولاً به منابع زیادی نیاز ندارد. بااینحال، مصرف منابع به تعداد کلاینتها، حجم درخواستهای DNS، تعداد فیلترها و سرویسهای دیگری که همزمان روی VPS اجرا میشوند بستگی دارد.
اگر هنوز VPS ندارید، میتوانید از گزینۀ خرید vps برای تهیۀ سرور موردنیاز استفاده کنید.
نصب AdGuard Home روی Ubuntu
در این آموزش از اسکریپت رسمی AdGuard Home برای نصب مستقیم استفاده میکنیم. در ابتدا با SSH به سرور متصل شوید و فهرست پکیجها را به شکل زیر بهروزرسانی کنید:
sudo apt update
حالا ابزارهایی را که در ادامه به آنها نیاز داریم نصب کنید:
sudo apt install curl dnsutils -y
پس از آمادهشدن پیشنیازها، اسکریپت رسمی نصب AdGuard Home را اجرا کنید:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
بعد از پایان نصب، آدرس پنل وب در خروجی ترمینال نمایش داده میشود. از این آدرس در مرحلۀ بعد برای انجام تنظیمات اولیه استفاده میکنیم.
نکتۀ امنیتی: اسکریپت را فقط از منبع رسمی اجرا کنید. اگر سرور شما در محیط تولیدی حساس قرار دارد، بهتر است پیش از اجرا محتوای اسکریپت را بررسی کنید یا فایل Release رسمی را بهصورت دستی دانلود و نصب کنید.
اجرای اولیۀ AdGuard Home
پس از انجام مراحل نصب بالا، AdGuard Home بهصورت یک سرویس اجرا میشود. قبل از رفتن سراغ تنظیمات پنل، با دستور زیر مطمئن شوید سرویس فعال است:
sudo systemctl status AdGuardHome
اگر سرویس درست اجرا شده باشد، در خروجی باید وضعیت فعال آن را ببینید؛ برای مثال:
Active: active (running)
در اولین اجرا، AdGuard Home برای راهاندازی اولیه از پورت 3000 استفاده میکند. از طریق همین صفحه نیز میتوانید تنظیمات پایه را در Wizard انجام دهید. برای بازکردن Wizard، آدرس زیر را در مرورگر وارد کنید:
http://IP-SERVER:3000
در این آدرس، IP-SERVER را با IP واقعی VPS جایگزین کنید.
تنظیمات اولیۀ AdGuard Home
مراحل راهاندازی Wizard کوتاه است و فقط سه تنظیم اصلی را از شما میخواهد مه به ترتیب عبارتاند از:
- انتخاب Interface: اینجا مشخص میکنید AdGuard Home روی کدام رابط شبکه و IP به درخواستهای DNS گوش دهد. در یک VPS عمومی باید رابط و آدرسی را انتخاب کنید که کلاینتها بتوانند از طریق آن به سرور DNS دسترسی داشته باشند.
- تنظیم Web Interface: در مرحلۀ بعد، پورت پنل مدیریت را انتخاب میکنید. بسته به تنظیمی که در Wizard انتخاب میکنید، رابط وب میتواند روی پورت پیشفرض یا پورت دیگری در دسترس باشد.
- ساخت حساب مدیر: در آخر، برای پنل مدیریت نام کاربری و رمز عبور تعیین کنید. چون این پنل روی یک سرور عمومی قرار دارد، بهتر است از رمز عبور طولانی و غیرقابل حدس استفاده کنید. پس از تکمیل این مرحله، وارد داشبورد AdGuard Home میشوید و میتوانید تنظیمات DNS را ادامه دهید.
AdGuard Home چه تفاوتی با Pi-hole و افزونههای AdBlock دارد؟
AdGuard Home و Pi-hole هر دو فیلترینگ را در سطح DNS انجام میدهند و میتوانند درخواستهای چند دستگاه را از یک نقطه مدیریت کنند. تفاوت این دو بیشتر در امکانات، رابط کاربری و شیوۀ مدیریت است. افزونههای AdBlock مرورگر اما فقط داخل همان مرورگر کار میکنند و معمولاً روی درخواستهای DNS سایر برنامهها یا دستگاههای شبکه اثری ندارند. اگر هدف شما فیلترکردن متمرکز برای چند دستگاه است، راهکاری مانند AdGuard Home دامنۀ کاربرد بیشتری دارد.
تنظیم Upstream DNS در AdGuard Home
بعد از تمامشدن تنظیمات اولیه، باید مشخص کنید AdGuard Home درخواستهایی را که خودش از Cache یا قوانین محلی پاسخ نمیدهد به کدام DNS بالادستی بفرستد. این سرورها همان Upstream DNS یا Resolverهای بالادستی هستند و برای تنظیم آنها، باید وارد بخش DNS settings در پنل شوید و آدرس Resolverهای موردنظر را در قسمت Upstream DNS Servers وارد کنید.
برای نمونه میتوانید از DNS عمومی Cloudflare استفاده کنید. دو آدرس رایج این سرویس 1.1.1.1 و 1.0.0.1 هستند:
1.1.1.1 1.0.0.1
البته انتخاب Resolver را فقط به نام سرویس محدود نکنید. موقعیت سرور، کیفیت مسیر شبکه و میزان پایداری هر Resolver میتواند روی زمان پاسخ اثر بگذارد؛ بنابراین بهتر است چند گزینه را در شرایط واقعی سرور خودتان مقایسه کنید.
باز کردن پورتهای موردنیاز
تا اینجا سرویس نصب شده است، اما برای اینکه کلاینتها بتوانند به آن دسترسی داشته باشند باید پورتهای لازم را در فایروال VPS باز کنید. DNS معمولی از پورت 53 روی TCP و UDP استفاده میکند. پورت 3000 هم در مرحلۀ راهاندازی اولیه برای Wizard به کار میرود و پورت رابط وب باید متناسب با تنظیمات شما در دسترس باشد. در سناریوی پایه، مستندات AdGuard نیز به پورتهای 3000/TCP، 80/TCP و 53/UDP اشاره میکند.
اگر UFW روی سرور فعال است، ابتدا پورت 53 را برای TCP و UDP باز کنید:
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
برای دسترسی به Wizard در مرحله راهاندازی نیز پورت 3000 را باز کنید:
sudo ufw allow 3000/tcp
پس از پایان تنظیمات، دوباره قوانین فایروال را بازبینی کنید و دسترسی به پنل مدیریت را فقط برای آدرسها یا شبکههایی نگه دارید که واقعاً به آن نیاز دارند.
تست DNS AdGuard Home روی Ubuntu
حالا که سرویس و پورتها تنظیم شدهاند، بهتر است پیش از اتصال سایر دستگاهها مطمئن شوید DNS پاسخ میدهد. برای این کار میتوانید از ابزار dig استفاده کنید. برای نمونه، درخواست زیر را مستقیماً به IP سرور بفرستید:
dig @IP-SERVER example.com
اگر تنظیمات درست باشد، باید پاسخ DNS دامنه را در خروجی ببینید.
یک بررسی تکمیلی هم داخل خود AdGuard Home انجام دهید: یک دامنه را باز کنید و سپس Query Log را ببینید. اگر درخواست در این بخش ثبت شده باشد، یعنی ترافیک DNS واقعاً از AdGuard Home عبور کرده است. اگر Query جدیدی در لاگ نمیبینید، بهترتیب IP تنظیمشده روی کلاینت، دسترسی به پورت 53، قوانین فایروال و وضعیت سرویس AdGuard Home را بررسی کنید.
اتصال دستگاهها به AdGuard Home
تا این مرحله AdGuard Home آمادۀ پاسخگویی است، اما دستگاههای شما هنوز بهصورت خودکار از آن استفاده نمیکنند و باید IP سرور را بهعنوان DNS روی دستگاه، روتر یا شبکه تنظیم کنید. فرض کنید IP سرور شما این آدرس است:
203.0.113.10
در این صورت، همین IP را بهعنوان DNS Server روی سیستم یا روتر وارد کنید. بعد از تغییر دیاناس، Cache DNS دستگاه را پاک کنید و با dig یا nslookup یک درخواست آزمایشی بفرستید تا مطمئن شوید تنظیم جدید اعمال شده است. اگر تعداد دستگاهها زیاد است، بهتر است این تنظیم را از طریق DHCP به کلاینتها اعلام کنید. به این ترتیب لازم نیست DNS هر دستگاه را جداگانه تغییر دهید.
انتخاب موقعیت VPS برای AdGuard Home
از آنجا که هر درخواست DNS باید بین کلاینت و VPS رفتوبرگشت داشته باشد، موقعیت جغرافیایی سرور میتواند روی Latency اثر بگذارد. برای کاربرانی که بیشتر در خاورمیانه هستند، بررسی لوکیشنهای نزدیکتر معمولاً منطقیتر است. برای مثال، خرید vps امارات میتواند برای برخی کاربران منطقه گزینۀ مناسبی باشد. در سناریوهای دیگر، استفاده از سرور مجازی ترکیه نیز میتواند از نظر موقعیت شبکه بررسی شود.
اگر مخاطبان شما در اروپا قرار دارند، Vps هلند یکی از گزینههایی است که میتوانید برای اجرای سرویس DNS بررسی کنید. بااینحال، نزدیکبودن جغرافیایی بهتنهایی تضمینکننده کیفیت بهتر نیست و باید مسیر شبکه، کیفیت دیتاسنتر، پینگ و پایداری اتصال را هم در کنار لوکیشن بررسی کنید.
نکات امنیتی مهم
چون AdGuard Home روی یک سرور عمومی اجرا میشود، بهتر است قبل از استفادۀ دائمی چند تنظیم امنیتی را جدی بگیرید. هدف این است که فقط کاربران مجاز به DNS و پنل مدیریت دسترسی داشته باشند و سرویس ناخواسته در اختیار عموم اینترنت قرار نگیرد.
- پنل مدیریت را محدود کنید: رابط مدیریتی AdGuard Home را برای تمام اینترنت باز نگذارید و فقط به افراد یا IPهای موردنیاز دسترسی بدهید.
- رمز عبور قوی انتخاب کنید: برای حساب Administrator از رمز عبور طولانی و غیرقابل حدس استفاده کنید.
- فایروال را دقیق تنظیم کنید: فقط پورتها و آدرسهایی را مجاز کنید که واقعاً برای سرویس لازماند.
- از Open Resolver جلوگیری کنید: کاربران ناشناس اینترنت نباید بتوانند از DNS شما بهعنوان Resolver عمومی استفاده کنند.
- کلاینتها را محدود کنید: دستگاهها و شبکههای مجاز را در تنظیمات AdGuard Home مشخص کنید.
- سرویس را بهروز نگه دارید: AdGuard Home و سیستمعامل سرور را بهطور منظم بهروزرسانی کنید.
- Query Log را بررسی کنید: لاگ درخواستهای DNS میتواند به شناسایی رفتارهای غیرعادی یا استفادۀ ناخواسته از سرویس کمک کند.
این محدودیتها بهخصوص زمانی مهماند که DNS روی یک IP عمومی در دسترس است. اگر دسترسی بدون کنترل باز بماند، سرور ممکن است به Open Resolver تبدیل شود و مورد سوءاستفاده قرار بگیرد.
3 مشکل رایج در نصب AdGuard Home
اگر نصب DNS AdGuard روی اوبونتو انجام شده است، اما سرویس مطابق انتظار کار نمیکند، معمولاً مشکل به یکی از چند مورد تکرارشوندۀ زیر برمیگردد. برای این منظور بهتر است عیبیابی را از پورتها و وضعیت سرویس شروع کنید و بعد سراغ تنظیمات DNS و کلاینت بروید. در ادامه به 3 مشکل رایج در نصب AdGuard Home و روش برطرف کردنشان اشاره میکنیم.
1) پورت 53 از قبل در حال استفاده است
یکی از خطاهای رایج این است که AdGuard Home نتواند روی پورت 53 اجرا شود. معمولاً علت این وضعیت، سرویسی است که از قبل پورت را در اختیار دارد؛ برای مثال: systemd-resolved. با توجه به این موضوع ابتدا ببینید چه پردازشی روی پورت 53 در حال Listen است:
sudo ss -lntup | grep :53
اگر در خروجی systemd-resolved را دیدید و مطمئن شدید همان سرویس باعث تداخل شده است، میتوانید آن را متوقف و سپس غیرفعال کنید:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
بعد از این تغییر، دوباره بررسی کنید که پورت 53 آزاد شده باشد:
sudo ss -lntup | grep :53
اگر دیگر سرویسی روی این پورت Listen نمیکند، AdGuard Home را Restart کنید:
sudo systemctl restart AdGuardHome
نکتۀ قابل توجه: systemd-resolved را بدون بررسی وابستگیهای سیستم غیرفعال نکنید. در بعضی نسخههای Ubuntu، فایل /etc/resolv.conf به این سرویس وابسته است؛ بنابراین بعد از تغییر، DNS خود سرور را هم آزمایش کنید تا ارتباط نام دامنهها مختل نشده باشد.
2) پنل AdGuard Home باز نمیشود
اگر صفحۀ تنظیمات باز نمیشود، اول وضعیت سرویس AdGuard Home را بررسی کنید:
sudo systemctl status AdGuardHome
اگر سرویس فعال است، در مرحلۀ بعد سراغ فایروال و پورتی بروید که برای پنل وب انتخاب کردهاید. بستهبودن پورت یا Listen نکردن سرویس روی آدرس مناسب میتواند مانع دسترسیتان شود.
3) DNS پاسخ نمیدهد
اگر پنل در دسترس است، اما درخواستهای DNS پاسخ نمیگیرند، این موارد را بهترتیب بررسی کنید:
- وضعیت سرویس: مطمئن شوید AdGuard Home در حال اجراست.
- پورت 53: دسترسی TCP و UDP به این پورت را در فایروال بررسی کنید.
- رابط شبکه: مطمئن شوید AdGuard Home روی IP و Interface درست Listen میکند.
- IP کلاینت: بررسی کنید دستگاه واقعاً IP سرور را بهعنوان DNS Server استفاده میکند.
- Upstream DNS: تنظیمات DNSهای بالادستی و دسترسی سرور به آنها را بررسی کنید.
جمعبندی
با نصب AdGuard Home روی سرور مجازی، میتوانید یک DNS مرکزی و قابل مدیریت برای دستگاههای خود داشته باشید و بخشی از تبلیغات و ردیابها را در سطح DNS فیلتر کنید. راهاندازی فقط به نصب سرویس محدود نمیشود و باید Upstream DNS را تنظیم کنید، پورتهای لازم را باز بگذارید، IP سرور را به کلاینتها معرفی کنید و دسترسیها را هم از نظر امنیتی محدود نگه دارید. اگر این مراحل بهدرستی انجام شوند، VPS میتواند بهعنوان DNS اختصاصی شما استفاده شود. برای انتخاب خود سرور هم بهتر است کیفیت مسیر شبکه و محل کاربران را در کنار قیمت و لوکیشن در نظر بگیرید.
سؤالات متداول
AdGuard Home چیست و چه کاربردی دارد؟
AdGuard Home یک DNS Server با رابط وب است که درخواستهای DNS را دریافت و براساس فیلترها و قوانین شما مدیریت میکند. وقتی آن را روی سرور مجازی اجرا کنید، چند دستگاه میتوانند از یک DNS مرکزی استفاده کنند و دامنههای تبلیغاتی، ردیابها و برخی دامنههای ناخواسته در همین نقطه فیلتر شوند.
آیا نصب AdGuard Home روی Ubuntu امکانپذیر است؟
بله. AdGuard Home روی Linux و از جمله Ubuntu قابل نصب است و بعد از نصب بهصورت یک سرویس اجرا میشود. برای راهاندازی روی VPS به IP ثابت، دسترسی SSH و امکان تنظیم فایروال نیاز دارید و ادامۀ پیکربندی نیز از طریق رابط وب انجام میشود.
برای نصب AdGuard Home روی VPS چه منابعی لازم است؟
برای استفادۀ شخصی یا تعداد محدودی کلاینت، AdGuard Home معمولاً منابع زیادی مصرف نمیکند و نیاز واقعی به منابع به تعداد دستگاهها، حجم Queryهای DNS، تعداد فیلترها و سرویسهای دیگری که روی VPS فعالاند بستگی دارد.
پورت DNS در AdGuard Home چیست؟
سرویس DNS در AdGuard Home بهطور معمول روی پورت 53 و هر دو پروتکل TCP و UDP کار میکند. این پورت باید در فایروال سرور و در صورت وجود، فایروال شبکه قابل دسترسی باشد. پورت 3000 هم معمولاً برای Wizard راهاندازی اولیه استفاده میشود.
چرا AdGuard Home نمیتواند روی پورت 53 اجرا شود؟
رایجترین دلیل این است که سرویس دیگری پیش از AdGuard Home پورت 53 را اشغال کرده باشد. با دستور ss میتوانید پردازش در حال استفاده از پورت را پیدا کنید. اگر DNS Resolver سیستمعامل باعث تداخل شده باشد، باید پیکربندی آن یا AdGuard Home را متناسب با نیاز سرور تغییر دهید.
چگونه عملکرد DNS AdGuard را تست کنیم؟
با dig یا nslookup یک درخواست مستقیم به IP سرور بفرستید و پاسخ را بررسی کنید. سپس Query Log پنل AdGuard Home را هم ببینید. ثبتشدن همان درخواست در لاگ نشان میدهد Query به سرویس رسیده و از آن عبور کرده است.
آیا AdGuard Home میتواند تبلیغات همۀ برنامهها را مسدود کند؟
خیر. AdGuard Home در سطح DNS و براساس دامنهها فیلتر میکند، بنابراین نمیتواند همۀ انواع تبلیغات را تشخیص دهد. اگر تبلیغ و محتوای اصلی از یک دامنه ارائه شوند، مسدودکردن دامنه ممکن است خود سرویس را هم مختل کند. بعضی برنامهها نیز میتوانند از روشهایی استفاده کنند که فیلتر DNS را دور میزند.
آیا استفاده از AdGuard Home روی VPS از نظر امنیتی مشکلی دارد؟
اجرای AdGuard Home روی VPS عمومی امکانپذیر است، اما تنظیمات امنیتی آن اهمیت زیادی دارد. اگر دسترسی DNS برای همه باز بماند، سرور میتواند به Open Resolver تبدیل شود. بنابراین بهتر است کلاینتهای مجاز را محدود کنید، پنل مدیریت را عمومی نگذارید، قوانین فایروال را دقیق تنظیم کنید و Query Log را بهصورت دورهای بررسی کنید.






