آشنایی با nmcli

اگر مدتی است که سرورها را مدیریت می‌کنید، احتمالاً روزهایی را به یاد دارید که کنترل پنل‌هایی مانند cPanel و Plesk از NetworkManager متنفر بودند. سال‌ها، روش استاندارد غیرفعال کردن کامل NetworkManager و تکیه بر روش‌های قدیمی بود. network-scripts.

زمانه عوض شده است. با انتشار AlmaLinux 9 و 10، NetworkManager اکنون روش پیش‌فرض (و اغلب تنها) برای مدیریت شبکه است. در حالی که کنترل پنل‌های مدرن خود را با این شرایط وفق داده‌اند، هنوز شاهد مواردی هستیم که پیکربندی پیش‌فرض DHCP باعث ایجاد مشکلات پایداری می‌شود.

در ایران وب هاست ، اگر از کنترل پنل‌هایی مانند Plesk، cPanel، DirectAdmin استفاده می‌کنید، توصیه می‌کنیم VPS خود را به پیکربندی IP استاتیک تغییر دهید . این کار «DHCP handshake» را به طور کامل حذف می‌کند و تضمین می‌کند که سرور شما هرگز آدرس IP خود را به دلیل تمدید ناموفق از دست نمی‌دهد

چرا باید از DHCP فاصله بگیریم؟

وقتی ما یک VPS تهیه می‌کنیم، اغلب از DHCP برای اختصاص خودکار آدرس IP شما استفاده می‌کنیم. این برای اتوماسیون عالی است، اما برای یک سرور عملیاتی که میزبان وب‌سایت‌ها است، یک نقطه ضعف کوچک ایجاد می‌کند.

  • Plesk در AlmaLinux 10: ما گزارش‌هایی دیده‌ایم که نشان می‌دهد ترکیب NetworkManager و DHCP می‌تواند منجر به «حذف» غیرمنتظره آدرس IP شود.
  • تاریخچه سی‌پنل: از نظر تاریخی، سی‌پنل با NetworkManager تداخل داشته است (که اغلب منجر به غیرقابل دسترس شدن سرورها پس از راه‌اندازی مجدد می‌شد)، و همین امر باعث شده است که در نسخه‌های قدیمی‌تر سیستم عامل مانند AlmaLinux 8 غیرفعال کردن آن را توصیه کنند.
  • پایداری: یک IP استاتیک به صورت ثابت و از پیش تعیین‌شده وجود دارد. سرور نیازی ندارد هر چند ساعت از روتر بپرسد «آیا می‌توانم این IP را نگه دارم؟». فقط می‌داند که این IP متعلق به خودش است.

دایرکت ادمین معمولاً DHCP را به خوبی مدیریت می‌کند، اما برای ثبات و قابلیت اطمینان بسیار بالا، تخصیص دستی امن‌ترین گزینه برای هر محیط تولیدی است.


نحوه پیکربندی IP استاتیک با استفاده از nmcli

اده‌ترین راه برای ایجاد این تغییر است. این ابزار سینتکس را برای شما مدیریت می‌کند و تضمین می‌کند که پیکربندی به درستی ذخیره شود.

۱. رابط کاربری خود را شناسایی کنید

ابتدا از طریق SSH به سرور خود وارد شوید. نام اتصال فعلی خود را بررسی کنید. در سرور مجازی تقریباً همیشه این است eth0.

nmcli connection show

۲. فرمان

در اینجا یک دستورالعمل برای تغییر از DHCP به Static آمده است. در این مثال، ما سرور را برای استفاده از موارد زیر پیکربندی می‌کنیم:

  • آی‌پی: 104.0.0.2/26
  • دروازه: ۱۰۴.۰.۰.۱
  • DNS: 66.45.251.218 و 69.10.54.252 (پیش‌فرض‌های InterServer)

مطمئن شوید که IP و Gateway زیر را با جزئیات واقعی اختصاص داده شده به VPS خود جایگزین کنید.

nmcli connection modify eth0 ipv4.addresses '104.0.0.2/26' \
ipv4.gateway '104.0.0.1' \
ipv4.dns '66.45.251.218 69.10.54.252' \
ipv4.method manual

۳. اعمال تغییرات

تغییر اتصال، آن را فوراً اعمال نمی‌کند. شما باید رابط را خاموش و روشن کنید. ما این دستورات را به هم متصل می‌کنیم تا شما خود را از SSH قفل نکنید.

nmcli connection down eth0 && nmcli connection up eth0

تأیید تغییر

پس از اجرای دستور، تأیید کنید که IP شما Sticky است و پیکربندی صحیح است.

وضعیت را بررسی کنید

اجرا کنید nmcliبدون آرگومان. شما باید عبارت “inet4” را ببینید که IP شما را فهرست می‌کند و پارامترها باید به این شکل باشند:

eth0: connected to eth0
        "Red Hat Virtio"
        ethernet (virtio_net), 00:16:3E:31:54:64, hw, mtu 1500
        ip4 default, ip6 default
        inet4 104.0.0.2/26
        route4 default via 104.0.0.1 metric 100
        route4 104.0.0.0/26 metric 100
        inet6 2604:a00:50:210:216:3eff:fe31:5464/64
        DNS configuration:
        servers: 66.45.251.218 69.10.54.252
        interface: eth0

فایل پیکربندی را بررسی کنید

اگر کنجکاو هستید که چه تغییراتی در پشت صحنه رخ داده است، می‌توانید به فایل پیکربندی NetworkManager که در مسیر زیر قرار دارد، نگاهی بیندازید. /etc/NetworkManager/system-connections/.

قبل از (DHCP):

[ipv4]
method=auto

بعد از (استاتیک):

[ipv4]
address1=104.0.0.2/26,104.0.0.1
dns=66.45.251.218;69.10.54.252;
method=manual

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