آموزش تغییر Hostname در لینوکس (اوبونتو، دبیان، AlmaLinux)



یکی از اولین و اساسی‌ترین قدم‌ها پس از خرید vps جدید، تنظیم صحیح نام میزبان یا Hostname است. Hostname نامی است که سرور شما را در یک شبکه شناسایی می‌کند و برای عملکرد صحیح بسیاری از نرم‌افزارها، به خصوص سرویس‌های ایمیل و مانیتورینگ، ضروری است.

در گذشته، تغییر Hostname در توزیع‌های مختلف لینوکس روش‌های متفاوتی داشت. اما خوشبختانه، در تمام سیستم‌عامل‌های مدرن مانند اوبونتو، دبیان، CentOS Stream، AlmaLinux، Rocky Linux و فدورا، این فرآیند به لطف ابزار systemd و دستور hostnamectl کاملا یکپارچه و استاندارد شده است. این راهنما روش صحیح و بدون دردسر را به شما آموزش می‌دهد.

 

روش مدرن و یکپارچه با hostnamectl (برای تمام توزیع‌ها)

این روش برای تمام توزیع‌های لینوکس یکسان عمل می‌کند و بهترین و امن‌ترین راه برای تغییر دائمی نام میزبان است.

 

قدم اول: بررسی Hostname فعلی

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

hostnamectl

 

خروجی این دستور اطلاعات کاملی درباره سیستم، به همراه نام میزبان فعلی در خط Static hostname به شما نمایش می‌دهد:

   Static hostname: rockylinux-server-01
         Icon name: computer-vm
           Chassis: vm
        Machine ID: ...
           Boot ID: ...
    Virtualization: kvm
  Operating System: Rocky Linux 9.3
            Kernel: Linux 5.14.0-362.8.1.el9_3.x86_64
      Architecture: x86-64
...

 

قدم دوم: تغییر Hostname با دستور hostnamectl

برای تغییر نام میزبان به صورت دائمی، از دستور hostnamectl set-hostname استفاده کنید. این تنها دستوری است که شما برای تغییر نام اصلی سیستم نیاز دارید، زیرا به صورت خودکار تمام فایل‌های سیستمی لازم (مانند /etc/hostname) را به‌روزرسانی می‌کند.

 

نام میزبان جدید خود را جایگزین new-hostname کنید:

sudo hostnamectl set-hostname new-hostname

 

نکته مهم در انتخاب نام: بهتر است از یک نام دامنه کاملا معتبر (FQDN) مانند server1.yourdomain.com یا یک نام کوتاه و توصیفی مانند web-server-01 استفاده کنید. نام انتخابی باید از حروف کوچک انگلیسی، اعداد و خط تیره (-) تشکیل شده باشد.

قدم سوم: به‌روزرسانی فایل hosts (برای شناسایی محلی)

در حالی که نام اصلی سرور شما تغییر کرده است، باید فایل /etc/hosts را نیز ویرایش کنید تا سیستم‌عامل بتواند نام میزبان جدید را به آدرس IP محلی (localhost) متصل کند. این کار برای عملکرد صحیح برخی نرم‌افزارها ضروری است.

فایل را با یک ویرایشگر متن مانند nano باز کنید:

sudo nano /etc/hosts

محتوای فایل چیزی شبیه به این خواهد بود:

127.0.0.1       localhost
127.0.1.1       old-hostname

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
...

در خط دوم، نام میزبان قدیمی (old-hostname) را به نام میزبان جدید خود تغییر دهید، فایل را ذخیره کرده و از آن خارج شوید.

 

قدم چهارم: تایید تغییرات

برای اطمینان از اینکه همه چیز به درستی انجام شده، دوباره دستور hostnamectl را اجرا کنید. اکنون باید نام میزبان جدید خود را در خروجی مشاهده کنید. همچنین، می‌توانید از سرور خارج شده و دوباره وارد شوید؛ نام میزبان جدید باید در خط فرمان شما نمایش داده شود.

 

نکته مهم برای کاربران سرورهای ابری: `cloud-init`

بسیاری از ارائه‌دهندگان سرورهای ابری از ابزاری به نام cloud-init برای مدیریت اولیه سرور استفاده می‌کنند. این ابزار ممکن است پس از هر بار ریبوت، Hostname را به مقدار اولیه که توسط پنل ابری تنظیم شده، بازگرداند.

برای جلوگیری از این اتفاق، فایل /etc/cloud/cloud.cfg را باز کنید و مطمئن شوید که مقدار preserve_hostname برابر با true است:

sudo nano /etc/cloud/cloud.cfg

خط زیر را پیدا کرده و آن را به true تغییر دهید (اگر وجود ندارد، آن را اضافه کنید):

preserve_hostname: true