Watch
1
0
Fork
You've already forked Seyyed_arc
0
forked from hesabix/arc
Seyyed_arc/docs/TROUBLESHOOTING_DNS.md
2026-04-14 19:34:55 +03:30

2.8 KiB
Executable file

راهنمای حل مشکل DNS برای Flutter

مشکل

خطای Failed host lookup: 'pub.flutter-io.cn' یا Could not resolve host: pub.dev هنگام اجرای flutter pub get

علت

DNS server سیستم نمی‌تواند آدرس‌های Flutter Pub را resolve کند.

راه حل‌ها

راه حل 1: تنظیم DNS با Google DNS (توصیه می‌شود)

# تنظیم DNS برای systemd-resolved
sudo mkdir -p /etc/systemd/resolved.conf.d
echo -e '[Resolve]\nDNS=8.8.8.8 8.8.4.4\nFallbackDNS=1.1.1.1' | sudo tee /etc/systemd/resolved.conf.d/dns_servers.conf
sudo systemctl restart systemd-resolved

# تست
nslookup pub.dev
curl -I https://pub.dev

راه حل 2: استفاده از اسکریپت کمکی

cd /var/www/ark
./fix_dns.sh

راه حل 3: تنظیم موقت DNS

# فقط برای session فعلی
export DNS_SERVER="8.8.8.8"
sudo resolvectl dns eth0 8.8.8.8 8.8.4.4

راه حل 4: استفاده از Mirror چینی (اگر در چین هستید)

export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
cd /var/www/ark/hesabixUI/hesabix_ui
flutter pub get

راه حل 5: بررسی و تنظیم دستی /etc/resolv.conf

# بکاپ گرفتن
sudo cp /etc/resolv.conf /etc/resolv.conf.backup

# تغییر موقت
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf

# تست
nslookup pub.dev

راه حل 6: استفاده از Proxy (اگر در شبکه محدود شده‌ای هستید)

export HTTP_PROXY="http://proxy-server:port"
export HTTPS_PROXY="http://proxy-server:port"
export NO_PROXY="localhost,127.0.0.1"

بررسی وضعیت DNS

# بررسی DNS servers فعلی
resolvectl status

# تست دسترسی به pub.dev
dig pub.dev
nslookup pub.dev
curl -I https://pub.dev

# تست دسترسی با DNS server خاص
dig @8.8.8.8 pub.dev
host pub.dev 8.8.8.8

نکات مهم

  1. پس از تنظیم DNS، حتماً systemd-resolved را restart کنید
  2. اگر از /etc/resolv.conf استفاده می‌کنید، ممکن است بعد از reboot تغییر کند
  3. برای تنظیم دائمی، از systemd-resolved استفاده کنید
  4. اگر مشکل ادامه داشت، فایروال یا proxy شبکه را بررسی کنید

تست نهایی

پس از تنظیم DNS، دستور زیر را اجرا کنید:

cd /var/www/ark/hesabixUI/hesabix_ui
flutter pub get

اگر موفق بود، می‌توانید build را ادامه دهید:

cd /var/www/ark
./build_web.sh --clean --mode release --api-base-url https://hsxn.hesabix.ir