تنظیم Timezone و Hostname

Calendar

انتشار:

1404/08/09
Update Calendar

به روز رسانی:

1404/08/09

در این آموزش قصد داریم یاد بگیریم چطور در سرور مجازی لینوکسی، ساعت سیستم (Timezone) و نام سرور (Hostname) را تنظیم کنیم تا هم زمان‌بندی سرویس‌ها دقیق باشد و هم سرور در شبکه با نام مشخصی شناخته شود.

مرحله اول: بررسی زمان فعلی سیستم

بعد از ورود از طریق SSH، ابتدا باید زمان فعلی سیستم را بررسی کنید تا بدانید سرور شما در حال حاضر از چه منطقه زمانی استفاده می‌کند. برای این کار دستور زیر را اجرا کنید:

timedatectl

با اجرای این دستور، اطلاعات دقیقی از جمله زمان فعلی، منطقه زمانی فعلی، هماهنگی با ساعت جهانی (UTC) و وضعیت همگام‌سازی NTP نمایش داده می‌شود. در خروجی به قسمت Time zone دقت کنید؛ اگر منطقه زمانی اشتباه باشد، باید آن را در مراحل بعد اصلاح کنید.

نمای خروجی timedatectl در ترمینال

مرحله دوم: پیدا کردن منطقه زمانی مناسب

سیستم‌عامل‌های لینوکسی مجموعه‌ای از مناطق زمانی را در مسیر /usr/share/zoneinfo نگهداری می‌کنند. برای دیدن این مناطق و پیدا کردن گزینه‌ی مورد نظر، می‌توانید از دستور زیر استفاده کنید:

timedatectl list-timezones

اگر لیست برای شما طولانی است، برای فیلتر کردن نتیجه می‌توانید از grep استفاده کنید. مثلاً برای پیدا کردن منطقه تهران بنویسید:

timedatectl list-timezones | grep Tehran

در خروجی باید عبارتی مثل Asia/Tehran را مشاهده کنید. این همان رشته‌ای است که در مرحله بعد برای تنظیم منطقه زمانی از آن استفاده می‌کنیم.

نمای جستجوی منطقه زمانی Asia/Tehran

مرحله سوم: تنظیم منطقه زمانی سرور

برای اعمال منطقه زمانی دلخواه، کافیست از دستور زیر استفاده کنید. در این مثال ما منطقه زمانی تهران را انتخاب می‌کنیم:

sudo timedatectl set-timezone Asia/Tehran

این دستور بدون نیاز به ریستارت، تنظیمات زمان سیستم را تغییر می‌دهد. پس از اجرا، برای اطمینان از اعمال تغییرات، دوباره دستور timedatectl را وارد کنید و بررسی کنید که مقدار Time zone برابر با Asia/Tehran شده باشد.

نمای تأیید تغییر timezone به Asia/Tehran

روش جایگزین در CentOS و RHEL

در توزیع‌های CentOS یا RHEL، تنظیم منطقه زمانی از طریق ایجاد لینک بین فایل منطقه زمانی و مسیر /etc/localtime انجام می‌شود. برای این کار دستور زیر را اجرا کنید:

sudo ln -sf /usr/share/zoneinfo/Asia/Tehran /etc/localtime

در این روش سیستم از فایل مربوط به منطقه زمانی تهران برای تنظیم ساعت استفاده می‌کند. در ادامه، با دستور زیر ساعت سخت‌افزاری سیستم را نیز با ساعت جدید هماهنگ کنید تا بعد از ریبوت نیز تنظیمات حفظ شود:

sudo hwclock --systohc

تنظیم منطقه زمانی در Debian

در Debian می‌توانید از ابزار متنی tzdata برای انتخاب منطقه زمانی استفاده کنید. این ابزار با اجرای دستور زیر باز می‌شود:

sudo dpkg-reconfigure tzdata

پس از اجرا، منویی متنی نمایش داده می‌شود که ابتدا باید قاره (مثلاً Asia) و سپس شهر (مثلاً Tehran) را انتخاب کنید. پس از انتخاب، سیستم به‌صورت خودکار تنظیمات را ذخیره و نمایش می‌دهد.

مرحله چهارم: بررسی نام فعلی سرور (Hostname)

حالا که ساعت سیستم تنظیم شده است، بهتر است نام سرور را نیز بررسی و در صورت نیاز تغییر دهیم. برای مشاهده‌ی نام فعلی، دستور زیر را اجرا کنید:

hostnamectl

در خروجی این دستور بخش Static hostname نام فعلی سرور را نشان می‌دهد. اگر سرور شما هنوز نام عمومی (مثل ubuntu یا localhost) دارد، بهتر است آن را با نامی مرتبط با پروژه یا دامنه‌تان جایگزین کنید تا در شناسایی لاگ‌ها و مدیریت شبکه راحت‌تر باشید.

نمای خروجی hostnamectl

مرحله پنجم: تغییر نام سرور (Hostname)

برای تغییر نام سرور از دستور زیر استفاده کنید. در این مثال نام سرور را به vps1.iranserver.local تغییر می‌دهیم:

sudo hostnamectl set-hostname vps1.iranserver.local

توصیه می‌شود از نامی استفاده کنید که شامل ساختار مشخصی باشد؛ مثلاً نام سرور به همراه زیردامنه یا منطقه دیتاسنتر. بعد از اجرای دستور، ترمینال را مجدداً بارگذاری کنید تا نام جدید در بالای خط فرمان نمایش داده شود.

نمای تغییر نام سرور در ترمینال

مرحله ششم: ثبت hostname در فایل hosts

گاهی اوقات پس از تغییر نام سرور، برخی برنامه‌ها یا سرویس‌ها به دلیل عدم شناسایی نام جدید با خطا مواجه می‌شوند. برای جلوگیری از این موضوع، باید نام جدید را در فایل /etc/hosts ثبت کنید. برای این کار از ویرایشگر nano استفاده کنید:

sudo nano /etc/hosts

در فایل باز شده، مطمئن شوید خطوط زیر وجود دارند یا اصلاح شوند:

127.0.0.1   localhost
127.0.1.1   vps1.iranserver.local   vps1

پس از ذخیره و خروج، تغییرات بلافاصله اعمال می‌شوند و ارتباط بین نام سرور و IP محلی برقرار خواهد شد.

نمای فایل hosts با نام جدید سرور

مرحله هفتم: بررسی نهایی تنظیمات

در پایان، بهتر است هر دو دستور زیر را اجرا کنید تا از صحت تنظیمات مطمئن شوید:

hostnamectl
timedatectl

اگر خروجی شامل نام جدید سرور و منطقه زمانی تنظیم‌شده باشد، یعنی همه چیز به‌درستی انجام شده است. از این پس لاگ‌های سیستم با ساعت صحیح ثبت می‌شوند و سرور شما در شبکه با نام جدید شناخته خواهد شد.

بررسی نهایی hostname و timezone

در نهایت، با انجام مراحل بالا، سرور شما دارای ساعت دقیق و نام قابل شناسایی خواهد بود. این کار باعث می‌شود مدیریت، مانیتورینگ و عیب‌یابی سرور در آینده بسیار ساده‌تر و دقیق‌تر انجام شود.

آیا توانستیم چالش شما را حل کنیم؟