EQVPS
لوحة التحكمابدأ الآن

كيف تغيّر اسم الخادم والمنطقة الزمنية على VPS

غيّر اسم خادمك واضبط ساعته على منطقتك الزمنية في Ubuntu وDebian وWindows Server، دون تحذير sudo الذي يظهر بعد hostnamectl وحده، مع فحص cron والسجلات ومزامنة الوقت بعد التغيير. جرّبنا كل خطوة على صورنا.

يحمل الخادم الجديد الاسم الذي كتبته عند الطلب، وتعمل ساعته بتوقيت UTC. تغيير الاثنين سهل. لكن لتغيير الاسم فخًا واحدًا: الأمر المعتاد يترك سطرًا قديمًا في /etc/hosts، فيشتكي sudo منه في Ubuntu قبل كل أمر. يصلح هذا الدليل الأمرين في 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: صارت تعمل في تلك الساعة بتوقيتك المحلي.

التعليقات

لا تعليقات بعد. كن الأول.

اترك تعليقًا

تُراجَع التعليقات قبل ظهورها.