آموزش راهاندازی 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 هستید،
نتورکفا انتخاب حرفهایهاست.