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)rsyslog रीस्टार्ट होने तक UTC समय लिखता रहा
/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 देख लें। 03:00 UTC के लिए लिखी 0 3 * * * लाइन अब टोक्यो समय के 03:00 पर, यानी असल समय में नौ घंटे पहले, चलेगी।

4. Windows Server

Windows Server 2022 पर PowerShell को एडमिनिस्ट्रेटर के रूप में खोलें। नाम बदलने के लिए रीस्टार्ट चाहिए:

Rename-Computer -NewName web1 -Restart

Windows में कंप्यूटर का नाम ज़्यादा से ज़्यादा 15 अक्षरों का हो सकता है, इसलिए यहाँ छोटा नाम इस्तेमाल करें।

टाइमज़ोन के लिए ID ढूँढें और सेट करें। यह बिना रीस्टार्ट तुरंत लागू होता है:

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

अब जब आप लॉग इन हैं, तो RDP को सुरक्षित करने का अच्छा मौका है।

कौन-सा प्लान

होस्टनेम और टाइमज़ोन की कोई कीमत नहीं, इसलिए कोई भी प्लान चलेगा: छोटे Linux सर्वर के लिए Nano $3/माह, Windows Server 2022 के लिए Windows-Small $11/माह। सारे प्लान VPS पेज पर हैं, और भुगतान Base, Ethereum या Polygon नेटवर्क पर USDT, USDC या ETH में होता है।

सामान्य प्रश्न

क्या रीबूट के बाद 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 पर सेट जॉब cron रीस्टार्ट किए बिना टोक्यो समय 09:48:01 पर चला। पर UTC के हिसाब से लिखे जॉब जाँच लें: अब वे आपके स्थानीय समय के उसी घंटे पर चलेंगे।

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।