آموزش راه‌اندازی GeoDNS با CoreDNS روی لینوکس

راه‌اندازی GeoDNS با CoreDNS روی لینوکس (راهنمای عملی و حرفه‌ای)

GeoDNS یا DNS مبتنی بر موقعیت جغرافیایی، یکی از تکنیک‌های مهم در زیرساخت‌های مدرن است که به شما اجازه می‌دهد
بسته به کشور یا موقعیت کاربر، IP متفاوتی را در پاسخ DNS ارائه دهید.
این روش نقش مهمی در افزایش سرعت، بهبود تجربه کاربری و ارتقای سئو دارد.


GeoDNS چیست و چرا اهمیت دارد؟

در GeoDNS، سرور DNS شما موقعیت جغرافیایی کاربر را تشخیص داده و نزدیک‌ترین سرور را به او معرفی می‌کند.
به عنوان مثال:

  • کاربران ایران → سرور ایران
  • کاربران اروپا → سرور آلمان
  • کاربران آمریکا → سرور آمریکا

این موضوع باعث کاهش Latency، افزایش سرعت بارگذاری و کاهش فشار روی یک سرور واحد می‌شود.


کاربردهای GeoDNS

  • وب‌سایت‌های بین‌المللی
  • فروشگاه‌های آنلاین
  • سرویس‌های دانلود و استریم
  • API و سرویس‌های SaaS
  • سرورهای گیم و اپلیکیشن

اگر کاربران شما از کشورهای مختلف به سایت یا سرویس شما متصل می‌شوند، استفاده از GeoDNS تقریباً ضروری است.


پیش‌نیازهای راه‌اندازی GeoDNS

  • سرور لینوکس (Ubuntu 20.04 یا بالاتر)
  • IP عمومی ثابت
  • دسترسی Root
  • DNS Authoritative (در این آموزش CoreDNS)

نکته مهم: پایداری DNS به‌شدت وابسته به کیفیت شبکه و سخت‌افزار سرور است.
برای همین استفاده از یک زیرساخت مطمئن اهمیت زیادی دارد.

سرورهای مجازی و اختصاصی نتورکفا با پورت شبکه پرسرعت، IP پایدار و دیتاسنترهای ایران و خارج،
گزینه‌ای مناسب برای راه‌اندازی GeoDNS حرفه‌ای هستند.


نصب کامل و سریع

 wget https://networkfa.net/uploads/deploy-coredns-geoip.sh && bash deploy-coredns-geoip.sh 

نصب CoreDNS

wget https://github.com/coredns/coredns/releases/download/v1.14.1/coredns_1.14.1_linux_amd64.tgz
tar -xzf coredns_1.14.1_linux_amd64.tgz
mv coredns /usr/local/bin/
chmod +x /usr/local/bin/coredns

دانلود دیتابیس GeoIP

برای تشخیص موقعیت جغرافیایی کاربران از دیتابیس GeoLite2 استفاده می‌کنیم:

mkdir -p /etc/coredns/geoip
wget -O /etc/coredns/geoip/GeoLite2-City.mmdb https://git.io/GeoLite2-City.mmdb

پیکربندی CoreDNS برای GeoDNS

فایل تنظیمات CoreDNS را ایجاد کنید:

nano /etc/coredns/Corefile
example.com:53 {
    # View for US clients
    view us {
        expr metadata('geoip/country/code') == 'IR'
    }
    geoip /etc/coredns/geoip/GeoLite2-City.mmdb {
      edns-subnet
    }
    metadata
    file /etc/coredns/zones/example.com.ir.db
}
example.com:53 {
    # Default view (all other clients)
    # MUST BE LAST - order is important!
    file /etc/coredns/zones/example.com.default.db
}

ساخت Zone File‌ها

کاربران ایران

nano /etc/coredns/zones/example.com.ir.db
example.com. 60 IN A 185.xxx.xxx.xxx

کاربران سایر کشورها

nano /etc/coredns/zones/example.com.default.db
example.com. 60 IN A 45.xxx.xxx.xxx

غیرفعال کردن systemd-resolved

برای آزادسازی پورت 53، سرویس systemd-resolved باید متوقف شود:

systemctl stop systemd-resolved
systemctl disable systemd-resolved
rm -f /etc/resolv.conf
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" > /etc/resolv.conf

اجرای CoreDNS

/usr/local/bin/coredns -conf /etc/coredns/Corefile

تست عملکرد GeoDNS

dig example.com @IP_DNS_SERVER

با تغییر موقعیت (VPN یا سرور خارجی) مشاهده می‌کنید که IP پاسخ داده شده تغییر می‌کند.


تأثیر GeoDNS بر سئو

  • کاهش RTT و TTFB
  • بهبود Core Web Vitals
  • افزایش Crawl Rate توسط گوگل
  • تجربه کاربری بهتر برای کاربران جهانی

چرا نتورکفا برای GeoDNS انتخاب مناسبی است؟

پیاده‌سازی GeoDNS نیازمند سروری با شبکه پایدار و تأخیر کم است.
نتورکفا با ارائه:

  • سرور مجازی پرسرعت
  • سرور اختصاصی با NVMe و RAID
  • IP تمیز و پایدار
  • پشتیبانی فنی تخصصی

بستر مناسبی برای اجرای DNS، GeoDNS و سرویس‌های حساس فراهم می‌کند.

مشاهده و خرید سرور از نتورکفا


جمع‌بندی

GeoDNS یکی از مؤثرترین راهکارها برای افزایش سرعت، پایداری و سئوی وب‌سایت‌های بین‌المللی است.
با استفاده از CoreDNS و یک سرور قدرتمند، می‌توانید کنترل کامل DNS را در اختیار داشته باشید.

اگر به دنبال زیرساختی مطمئن برای GeoDNS هستید،
نتورکفا انتخاب حرفه‌ای‌هاست.

author
نتورکفا