HOSTNAME(5) hostname HOSTNAME(5)

hostname - فایل پیکربندی نام محلی میزبان

/etc/hostname

فایل /etc/hostname نام سیستم محلی را پیکربندی می‌کند. مگر اینکه همان‌طور که در بخش بعدی شرح داده شده است لغو یا بازنویسی شود، systemd(1) این نام میزبان را در طول راه‌اندازی با استفاده از فراخوان سیستمی sethostname(2) تنظیم خواهد کرد.

این فایل باید شامل یک رشته تکی نام میزبان باشد که به نویسه خط جدید (newline) ختم می‌شود. کامنت‌ها (خطوطی که با "#" آغاز می‌شوند) نادیده گرفته می‌شوند. نام میزبان باید از حداکثر ۶۴ نویسه اسکی ۷ بیتی الفبایی-عددی کوچک یا خط تیره تشکیل شده باشد که یک نام دامنه معتبر DNS را تشکیل می‌دهند. اکیداً توصیه می‌شود که این نام فقط شامل یک برچسب DNS تکی باشد، یعنی هیچ نقطه‌ای نداشته باشد. این توصیه هم نشان‌دهنده انتظارات معمول برنامه‌هاست و هم این واقعیت که هسته لینوکس طول نام میزبان سیستم را به ۶۴ (یعنی نزدیک به حداکثر طول برچسب DNS یعنی ۶۳) محدود می‌کند، نه ۲۵۵ (حداکثر طول نام دامنه DNS). هنگام اعمال، نویسه‌های نامعتبر در تلاش برای معتبر ساختن نام فیلتر می‌شوند، اما مشخصاً توصیه می‌شود که از یک نام معتبر استفاده کنید و به این فیلتر کردن اتکا نکنید.

اگر نویسه علامت سؤال "?" در نام میزبان ظاهر شود، هنگام اعمال، به صورت امن و قطعی از طریق درهم‌سازی رمزنگاری‌شده (cryptographic hashing) با یک نویسه هگزادسیمال مشتق‌شده از machine-id(5) جایگزین می‌شود. مثال: "foobar-????-????" به طور خودکار به "foobar-92a9-061c" یا مشابه آن بسته به شناسه محلی ماشین گسترش خواهد یافت.

می‌توانید از hostnamectl(1) برای تغییر مقدار این فایل در زمان اجرا از خط فرمان استفاده کنید. از systemd-firstboot(1) برای مقداردهی اولیه آن در ایمیج‌های سیستمی مانت‌شده (اما بوت‌نشده) استفاده کنید.

systemd(1) و ابزارهای مرتبط، نام میزبان را به روش‌های زیر به دست می‌آورند:

•اگر پارامتر خط فرمان هسته systemd.hostname= یک نام میزبان معتبر را مشخص کند، systemd(1) از آن برای تنظیم نام میزبان در اوایل راه‌اندازی استفاده خواهد کرد؛ ببینید: kernel-command-line(7).
•در غیر این صورت، نام میزبان «ایستا» (static) مشخص‌شده توسط /etc/hostname همان‌طور که در بالا شرح داده شد استفاده خواهد شد.
•در غیر این صورت، یک نام میزبان گذرا (transient) ممکن است در زمان اجرا تنظیم شود، برای مثال بر اساس اطلاعات موجود در اجاره DHCP؛ ببینید: systemd-hostnamed.service(8). هر دو NetworkManager[1] و systemd-networkd.service(8) این اجازه را می‌دهند. توجه داشته باشید که systemd-hostnamed.service(8) اولویت بالاتری به نام میزبان ایستا می‌دهد، بنابراین نام میزبان گذرا تنها در صورتی استفاده خواهد شد که نام میزبان ایستا پیکربندی نشده باشد.
•در غیر این صورت، از یک نام میزبان جایگزین (fallback) که در زمان کامپایل پیکربندی شده است استفاده خواهد شد ("archlinux").

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

قالب ساده فایل پیکربندی /etc/hostname از Debian GNU/Linux سرچشمه می‌گیرد.

systemd(1), sethostname(2), hostname(1), hostname(7), machine-id(5), machine-info(5), hostnamectl(1), systemd-hostnamed.service(8), systemd-firstboot(1)

1.
NetworkManager
systemd 261.2