
اگر از افزونههای مسدودکننده تبلیغ در مرورگر خسته شدهاید و دنبال راهی هستید که تبلیغ و ردیاب را برای همه دستگاههای خانه یا دفتر یکجا ببندد، Pi-hole همین کار را در سطح DNS انجام میدهد. در این مقاله نصب Pi-hole روی سرور مجازی را قدمبهقدم میبینیم، نکتههای امنیتی لازم را میگوییم و با AdGuard Home هم مقایسهاش میکنیم.
Pi-hole چیست و چطور کار میکند؟
هر بار که مرورگر یا اپلیکیشنی به یک دامنه وصل میشود، اول یک درخواست DNS میفرستد تا آدرس IP آن دامنه را بگیرد. Pi-hole بین این درخواست و پاسخ مینشیند: اگر دامنه در فهرست تبلیغدهندهها و ردیابها باشد، جواب نمیدهد یا یک آدرس خالی برمیگرداند. نتیجه این است که تبلیغ اصلا بارگذاری نمیشود، نه اینکه فقط پنهان شود.
چون این مسدودسازی روی DNS اتفاق میافتد، نیازی به نصب افزونه روی هر مرورگر و هر دستگاه نیست. کافی است دستگاهها از Pi-hole بهعنوان سرور DNS استفاده کنند؛ تلویزیون هوشمند، گوشی، لپتاپ، همه با یک تنظیم.
چرا سرور مجازی برای Pi-hole گزینه خوبی است؟
Pi-hole را میشود روی یک رزبریپای کنار مودم خانه هم نصب کرد، اما این یعنی وابسته به برق و روشنماندن همیشگی یک دستگاه فیزیکی. یک سرور مجازی این مشکل را حل میکند: همیشه روشن است، آپدیتهای امنیتی سیستمعامل را خودتان جدا از سختافزار خانگی مدیریت میکنید و اگر بعدا خواستید منابع را زیاد کنید، فقط پلن را ارتقا میدهید. اگر میخواهید فراتر از همین مقاله هم سرور را امن نگه دارید، این راهنمای امنسازی سرور ابری فایروال، SSH Key و شبکه خصوصی را هم پوشش میدهد.
نکته امنیتی: پورت ۵۳ را برای عموم باز نگذارید
یک سرور مجازی معمولا یک IP عمومی دارد و همینجا باید دقت کرد. اگر پورت ۵۳ (DNS) را بدون محدودیت برای کل اینترنت باز بگذارید، سرورتان میشود یک DNS resolver باز که هم میتواند ابزار حمله DNS amplification علیه دیگران شود، هم هر کسی میتواند از منابع سرورتان رایگان استفاده کند.
راه درست این است که دسترسی به پورت ۵۳ را با فایروال فقط به IP دستگاههای خودتان محدود کنید، یا بهتر، یک تونل WireGuard بین دستگاهها و سرور بزنید و DNS را فقط روی آن تونل در دسترس بگذارید. آریانت یک اپ آماده WireGuard دارد که همین کار را با چند کلیک روی سرور ابری راه میاندازد و پنل مدیریت کلاینتها هم دارد.
پیشنیازها
برای شروع به اینها نیاز دارید:
- یک سرور مجازی با حداقل ۱ vCPU و ۱ گیگابایت رم (برای یک خانه یا دفتر کوچک کافی است)
- اوبونتو ۲۴.۰۴ یا دبیان ۱۲ روی سرور
- دسترسی root یا کاربری با sudo
- یک IP ثابت برای سرور (معمولا پیشفرض روی سرور مجازی همینطور است)
نصب Pi-hole روی سرور مجازی، گامبهگام
اول سیستم را بهروز کنید:
sudo apt update && sudo apt upgrade -y
بعد نصبکننده رسمی Pi-hole را اجرا کنید:
curl -sSL https://install.pi-hole.net | bash
نصبکننده یک ویزارد متنی باز میکند و چند سؤال میپرسد:
- رابط شبکه — همان رابط اصلی سرور را انتخاب کنید.
- ارائهدهنده DNS بالادستی — Cloudflare یا Google سادهترین گزینهاند؛ اگر حریم خصوصی برایتان مهمتر است، بعدا میتوانید Unbound را کنار Pi-hole نصب کنید تا خودش بهصورت recursive جواب بدهد و درخواستی به بیرون نرود.
- فهرستهای مسدودسازی — فهرست پیشفرض برای شروع کافی است؛ بعدا از پنل فهرستهای بیشتر اضافه میشود.
- پروتکلها — IPv4 را فعال نگه دارید، IPv6 اگر سرور دارد.
- رمز پنل مدیریت — در پایان نصب نشان داده میشود؛ جایی ذخیرهاش کنید.
نصب که تمام شد، پنل روی آدرس http://IP-سرور/admin بالا میآید. از همینجا میتوانید آمار درخواستهای مسدودشده را ببینید، دامنهای را دستی whitelist یا blacklist کنید و فهرستها را مدیریت کنید.

