آموزش حل مشکل DNS با IPv6 خراب، بدون خاموش کردن IPv6 - سریع و ساده
# اولویت دادن به حل دامنه / Resolve با Ipv4 در سطح سرور ( برای استفاده های دیگه , در سرور های خارج و.. هم کاربرد داره )
گاهی ممکنه آی پی ورژن ۶ سرورت دچار مشکل بشه ( مثل این روزها که در ایران به کل قطع شده بود ) ، اما چون سیستمعامل هنوز تلاش میکنه از طریق DNS های IPv6 دامنهها رو resolve کنه، با خطا مواجه میشی:
- قطع اتصال به پکیجها
- ارور در نصب اسکریپتها یا Dependency ها
- کندی شدید یا عدم اتصال
راهحل تمیز: فقط اولویت DNS رو بده به IPv4
این روش روی اکثر توزیعهای لینوکس مثل Debian ، Ubuntu ، AlmaLinux و ... کار میکنه
فعالسازی اولویت با IPv4 :
grep -q '^precedence ::ffff:0:0/96 100$' /etc/gai.conf || \
grep -q '^# *precedence ::ffff:0:0/96' /etc/gai.conf && \
sudo sed -i 's/^# *precedence ::ffff:0:0\/96.*/precedence ::ffff:0:0\/96 100/' /etc/gai.conf || \
echo 'precedence ::ffff:0:0/96 100' | sudo tee -a /etc/gai.conf > /dev/null
با این کار، سیستمعامل اول IPv4 رو برای اتصال DNS انتخاب میکنه، ولی همچنان IPv6 فعاله
???? بازگشت به حالت قبل (حذف تغییر) :
sudo sed -i '/^precedence ::ffff:0:0\/96 100$/d' /etc/gai.conf
نکات
- نیاز به sudo داری چون فایل سیستمیه
- بدون ریبوت هم کار میکنه
- اگه هنوز جواب نگرفتی ، ممکنه systemd-resolved یا DNS دیگهای تنظیم شده باشه که نیاز به بررسی جدا داره