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 حروف کا ہو سکتا ہے، اس لیے یہاں چھوٹا نام استعمال کریں۔

ٹائم زون کے لیے آئی ڈی ڈھونڈیں اور سیٹ کریں۔ یہ ری اسٹارٹ کے بغیر فوراً لاگو ہوتا ہے:

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 کے حساب سے لکھے کام دیکھ لیں: اب وہ آپ کے مقامی وقت کے اسی گھنٹے پر چلیں گے۔

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