پیکربندی DNS برای کل شبکه
اگر Pi-hole روی یک سرور خانگی در همان شبکه محلی باشد، کافی است در تنظیمات مودم، DNS سرویسگیرندهها (DHCP) را به IP آن سرور تغییر دهید. روی سرور مجازی که از راه دور روی اینترنت است، این مسیر مستقیم جواب نمیدهد — همینجا تونل VPN وارد میشود.
با تونل WireGuard که در بخش قبل گفتیم، در تنظیمات همان تونل یک DNS برای کلاینتها تعریف میکنید که IP داخلی Pi-hole باشد؛ اگر بهجای اپ یککلیکی ترجیح میدهید خودتان WireGuard را دستی تنظیم کنید، این راهنمای راهاندازی WireGuard مراحل را کامل توضیح میدهد. از آن لحظه، هر دستگاهی که به VPN وصل است، درخواستهای DNSاش از همان مسیر امن به Pi-hole میرسد و تبلیغها مسدود میشوند، چه آن دستگاه توی خانه باشد چه بیرون.
Pi-hole در برابر AdGuard Home: کدام را انتخاب کنیم؟
هر دو کار یکسانی انجام میدهند اما چند تفاوت عملی دارند:
| ویژگی | Pi-hole | AdGuard Home |
|---|---|---|
| نصب و اجرا | اسکریپت نصب روی اوبونتو/دبیان، چند سرویس جدا (FTL، lighttpd) | یک باینری تکی Go، نصب و آپدیت سادهتر |
| DNS-over-HTTPS/TLS | نیاز به ابزار جدا مثل cloudflared یا Unbound | پشتیبانی داخلی، بدون نصب اضافه |
| سرور DHCP داخلی | دارد | دارد |
| فهرستهای مسدودسازی آماده | جامعه بزرگتر، فهرستهای بیشتر | فهرستهای خوب ولی کمتر از Pi-hole |
| مصرف منابع | کمتر | کمی بیشتر |
| گزارشگیری و رابط کاربری | PHP، ساده و کاربردی | React، کمی مدرنتر |
برای شروع و منابع محدود، Pi-hole انتخاب رایجتری است. اگر از ابتدا DNS-over-HTTPS بدون تنظیم جانبی میخواهید، AdGuard Home سریعتر به نتیجه میرساند.
مشکلات رایج و راهحل آنها
پورت ۵۳ قبلا اشغال است: روی اوبونتوهای تازه، سرویس systemd-resolved معمولا همین پورت را گرفته. دستور زیر stub resolver آن را خاموش میکند تا Pi-hole بتواند پورت ۵۳ را بگیرد:
sudo sed -i 's/#DNSStubListener=yes/DNSStubListener=no/' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved
پنل مدیریت باز نمیشود: سرویس lighttpd را چک کنید: sudo systemctl status lighttpd. اگر غیرفعال بود، sudo systemctl restart lighttpd معمولا کافی است.
درخواستهای زیاد مسدود میشوند و سایتهای عادی هم کار نمیکنند: FTL یک rate limit پیشفرض دارد که بعد از تعداد مشخصی درخواست در یک بازه زمانی کوتاه، همه را موقتا میبندد. اگر شبکهتان دستگاههای زیادی دارد، این عدد را در /etc/pihole/pihole-FTL.conf با پارامتر RATE_LIMIT بالاتر ببرید.
فهرستها آپدیت نمیشوند: دستور pihole -g فهرستهای مسدودسازی را دستی بازخوانی میکند؛ اگر خطا داد، معمولا به دسترسی سرور به اینترنت بیرون برمیگردد.
جمعبندی
Pi-hole روی سرور مجازی یک راهحل سبک و قابلاعتماد برای مسدودسازی تبلیغ و ردیاب در سطح کل شبکه است، به شرطی که پورت DNS را پشت فایروال یا VPN نگه دارید. اگر هنوز سرور ندارید، یک سرور مجازی آریانت برای این کار بیشتر از کافی است و در چند دقیقه آماده میشود.
سؤالات متداول
آیا Pi-hole تبلیغ داخل اپلیکیشن موبایل را هم مسدود میکند؟ بله، تا جایی که آن اپلیکیشن تبلیغش را از یک دامنه مشخص میگیرد. تبلیغهایی که داخل خود اپلیکیشن بدون درخواست DNS جدا بار میشوند، مسدود نمیشوند.
Pi-hole جای آنتیویروس یا VPN را میگیرد؟ نه، کار این سه جدا از هم است. Pi-hole فقط دامنههای تبلیغ و ردیاب را فیلتر میکند؛ برای رمزنگاری ترافیک یا محافظت در برابر بدافزار باید کنار آن از VPN و آنتیویروس هم استفاده کرد.
اجرای Pi-hole چقدر منابع سرور را مصرف میکند؟ برای یک خانه یا دفتر کوچک، ۱ vCPU و ۱ گیگابایت رم معمولا کافی است. مصرف واقعی به تعداد دستگاهها و حجم فهرستهای مسدودسازی بستگی دارد.
اگر سرور خاموش شود، اینترنت کاربران قطع میشود؟ اگر Pi-hole تنها DNS سرور تعریفشده باشد و از دسترس خارج شود، دستگاهها نمیتوانند دامنهها را resolve کنند. برای همین بهتر است یک DNS پشتیبان (مثل ۱٫۱٫۱٫۱) هم در تنظیمات دوم ثبت شود.




