Hostname در لینوکس نامی است که برای شناسایی یک سرور یا سیستم در شبکه استفاده میشود. این نام معمولاً هنگام نصب سیستمعامل تعیین میشود، اما در بسیاری از مواقع لازم است بعداً آن را تغییر دهید.
برای مثال ممکن است بخواهید نام سرور را بر اساس کاربرد آن، موقعیت دیتاسنتر، پروژه یا ساختار داخلی شبکه تنظیم کنید.
در این آموزش نحوه تغییر Hostname در Ubuntu، Debian، AlmaLinux، Rocky Linux و CentOS را بررسی میکنیم.
بررسی Hostname فعلی
برای مشاهده Hostname فعلی سرور میتوانید دستور زیر را اجرا کنید:
hostname
همچنین دستور زیر اطلاعات کاملتری نمایش میدهد:
hostnamectl
خروجی ممکن است مشابه زیر باشد:
Static hostname: server-old
Operating System: AlmaLinux 9
Kernel: Linux
Architecture: x86-64
در این مثال Hostname فعلی سرور برابر است با:
server-old
روش اول: تغییر Hostname با hostnamectl
در اکثر توزیعهای جدید لینوکس، سادهترین روش استفاده از دستور hostnamectl است.
برای مثال اگر بخواهید نام سرور را به server01 تغییر دهید، دستور زیر را اجرا کنید:
hostnamectl set-hostname server01
سپس برای بررسی تغییرات:
hostnamectl
یا:
hostname
در صورت موفقیت باید نام جدید را مشاهده کنید.
انتخاب Hostname مناسب
بهتر است Hostname کوتاه، مشخص و بدون فاصله باشد.
برای مثال:
web01
یا:
db01
یا:
ir-server-01
در صورت استفاده از نام کامل دامنه نیز میتوانید مقدار FQDN وارد کنید:
server01.example.com
برای مثال:
hostnamectl set-hostname server01.example.com
مرحله دوم: ویرایش فایل hosts
بعد از تغییر Hostname بهتر است فایل /etc/hosts را نیز بررسی کنید.
فایل را باز کنید:
nano /etc/hosts
ممکن است محتوایی مشابه زیر داشته باشد:
127.0.0.1 localhost
127.0.1.1 server-old
نام قبلی را به نام جدید تغییر دهید:
127.0.0.1 localhost
127.0.1.1 server01
اگر از FQDN استفاده میکنید میتوانید به شکل زیر تنظیم کنید:
127.0.1.1 server01.example.com server01
سپس فایل را ذخیره کنید.
بررسی فایل /etc/hostname
در بسیاری از توزیعها، Hostname داخل فایل زیر نیز ذخیره میشود:
cat /etc/hostname
خروجی باید نام جدید سرور باشد:
server01
اگر مقدار قدیمی را مشاهده کردید میتوانید فایل را ویرایش کنید:
nano /etc/hostname
و Hostname جدید را وارد کنید.
در سیستمهایی که از hostnamectl استفاده میکنند معمولاً این فایل بهصورت خودکار بهروزرسانی میشود.
آیا نیاز به Reboot است؟
در بیشتر سیستمهای جدید، تغییر Hostname با hostnamectl بدون Reboot اعمال میشود.
با این حال ممکن است ترمینال یا برخی سرویسها همچنان نام قبلی را نمایش دهند.
برای مشاهده فوری تغییر میتوانید یک بار از SSH خارج شده و دوباره وارد شوید.
در صورت نیاز نیز میتوانید سرور را Reboot کنید:
reboot
تست Hostname جدید
بعد از اعمال تغییرات، دستورهای زیر را اجرا کنید:
hostname
و:
hostnamectl
همچنین میتوانید از دستور زیر استفاده کنید:
hostname -f
اگر FQDN بهدرستی تنظیم شده باشد، نام کامل دامنه نمایش داده میشود.
تغییر Hostname موقت
اگر فقط میخواهید Hostname را تا زمان Reboot تغییر دهید، میتوانید از دستور زیر استفاده کنید:
hostname temporary-name
برای مثال:
hostname test-server
این تغییر دائمی نیست و پس از Reboot معمولاً مقدار قبلی بازمیگردد.
برای تغییر دائمی بهتر است از hostnamectl استفاده کنید.
تغییر Hostname در Ubuntu و Debian
در Ubuntu و Debian معمولاً دستور زیر کافی است:
hostnamectl set-hostname server01
سپس فایل /etc/hosts را بررسی کنید:
nano /etc/hosts
و مطمئن شوید Hostname جدید بهدرستی درج شده باشد.
تغییر Hostname در AlmaLinux و Rocky Linux
در AlmaLinux و Rocky Linux نیز میتوانید از همین دستور استفاده کنید:
hostnamectl set-hostname server01
سپس وضعیت را بررسی کنید:
hostnamectl status
در صورت نیاز فایل hosts را نیز ویرایش کنید:
nano /etc/hosts
تفاوت Hostname و FQDN
Hostname معمولاً نام کوتاه سیستم است.
برای مثال:
server01
اما FQDN یا Fully Qualified Domain Name نام کامل سرور همراه با دامنه است.
برای مثال:
server01.example.com
در سرورهایی که برای Mail Server، کنترل پنلهای هاستینگ یا برخی سرویسهای شبکه استفاده میشوند، تنظیم صحیح FQDN اهمیت بیشتری دارد.
خطای sudo: unable to resolve host
گاهی اوقات بعد از تغییر Hostname با خطایی مشابه زیر مواجه میشوید:
sudo: unable to resolve host server01
این خطا معمولاً به دلیل عدم تطابق Hostname با فایل /etc/hosts رخ میدهد.
برای رفع مشکل فایل زیر را باز کنید:
nano /etc/hosts
و مطمئن شوید نام جدید سرور در آن وجود دارد.
برای مثال:
127.0.1.1 server01
سپس مجدداً دستور موردنظر را اجرا کنید.
نکات مهم هنگام تغییر Hostname
قبل از تغییر نام سرور بهتر است این موارد را در نظر بگیرید:
- در سرورهای Mail، تغییر Hostname میتواند روی تنظیمات ایمیل اثر بگذارد.
- در سرورهای دارای cPanel، DirectAdmin یا سایر کنترل پنلها باید تنظیمات Hostname خود کنترل پنل نیز بررسی شود.
- در برخی سرویسها نام Hostname داخل فایلهای تنظیمات ذخیره شده است.
- اگر از FQDN استفاده میکنید بهتر است DNS مربوط به آن نیز به IP سرور اشاره کند.
- فایل
/etc/hostsرا بعد از تغییر حتماً بررسی کنید.
جمعبندی
برای تغییر دائمی Hostname در اکثر توزیعهای جدید لینوکس، سادهترین دستور زیر است:
hostnamectl set-hostname NEW_HOSTNAME
برای مثال:
hostnamectl set-hostname server01
سپس فایل /etc/hosts را بررسی کرده و در پایان با دستور زیر نتیجه را مشاهده کنید:
hostnamectl
در بیشتر موارد نیازی به Reboot نیست، اما خروج و ورود مجدد به SSH باعث میشود نام جدید در ترمینال نیز نمایش داده شود.
