VPS-এ AdGuard Home কীভাবে সেট আপ করবেন
Ubuntu-তে AdGuard Home ইনস্টল করুন, প্রথম-চালনা উইজার্ড শেষ করুন, ওয়েব UI লক করুন, DNS-over-HTTPS ও DNS-over-TLS চালু করুন, ডিভাইস আপনার resolver-এ নির্দেশ করুন, এবং পুরো ইন্টারনেট অপব্যবহার করতে পারে এমন খোলা DNS সার্ভার চালাবেন না।

AdGuard Home স্ব-হোস্টেড DNS sinkhole এবং ওয়েব ইন্টারফেসসহ রিকার্সিভ-শৈলীর resolver। DNS হিসেবে যে ডিভাইস ব্যবহার করে — ফোন, ল্যাপটপ, স্মার্ট TV এবং অন্য VPS প্রকল্প — তাদের জন্য বিজ্ঞাপন, ট্র্যাকার ও ম্যালওয়্যার ডোমেইন ব্লক করতে পারে। ব্রাউজার এক্সটেনশনের বিপরীতে hosts ফাইল উপেক্ষা করা অ্যাপেও কাজ করে। রাস্তায় একই ফিল্টার চাইলে, বা ঘরের নেটওয়ার্কে Raspberry Pi না চাইলে VPS-এ চালানো উপযোগী।
যে বিপজ্জনক ডিফল্ট পাঠাবেন না তা হলো খোলা resolver: UDP/TCP 53 পুরো ইন্টারনেট থেকে অ্যাক্সেস নিয়ন্ত্রণ ছাড়া পৌঁছালে অপরিচিতরা আপনার VPS DNS অ্যামপ্লিফিকেশনের জন্য ব্যবহার করবে এবং অপব্যবহার অভিযোগ আসবে। এই গাইড Ubuntu-তে AdGuard Home ইনস্টল করে, ইচ্ছাকৃতভাবে এনক্রিপ্টেড DNS না খুললে DNS localhost বা ব্যক্তিগত WireGuard ইন্টারফেসে বাঁধে, ড্যাশবোর্ড HTTPS-এ রাখে, এবং দেখায় ল্যাপটপ ও ফোন ক্লাসিক পোর্ট 53 বিশ্বের জন্য না খুলে DNS-over-HTTPS (DoH) বা DNS-over-TLS (DoT) কীভাবে ব্যবহার করতে পারে।
AdGuard Home কী কাজে ভালো
সাধারণ তুলনা Pi-hole। AdGuard Home অন্তর্নির্মিত ওয়েব UI, ঐচ্ছিক এনক্রিপ্টেড DNS ফ্রন্টএন্ড এবং প্রতি-ক্লায়েন্ট সেটিংসহ একটি বাইনারি। Docker-এ বা systemd সার্ভিস হিসেবে চালাতে পারেন। Hiddence VPS-এ ব্যক্তিগত VPN-এর সঙ্গে ভালো জোড়া: ডিভাইস WireGuard-এ যোগ দেয়, টানেল দিয়ে VPS-এ DNS পাঠায়, এবং পোর্ট 53 কখনো পাবলিক করে না।
- প্রতি ডিভাইসে অ্যাপ ইনস্টল না করে নেটওয়ার্ক-ব্যাপী ব্লকিং
- DoH (443) ও DoT (853) যাতে পাবলিক Wi-Fi-তে DNS সাদা টেক্সট না হয়
- কোন ডিভাইস কোন ডোমেইনের সঙ্গে কথা বলে দেখার জন্য কোয়েরি লগ ও পরিসংখ্যান
- কাস্টম আপস্ট্রিম (Quad9, Cloudflare, বা নিজের Unbound)
- ছোট ফুটপ্রিন্ট — 1 GB VPS একটি পরিবার প্লাস কয়েকটি অতিরিক্ত ক্লায়েন্ট ফিল্টার করতে পারে
প্রয়োজনীয়তা
DoH/DoT ও ড্যাশবোর্ডের জন্য বিশ্বস্ত সার্টিফিকেট চাইলে ডোমেইন লাগে। আগে HTTP ও সার্ভার IP-তে পরীক্ষা করতে পারেন, কিন্তু সেভাবে ফেলে রাখবেন না। Ubuntu-তে systemd-resolved ইতিমধ্যে পোর্ট 53 ধরে থাকলে AdGuard Home DNS বাঁধার আগে আমরা সেটা খালি করব।
- root/sudo সহ Ubuntu 22.04 বা 24.04 VPS
- ব্যক্তিগত ব্যবহারের জন্য 1 GB RAM যথেষ্ট
- VPS-এ A রেকর্ডসহ ডোমেইন বা সাবডোমেইন (dns.example.com)
- SSH অ্যাক্সেস; DNS শুধু টানেলের ভিতরে চাইলে ঐচ্ছিক WireGuard
ধাপ ১: পোর্ট 53 খালি করুন ও AdGuard Home ইনস্টল করুন
Ubuntu Server প্রায়ই systemd-resolved-কে 127.0.0.53:53-এ stub হিসেবে চালায়। AdGuard Home আপনার বেছে নেওয়া ইন্টারফেসে 53 চায়। ইনস্টলার এটা করতে পারে, কিন্তু স্পষ্টভাবে করলে VPS-এর নিজের DNS অর্ধেক ভাঙা এড়ানো যায় (সার্ভারকে এখনও প্যাকেজ resolve করতে হয়)।
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl ca-certificates
# See who owns port 53:
ss -tulpn | grep ':53'
# Typical Ubuntu fix: stop stub listener, point the OS at a temporary resolver
mkdir -p /etc/systemd/resolved.conf.d
cat >/etc/systemd/resolved.conf.d/adguardhome.conf <<'EOF'
[Resolve]
DNS=1.1.1.1
DNSStubListener=no
EOF
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -vধাপ ২: প্রথম-চালনা উইজার্ড
ইনস্টলার একটি URL প্রিন্ট করে, সাধারণত http://YOUR_IP:3000/। খুলুন, লম্বা পাসওয়ার্ডসহ অ্যাডমিন ব্যবহারকারী তৈরি করুন এবং লিসন ঠিকানা বেছে নিন। পাবলিক VPS-এর জন্য নিরাপদ প্রথম সেটআপ: Admin Web 127.0.0.1:3000-এ (সামনে Caddy রাখবেন) বা TLS-এর পর 80/443-এ; DNS লিসন 127.0.0.1:53 প্লাস VPN ইন্টারফেস, 0.0.0.0:53-এ নয়। বন্ধুদের জন্য সত্যি LAN-শৈলীর DNS লাগলে খোলা 53/udp নয়, প্রমাণীকরণসহ 443/853-এ DoH/DoT পছন্দ করুন।
যে আপস্ট্রিম DNS সার্ভারে বিশ্বাস করেন সেগুলো বেছে নিন। অনেকে https://dns.quad9.net/dns-query বা Cloudflare ব্যবহার করেন। দ্রুত ফেলওভার চাইলে সমান্তরাল অনুরোধ চালু করুন। ডিফল্ট ফিল্টার তালিকা চালু করুন, পরে আরও যোগ করুন — প্রথম দিনে পঞ্চাশটি তালিকা চালু করলে সাইট ভাঙলে ডিবাগ অসম্ভব হয়।
ধাপ ৩: ড্যাশবোর্ডের জন্য রিভার্স প্রক্সি ও HTTPS
উইজার্ড শেষ হলে AdGuard Home সাধারণত UI পোর্ট 80-এ সরায়। সাইটও হোস্ট করলে এটা Caddy বা Nginx-এর সঙ্গে ধাক্কা খায়। পরিষ্কার প্যাটার্ন: AdGuard Home ওয়েব 127.0.0.1:8080-এ, DNS 127.0.0.1:53-এ, ড্যাশবোর্ড ও DoH উভয়ের জন্য 443-এ Caddy।
# In AdGuard Home settings, bind the web UI to 127.0.0.1:8080
# Example Caddyfile:
dns.example.com {
reverse_proxy 127.0.0.1:8080
}
# After Caddy is up:
curl -I https://dns.example.comধাপ ৪: DNS-over-HTTPS ও DNS-over-TLS চালু করুন
Encryption সেটিংসে এনক্রিপশন চালু করুন, সার্ভার নাম dns.example.com সেট করুন, এবং AdGuard Home-কে আপনার সার্টিফিকেট ফাইলে নির্দেশ করুন — Caddy যা স্টোর করে, বা 443-এ শুনলে AdGuard Home নিজে পাওয়া সার্টিফিকেট। DoH সাধারণত https://dns.example.com/dns-query। DoT হলো dns.example.com:853। Caddy ইতিমধ্যে 443 ধরে থাকলে Caddy TLS শেষ করুক এবং DoH পথ AdGuard Home-এর সাধারণ HTTP DoH পোর্টে রিভার্স প্রক্সি করুক, অথবা AdGuard Home 443-এ শুনুক ও ড্যাশবোর্ড অন্য সাবডোমেইনে রাখুন।
প্রতি ডিভাইস বদলানোর আগে ক্লায়েন্ট দিয়ে যাচাই করুন। আধুনিক curl-সহ ল্যাপটপে:
curl -H 'accept: application/dns-json' 'https://dns.example.com/dns-query?name=example.com&type=A'
# DoT test (kdig from knot-dnsutils, if installed):
# kdig @dns.example.com +tls-ca +tls-host=dns.example.com example.comধাপ ৫: আসল ডিভাইস আপনার resolver-এ নির্দেশ করুন
Windows 11 ও সাম্প্রতিক Android বিল্ড DoH টেমপ্লেট ব্যবহার করতে পারে। iOS কনফিগারেশন প্রোফাইল বা DoH সমর্থিত ক্লায়েন্ট ব্যবহার করতে পারে। Firefox ও Chromiumও কাস্টম DoH URL দেয়। ঘরের রাউটারে WAN DNS শুধু রাউটার DoT/DoH সমর্থন করলে সেট করুন; নাহলে WireGuard চালান এবং DNS VPS VPN IP-তে সেট করুন যাতে ক্লাসিক DNS কখনো ইন্টারনেট পার না হয়।
- Android 9+: প্রাইভেট DNS (DoT) → dns.example.com
- Firefox: Settings → Network → DNS over HTTPS → কাস্টম URL https://dns.example.com/dns-query
- Apple ডিভাইস: স্বাক্ষরিত mobileconfig বা DoH/DoT সমর্থিত অ্যাপ
- অন্য VPS: resolv.conf বা systemd-resolved এই AdGuard ইনস্ট্যান্সের WireGuard IP-তে সেট করুন
- এনক্রিপশন ছাড়া এলোমেলো পাবলিক নেটওয়ার্কে এই VPS IP DNS হিসেবে সেট করা এড়িয়ে চলুন
ধাপ ৬: ফায়ারওয়াল — খোলা রিকার্সিভ DNS বন্ধ করুন
এই অংশ খারাপ বিস্ময় আটকায়। SSH, HTTPS এবং ঐচ্ছিকভাবে DoT-এর জন্য 853/tcp অনুমতি দিন। খুব নির্দিষ্ট, রেট-সীমিত, প্রমাণীকৃত ডিজাইন না থাকলে 0.0.0.0/0 থেকে 53/udp অনুমতি দেবেন না — তখনও সম্ভবত দেওয়া উচিত নয়।
ufw allow OpenSSH
ufw allow 443/tcp comment 'dashboard + DoH'
ufw allow 853/tcp comment 'DoT'
# If DNS is only on WireGuard (example iface wg0, 10.8.0.1):
# ufw allow in on wg0 to any port 53 proto udp
ufw enable
ufw status verbose
# Confirm 53 is not public:
ss -tulpn | grep ':53'ফিল্টার, অনুমতি তালিকা ও ক্লায়েন্ট
AdGuard-এর ডিফল্ট DNS ফিল্টার ও একটি ম্যালওয়্যার তালিকা দিয়ে শুরু করুন। সাইট খারাপ আচরণ করলে কোয়েরি লগ দেখুন, তারপর সব ব্লকিং বন্ধ না করে নির্দিষ্ট অনুমতি নিয়ম যোগ করুন। ক্লায়েন্ট নাম ব্যবহার করুন (IP বা DoH URL-এর ClientID দিয়ে) যাতে স্মার্ট TV-তে কঠোর তালিকা ও কাজের ল্যাপটপে ঢিলে তালিকা প্রয়োগ করা যায়। সেফ সার্চ শুধু সত্যি চাইলে চালু করুন — পুনর্লিখিত Google ফলাফল না চাওয়া মানুষকে অবাক করে।
- কোয়েরি লগ: ব্লক করা ডোমেইন খুঁজুন, মিথ্যা পজিটিভ হলে হোয়াইটলিস্ট করুন
- ক্লায়েন্ট সেটিং: ডিভাইস অনুসারে আলাদা ব্লকলিস্ট
- অননুমোদিত ক্লায়েন্ট: যে রেঞ্জের মালিক নন সেগুলো ব্লক করুন
- রেট সীমাবদ্ধতা: মুষ্টিমেয়ের বেশি ব্যবহারকারী কখনো খুললে চালু করুন
সমস্যা সমাধান
VPS নিজে apt update করতে না পারলে পোর্ট 53 খালি করার সময় স্থানীয় DNS ভেঙেছেন — উপরের মতো resolved.conf-এ স্ট্যাটিক resolver দিন। ডিভাইসের ‘ইন্টারনেট আছে’ কিন্তু বিজ্ঞাপন এখনও লোড হলে তারা আপনার DNS বাইপাস করছে (হার্ডকোডেড resolver, ব্রাউজারে DoH, বা নিজের DNS ব্যবহার করা অ্যাপ)। ড্যাশবোর্ড খালি হলে ভুল ইনস্ট্যান্স দেখছেন বা উইজার্ড UI সরানোর পর এখনও পোর্ট 3000-এ আঘাত করছেন।
- apt ব্যর্থ: /etc/resolv.conf ও systemd-resolved পরীক্ষা করুন
- পোর্ট 53 ব্যবহৃত: ss -tulpn, stub লিসনার বন্ধ করুন
- DoH সার্টিফিকেট ত্রুটি: হোস্টনেম সার্টিফিকেট SAN-এর সঙ্গে মিলতে হবে
- বিজ্ঞাপন এখনও দেখা যায়: ব্রাউজার DoH অন্য প্রদানকারীতে OS ওভাররাইড করে
- উচ্চ RAM: কোয়েরি লগ + অনেক ফিল্টার তালিকা — তালিকা ছাঁটুন ও লগ ধরে রাখা ছোট করুন
নিরাপত্তা চেকলিস্ট
ওয়েব UI অ্যাডমিন প্যানেল। অনন্য পাসওয়ার্ড, শুধু HTTPS, এবং URL প্রকাশ করবেন না। AdGuard Home আপডেট রাখুন; ইনস্টল স্ক্রিপ্ট ও UI উভয় আপডেট পথ দেখায়। শুধু আপনার ডিভাইস DoH ব্যবহার করলে 443 সীমাবদ্ধ করুন — DoH পথে HTTP বেসিক অথ বা শুধু WireGuard অ্যাক্সেস বিখ্যাত খোলা resolver-এর চেয়ে অনেক নিরাপদ।
- কোনো পাবলিক 53/udp নয়
- ড্যাশবোর্ডে HTTPS
- শক্তিশালী অ্যাডমিন পাসওয়ার্ড, পাসওয়ার্ড ম্যানেজারে সংরক্ষিত
- পরিবারের ডিভাইসের জন্য WireGuard + অভ্যন্তরীণ DNS পছন্দ করুন
- AdGuardHome.yaml সার্ভারের বাইরে ব্যাকআপ করুন
টিপস
- প্রতি আপগ্রেডের আগে /opt/AdGuardHome/AdGuardHome.yaml ব্যাকআপ করুন
- নিবেদিত সাবডোমেইন ব্যবহার করুন; অসম্পর্কিত CMS-এর সঙ্গে ভাগ করবেন না
- ইতিমধ্যে Caddy চালালে 443 Caddy-কে দিন ও AdGuard Home localhost-এ রাখুন
- ডিভাইসের জন্য DoH URL নথিভুক্ত করুন — ভুলে যাবেন
- VPS শুধু ‘DNS-নিরাপদ’ না হওয়ার জন্য SSH শক্ত করা ও ফায়ারওয়াল গাইডের সঙ্গে জোড়া দিন
VPS-এ AdGuard Home সোজা: স্থানীয়ভাবে পোর্ট 53 খালি করুন, ইনস্টলার চালান, শক্তিশালী অ্যাডমিন পাসওয়ার্ডে উইজার্ড শেষ করুন, UI HTTPS-এ রাখুন, DoH/DoT চালু করুন এবং ক্লাসিক DNS পাবলিক ইন্টারনেট থেকে দূরে রাখুন। ডিভাইস আপনার এনক্রিপ্টেড এন্ডপয়েন্ট বা VPN IP-তে নির্দেশ করুন, ছোট ফিল্টার সেট দিয়ে শুরু করুন, এবং কিছু ভাঙলে কোয়েরি লগ ব্যবহার করুন। এটা আপনি সত্যি নিয়ন্ত্রণ করেন এমন ব্যক্তিগত resolver — আপনার VPS অপব্যবহার ডেটাবেসে তালিকাভুক্ত করবে এমন পাবলিক খোলা DNS নয়।