כיצד לפתור שגיאת רזולוציית DNS בשרת לינוקס?
מדריך שלב אחר שלב לכשל זמני ברזולוציית שם, כשל ברזולוציית תחום ושגיאות DNS עדכון מתאים.
למרות שנראה שלשרתי לינוקס יש חיבור לאינטרנט, ייתכן שכתובות דומיין לא יפתרו. במקרה זה, השרת יכול לגשת לכתובות IP, אבל google.com, debian.org, ubuntu.com או שירותי רישיון/API.
בעיה זו מתבטאת במיוחד בתהליכים הבאים:
- עדכון מתאים או יאם עדכון שגיאה התקבלה במהלך
- קישורי רישיון WHMCS, תשלום או API לא עובדים
- פאנל המשחק לא יכול להתחבר לכתובות API מרוחקות
- פינג הדומיין לא עובד בזמן שה-Ping IP פועל בשרת
- כשל זמני בפתרון השם שגיאה נראתה
1. להבין אם ה-DNS הוא באמת הבעיה
תחילה בדוק את הגישה הציבורית לאינטרנט של השרת על ידי פינג כתובת ה-IP שלו.
ping -c 4 8.8.8.8
אם פקודה זו מגיבה, לשרת יש גישה לאינטרנט ברמת ה-IP. כעת בדוק את רזולוציית הדומיין:
ping -c 4 google.com
אם פינג IP עובד אבל פינג תחום לא עובד, ככל הנראה הבעיה היא בצד ה-DNS.
2. בדיקת הגדרות DNS נוכחיות
במערכות לינוקס, שרתי DNS הם בדרך כלל /etc/resolv.conf מוגדר בקובץ.
cat /etc/resolv.conf
הגדרת DNS בריאה נראית בדרך כלל כך:
nameserver 1.1.1.1 nameserver 8.8.8.8
אם הקובץ ריק, מכיל כתובות IP שגויות, או כותב רק כתובות DNS מקומיות/לא עובדות, פתרון הדומיין עלול להיכשל.
3. הגדרת DNS זמנית
לבדיקה מהירה, אתה יכול להגדיר DNS זמני עם הפקודה הבאה:
echo "nameserver 1.1.1.1" > /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf
בדוק שוב מאוחר יותר:
ping -c 4 google.com
4. הגדרת DNS מתמשכת במערכות אובונטו / דביאן
במערכות מודרניות של אובונטו, הגדרות הרשת הן בדרך כלל netplan זה מנוהל על ידי . רשימת קבצי Netplan:
ls /etc/netplan/
ערוך את הקובץ:
nano /etc/netplan/01-netcfg.yaml
דוגמה להגדרת DNS:
network:
version: 2
ethernets:
eth0:
dhcp4: true
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8כדי להחיל את ההגדרה:
netplan apply
אם אתה מחובר דרך SSH ואינך בטוח בהגדרת הרשת, היזהר. הגדרה שגויה של netplan עלולה לשבור את חיבור ה-SSH שלך.
5. הגדרת DNS CentOS / AlmaLinux / Rocky Linux
במערכות מבוססות RedHat, ניתן לבצע הגדרות DNS באמצעות NetworkManager.
כדי לראות את שם החיבור הפעיל:
nmcli con show
דוגמה להגדרת DNS:
nmcli con mod "System eth0" ipv4.dns "1.1.1.1 8.8.8.8" nmcli con up "System eth0"
שם החיבור שלך עשוי להיות שונה. עליך להשתמש בשם החיבור שלך בפקודה.
6. בדיקה שנפתרה במערכת
רזולוציית DNS במערכות מסוימות נפתרה במערכת זה מנוהל על ידי השירות.
systemctl status systemd-resolved
אם השירות מושבת תוכל להפעיל אותו:
systemctl enable systemd-resolved systemctl start systemd-resolved
כדי לראות מצב DNS:
resolvectl status
7. בדיקת DNS לאיתור שגיאות עדכון חבילה
כאשר ה-DNS פגום, גם מנהלי החבילות לא יעבדו. לדוגמה, השגיאות הבאות עשויות להתרחש:
Temporary failure resolving 'archive.ubuntu.com' Could not resolve host Name or service not known
במקרה זה, אין לראות בחנות החבילות מושחתת. יש לבדוק תחילה את רזולוציית ה-DNS.
טעויות נפוצות
- חושב שאין אינטרנט אבל לא מבין שבעצם רק DNS פגום
- כתיבת DNS זמני בקובץ /etc/resolv.conf וחושבת שזה פתרון קבוע
- הזחה שגויה של רווח לבן בקובץ Netplan
- איות שגוי של שם חיבור NetworkManager
- חושב שה-API או מערכת הרישוי הפועלים פגומים עקב בעיית DNS
שאלות נפוצות
פינג IP עובד אבל ping domain לא עובד, מה הבעיה?
ככל הנראה יש בעיה ברזולוציית DNS. השרת יכול לגשת לאינטרנט, אבל הוא לא יכול לתרגם שמות דומיין לכתובות IP.
באילו שרתי DNS אוכל להשתמש?
זמינים בדרך כלל הם 1.1.1.1, 1.0.0.1, 8.8.8.8 ו-8.8.4.4. שרת DNS פרטי עשוי להיות מועדף במבנים ארגוניים.
מדוע resolv.conf משתנה מעצמו?
מכיוון שהקובץ מנוהל אוטומטית על ידי netplan, NetworkManager או פתרון מערכתי ברוב המערכות.
המלצות בטיחות ותפעול
- הקפד לבצע בדיקת רזולוציית תחום לאחר שינוי DNS.
- הוסף שגיאות DNS במערכות תשלום, רישוי ו-API לרשימת הבדיקה הראשונה.
- הגדר לפחות שתי כתובות DNS במקום DNS יחיד.
- אם ספק השרת שלך מספק DNS פרטי, שקול גם את זה.
- שים לב שהגדרה שגויה של netplan עלולה לשבור את חיבור ה-SSH.
מאמר זה הוכן במיוחד עבור PvPServer.