EQVPS
לוח בקרההתחלה

איך משנים את שם השרת ואת אזור הזמן ב-VPS

שנו את שם השרת וכוונו את השעון שלו לאזור הזמן שלכם ב-Ubuntu, ב-Debian וב-Windows Server, בלי אזהרת sudo שמופיעה אחרי hostnamectl לבד, ועם בדיקה של cron, היומנים וסנכרון השעון אחרי השינוי. כל שלב נבדק על התמונות שלנו.

לשרת חדש יש את השם שכתבתם בהזמנה, והשעון שלו עובד לפי UTC. את שניהם קל לשנות. לשינוי השם יש מלכודת אחת: הפקודה הרגילה משאירה שורה ישנה ב-/etc/hosts, וב-Ubuntu sudo מתלונן עליה לפני כל פקודה. המדריך הזה מתקן את שני הדברים ב-Ubuntu וב-Debian ומראה את הפקודות ל-Windows Server. הרצנו כל שלב על התמונות שלנו.

צריך משתמש עם sudo. מדריך ההגדרה של Ubuntu יוצר אחד.

1. בדקו את השם והשעה הנוכחיים

hostnamectl
timedatectl

שרת ה-Ubuntu 24.04 החדש שלנו הציג כשם מארח קבוע את השם מההזמנה, ולצדו Time zone: Etc/UTC, System clock synchronized: yes ו-NTP service: active. ב-Debian 12 ו-13 התמונה הייתה זהה. סנכרון השעון כבר עובד, כך שאין צורך להתקין NTP.

2. שנו את שם השרת

בחרו שם קצר, או שם מלא אם הוא אמור להתאים לרשומת DNS שבשליטתכם, כמו web1.example.com:

sudo hostnamectl set-hostname web1.example.com

השם משתנה מיד, אבל /etc/hosts עדיין מקשר את 127.0.1.1 לשם הישן. ב-Ubuntu זה הופיע מיד:

sudo: unable to resolve host web1.example.com: No address associated with hostname

גם hostname -f נכשל באותו אופן. Debian מצא את השם בדרך אחרת ולא הציג אזהרה, אבל ה-/etc/hosts שלו היה מיושן באותה מידה. תקנו את הקובץ בשתי המערכות:

sudo sed -i 's/^127\.0\.1\.1 .*/127.0.1.1 web1.example.com web1/' /etc/hosts
grep 127.0.1.1 /etc/hosts
hostname -f

אחרי זה sudo השתתק, hostname -f הדפיס web1.example.com ו-hostname -s הדפיס web1.

ההערה בראש /etc/hosts אומרת ש-cloud-init מנהל את הקובץ ושהשינויים שלכם עלולים ללכת לאיבוד. בתמונות שלנו cloud-init כותב אותו רק באתחול הראשון של השרת. אתחלנו, ואז גרמנו ל-cloud-init להתייחס לאתחול הבא כמופע חדש. השם והשורה שלנו ב-/etc/hosts שרדו את שניהם.

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

3. שנו את אזור הזמן

הציגו את רשימת האזורים ובחרו את שלכם. בשרת שלנו היו 497:

timedatectl list-timezones | grep -i tokyo
sudo timedatectl set-timezone Asia/Tokyo
timedatectl

השעון עצמו לא זז. משתנים רק אופן הצגת הזמנים והאופן שבו לוחות זמנים מקומיים נקראים. זה מה שראינו אחרי המעבר מ-UTC ל-Asia/Tokyo:

מהאחרי השינוי
date, journalctlמיד שעון טוקיו
cronמיד שעון טוקיו: משימה ל-09:48 רצה ב-09:48:01 JST, בלי הפעלה מחדש
/var/log/syslog (Ubuntu)המשיך לכתוב זמני UTC עד שהופעל מחדש rsyslog
/etc/timezone (Ubuntu)עדיין Etc/UTC

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

sudo systemctl restart rsyslog

Debian 12 ו-13 לא מתקינים rsyslog. היומנים שלהם נמצאים רק ב-journal, שמתאים את עצמו לאזור החדש לבד.

כמה תוכנות ישנות קוראות את האזור מ-/etc/timezone ולא מהגדרת המערכת. אם אחת מהן עדיין מציגה UTC, כתבו שם את אותו שם והפעילו את התוכנה מחדש:

echo Asia/Tokyo | sudo tee /etc/timezone

לפני שמחליפים, עברו על ה-crontab. שורה 0 3 * * * שנכתבה ל-03:00 לפי UTC תרוץ עכשיו ב-03:00 שעון טוקיו, כלומר תשע שעות מוקדם יותר בזמן אמיתי.

4. Windows Server

ב-Windows Server 2022 פתחו PowerShell כמנהל. שינוי השם דורש הפעלה מחדש:

Rename-Computer -NewName web1 -Restart

שמות מחשבים ב-Windows מוגבלים ל-15 תווים, ולכן כאן השתמשו בשם הקצר.

לאזור הזמן מצאו את המזהה והגדירו אותו. ההגדרה חלה מיד, בלי הפעלה מחדש:

Get-TimeZone -ListAvailable | Where-Object Id -like '*Tokyo*'
Set-TimeZone -Id 'Tokyo Standard Time'
Get-TimeZone

כבר התחברתם, אז זה רגע טוב לאבטח את RDP.

איזו חבילה

שם המארח ואזור הזמן לא עולים כלום, אז כל חבילה מתאימה: Nano ב-$3 לחודש לשרת Linux קטן, Windows-Small ב-$11 לחודש ל-Windows Server 2022. כל החבילות נמצאות בעמוד VPS, והתשלום ב-USDT, USDC או ETH ברשתות Base, Ethereum או Polygon.

שאלות נפוצות

האם cloud-init יחזיר את השם הישן אחרי אתחול?

לא בתמונות שלנו. הגדרנו שם חדש עם hostnamectl, אתחלנו, ואז גרמנו ל-cloud-init להתייחס לאתחול הבא כמופע חדש לגמרי. השם נשאר בשתי הפעמים, וכך גם השינוי שלנו ב-/etc/hosts. התקנה מחדש נותנת מערכת חדשה עם השם המקורי.

למה sudo כותב "unable to resolve host" אחרי שינוי השם?

hostnamectl משנה את השם אבל לא את /etc/hosts, שם 127.0.1.1 עדיין מצביע על השם הישן. ב-Ubuntu, sudo מדפיס אז "unable to resolve host" לפני כל פקודה. החליפו את השם הישן בחדש בשורה 127.0.1.1 והאזהרה תיעלם.

השרת שלי צריך לעבוד לפי UTC או לפי השעה המקומית שלי?

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

צריך להגדיר NTP?

לא. התמונות שלנו של Ubuntu ו-Debian מסנכרנות את השעון עם systemd-timesyncd מהאתחול הראשון. הריצו timedatectl וחפשו את "System clock synchronized: yes".

שינוי אזור הזמן ישבש לי את משימות ה-cron?

cron משתמש באזור החדש מיד. בשרת Ubuntu 24.04 שלנו, משימה שתוזמנה ל-09:48 שעון טוקיו רצה ב-09:48:01 שעון טוקיו, בלי להפעיל מחדש את cron. אבל בדקו משימות שנכתבו לפי UTC: עכשיו הן ירוצו בשעה הזו לפי השעון המקומי שלכם.

תגובות

אין עדיין תגובות. היו הראשונים.

השאירו תגובה

התגובות עוברות מודרציה לפני שהן מופיעות.