ההנחיה שהציגה פעם דבר אחד מציגה כעת דבר אחר, והחיבור שהשתנה היה VPN. זו כל הראיה שיש לרוב האנשים לפני שהם מסיקים שה-Mac שונה שמו, והיא אינה מספיקה. macOS שומר לפחות שלושה ערכי שם נפרדים, לכל אחד תפקיד אחר, והנחיית shell מציגה לכל היותר אחד מהם באופן שקל לקרוא אותו בטעות.

השוואה ביניהם דורשת שלוש פקודות ומכריעה את השאלה לפני שמישהו עורך משהו.

שלושה ערכים, שלושה תפקידים

שלושתם מחרוזות שהמערכת תשמח לדווח, והפיתוי הוא להתייחס לראשון שתמצאו כבעל סמכות. כך משתמש מגיע ל«תיקון» השדה הלא נכון וצופה בתסמין שורד.

ValueWhat it is responsible for
ComputerNameThe friendly name a person sees in About and on the network browser; this is the one users mean by "my Mac's name"
LocalHostNameThe Bonjour name used on the local link, usually shown with a .local suffix in Sharing
HostNameAn explicitly configured host name that may simply not be set at all

השורה השלישית היא המקום שבו מתחילה רוב הבלבול. HostName שאינו מוגדר הוא מצב רגיל, לא קלקול, והוא אומר שהמערכת נופלת חזרה למקורות אחרים כשהיא זקוקה לשם מארח. קריאה של החלל הזה כנזק מובילה לתיקון שמעולם לא היה נחוץ. היא גם מסתירה את השאלה האמיתית, שאינה מה שמו של המחשב אלא איזה שם משתמש חיפוש או הנחיה נתונים באותו רגע. ענו על זה, והערך הריק מפסיק להיראות כתקלה.

קראו לפני שאתם כותבים

שלוש הפקודות האלה רק מדווחות על ערכים. הן אינן משנות דבר, מה שהופך אותן לבטוחות להרצה במהלך חקירה.

scutil --get ComputerName
scutil --get LocalHostName
scutil --get HostName

הריצו אותן באותו מושב מקומי לפני ואחרי חיבור VPN מותר, ורשמו איזה ערך באמת שונה. אם דבר אינו שונה וההנחיה עדיין נראית שגויה, השם מעולם לא היה הבעיה: משהו בתצורת ה-shell או במושב המרוחק מציג מחרוזת אחרת.

המדריך של Apple לשמות מחשבים ולשמות מארח מקומיים ממקם את השם הידידותי תחת General ו-About, ואת השם המקומי תחת General ו-Sharing. הוא גם מתעד את הסיומת האוטומטית שמתווספת כשמחשב Mac אחר באותו קישור כבר משתמש בשם, וזה שווה לדעת לפני שאתם מתייחסים למספר בלתי צפוי כהוכחה להתערבות.

מה באמת מוכיחה הנחיית shell

הנחיה היא מחרוזת שה-shell בונה, ורכיב שם המארח שלה עשוי לבוא משם המארח המורחב, מצורה מקוצרת שלו, או מערך מקודד בקובץ פרופיל. היא עשויה גם להשתייך למושב SSH במחשב אחר לגמרי, וזה ההסבר הכי פחות זוהר והנפוץ ביותר בהרבה להנחיה שהשתנתה ברגע שחיברתם VPN.

בדקו היכן אתם לפני שאתם בודקים איך קוראים לכם. הריצו hostname והשוו אותו לשלושת הערכים השמורים, ואז הסתכלו בהגדרת ההנחיה של ה-shell כדי לראות אם היא מציגה את המארח בכלל. אם ההנחיה מכילה מחרוזת מילולית שמישהו הקליד בקובץ תצורה לפני שנים, שום שינוי מערכת לא יגרום לה להתאים.

ההשוואה חשובה גם לדיווח. הנחיה שנראית אחרת ו-ComputerName שמור ששינה את ערכו באמת הם שני ממצאים עם שני בעלים שונים, ומיזוגם למשפט אחד שולח את המהנדס הבא למקום הלא נכון.

היכן VPN יכול לגעת בשמות באופן לגיטימי

VPN משנה אילו מפענחים ותחומי חיפוש רלוונטיים, והוא יכול להעביר ללקוח שם מארח דרך DHCP אם הלקוח מוגדר לקבל אחד. זה מנגנון אמיתי, והוא גם צר יותר מ«ה-VPN שינה את שם ה-Mac שלי». מפענח שמשנה איזה שם נפתר לכתובת נתונה אינו כותב מחדש את הערכים המקומיים השמורים.

אז הפרידו שתי שאלות. האם הזהות של המחשב עצמו שונה, או שהשם שהוא משתמש בו כדי להגיע למשהו אחר שונה? על הראשונה עונים שלושת הערכים השמורים; על השנייה עונים שאילתות DNS ופרופיל החיבור שבשימוש. התייחסות אליהן כאל שאלה אחת מייצרת שינויים בהגדרות זהות בתגובה לבעיית פתרון שמות.

אם באמת נדרש שם מארח קבוע

הגדרת ערך היא פעולה מנהלית מכוונת, לא העדפה קוסמטית, והערך צריך לבוא ממי שמחזיק במדיניות השמות של המחשב. דריסת שם מנוהל כדי שההנחיה תיראה מוכרת עלולה לשבור בדיקות תעודות, ניטור וכל דבר אחר שמזהה את המארח.

כשהשינוי באמת נדרש, אותו כלי שקרא את הערכים כותב אותם, ו-HostName מקבל שם מלא בעוד השניים האחרים מצפים לצורות המקומיות. תעדו מה שיניתם ולמה, כי זה בדיוק סוג העריכה שמפתיע את האדם הבא שיסתכל על המחשב.

ברוב הדיווחים התשובה הנכונה קטנה ממה שהשאלה מרמזת: קראו את שלושת הערכים, זהו איזה מהם שונה, ותקנו רק אותו. ההנחיה הייתה תסמין של משהו, ושלוש הפקודות אומרות לכם של מה.

מאמרים קשורים