NETWORKMANAGER(8) Network management daemons NETWORKMANAGER(8)
´" t

NetworkManager - دیمن مدیریت شبکه

NetworkManager [گزینه‌ها...]

دیمن NetworkManager تلاش می‌کند تا پیکربندی و عملکرد شبکه را تا حد امکان بدون دردسر و خودکار سازد؛ این کار را از طریق مدیریت اتصال اصلی شبکه و سایر رابط‌های شبکه مانند اترنت، وای‌فای (Wi-Fi) و دستگاه‌های پهن‌باند تلفن همراه انجام می‌دهد. NetworkManager هر دستگاه شبکه‌ای را به محض در دسترس قرار گرفتن اتصال مربوط به آن متصل می‌کند، مگر اینکه این رفتار غیرفعال شده باشد. اطلاعات مربوط به شبکه از طریق یک رابط D-Bus به تمام برنامه‌های متقاضی صادر می‌شود و یک API غنی برای بررسی و کنترل تنظیمات و عملیات شبکه فراهم می‌آورد.

سرویس NetworkManager-dispatcher می‌تواند اسکریپت‌هایی را برای کاربر در پاسخ به رویدادهای شبکه اجرا کند. صفحه راهنمای NetworkManager-dispatcher(8) را ببینید.

گزینه‌های زیر پشتیبانی می‌شوند:

--version | -V

چاپ نسخه نرم‌افزار NetworkManager و خروج.

--help | -h

چاپ گزینه‌های در دسترس NetworkManager و خروج.

--no-daemon | -n

اجرا نشدن به صورت دیمن (پس‌زمینه).

--debug | -d

عدم تبدیل به دیمن، و هدایت خروجی لاگ به ترمینال کنترل‌کننده علاوه بر syslog.

--pid-file | -p

مشخص کردن مکان فایل شناسه فرآیند (PID). این فایل برای ذخیره PID فرآیند در حال اجرا استفاده شده و از اجرای چندین نمونه جلوگیری می‌کند.

--state-file

مشخص کردن فایل برای ذخیره پایدار وضعیت NetworkManager. در صورت عدم تعیین، مقدار پیش‌فرض /var/lib/NetworkManager/NetworkManager.state استفاده می‌شود.

--config

مشخص کردن فایل پیکربندی برای تنظیم گزینه‌های مختلف NetworkManager. در صورت عدم تعیین، مقدار پیش‌فرض /etc/NetworkManager/NetworkManager.conf استفاده می‌شود و در صورت وجود فایل قدیمی‌تر 'nm-system-settings.conf' در همان دایرکتوری، از آن به عنوان پشتیبان استفاده خواهد شد. برای اطلاعات بیشتر درباره فایل پیکربندی، NetworkManager.conf(5) را ببینید.

--configure-and-quit [initrd]

خروج پس از اینکه تمام دستگاه‌ها به وضعیت پایدار رسیدند. پارامتر اختیاری initrd حالتی را فعال می‌کند که در آن پس از توقف NetworkManager هیچ فرآیندی در حال اجرا باقی نمی‌ماند، که برای اجرا از دیسک رم اولیه (ramdisk) در بوت اولیه سیستم مفید است.

--plugins

فهرست کردن پلاگین‌های مورد استفاده برای مدیریت تنظیمات اتصال سراسری سیستم. این فهرست بر پلاگین‌های مشخص‌شده در فایل پیکربندی اولویت دارد. برای گزینه‌های پشتیبانی‌شده، تنظیم main.plugins در NetworkManager.conf(5) را ببینید.

--log-level

تنظیم میزان اطلاعاتی که NetworkManager به مقصد ثبت گزارش (معمولاً بخش "daemon" در syslog) ارسال می‌کند. به طور پیش‌فرض، فقط پیام‌های اطلاعاتی، هشدار و خطا ثبت می‌شوند. برای اطلاعات بیشتر، بخش logging در NetworkManager.conf(5) را ببینید.

--log-domains

فهرستی جداشده با کاما که مشخص می‌کند کدام عملیات‌ها در مقصد ثبت گزارش (معمولاً syslog) لاگ شوند. به طور پیش‌فرض، ثبت گزارش در بیشتر دامنه‌ها فعال است. برای اطلاعات بیشتر، بخش logging در NetworkManager.conf(5) را ببینید.

--print-config

چاپ پیکربندی NetworkManager در خروجی استاندارد (stdout) و خروج. NetworkManager.conf(5) را ببینید. این گزینه شامل نمایه (پروفایل) اتصالات نمی‌شود. آن‌ها را با nmcli connection مشاهده کنید.

این دستور فایل‌های پیکربندی را از روی دیسک می‌خواند. اگر NetworkManager هم‌اکنون در حال اجراست، مطمئن شوید که همان پیکربندی را بارگذاری کرده باشد.

مدیر دستگاه‌های udev(7) برای شناسایی دستگاه‌های شبکه استفاده می‌شود. ویژگی‌های زیر بر نحوه مدیریت دستگاه‌ها توسط NetworkManager تأثیر می‌گذارند:

NM_UNMANAGED

اگر روی "1" یا "true" تنظیم شود، دستگاه به عنوان مدیریت‌نشده توسط NetworkManager پیکربندی می‌شود. توجه داشته باشید که کاربر همچنان می‌تواند صراحتاً این پیکربندی را با روش‌هایی مانند nmcli device set "" managed yes یا "device*.managed=1" در NetworkManager.conf لغو کند.

ID_NET_MANAGED_BY

اگر NM_UNMANAGED تنظیم شده باشد، این ویژگی اثری ندارد. در غیر این صورت، اگر ویژگی روی هر چیزی به جز "org.freedesktop.NetworkManager" تنظیم شده باشد، دستگاه مدیریت‌نشده خواهد بود.

NM_AUTO_DEFAULT_LINK_LOCAL_ONLY

اگر روی "1" یا "true" تنظیم شود، اتصالات به صورت خودکار تولیدشده با نام "Wired connection N" فقط آدرس‌دهی محلی پیوند (link-local) را برای IPv4 و IPv6 فعال می‌کنند. این ویژگی می‌تواند روی دستگاه‌های تاندربولت (Thunderbolt) یا دستگاه‌های میزبان‌به‌میزبان USB مفید باشد.

ID_NET_AUTO_LINK_LOCAL_ONLY

رعایت شده و همانند حالتی پردازش می‌شود که NM_AUTO_DEFAULT_LINK_LOCAL_ONLY تنظیم شده باشد.

ID_NET_DHCP_BROADCAST

اگر روی "1" یا "true" تنظیم شود، از درخواست‌های پخش همگانی (broadcast) برای پیشنهادهای DHCPv4 استفاده می‌شود. این گزینه برای دستگاه‌هایی کاربرد دارد که تا زمان پیکربندی نهایی نمی‌توانند پیام‌های تک‌پخشی (unicast) را پردازش کنند.

فرآیند NetworkManager سیگنال‌های زیر را مدیریت می‌کند:

SIGHUP

این سیگنال باعث بارگذاری مجدد پیکربندی NetworkManager می‌شود. توجه داشته باشید که همه پارامترهای پیکربندی در زمان اجرا قابل تغییر نیستند و بنابراین برخی از تغییرات ممکن است تنها پس از راه‌اندازی مجدد بعدی دیمن اعمال شوند. سیگنال SIGHUP همچنین عملیات بارگذاری مجدد بیشتری را شامل می‌شود، مانند به‌روزرسانی DNS و راه‌اندازی مجدد پلاگین DNS. مورد دوم به عنوان نمونه هنگام استفاده از پلاگین dnsmasq و تغییر پیکربندی آن در /etc/NetworkManager/dnsmasq.d مفید است. با این حال، این امر همچنین به این معنی است که تفکیک نام (name resolution) برای مدتی کوتاه متوقف خواهد شد. در آینده ممکن است اقدامات بیشتری اضافه شود. سیگنال SIGHUP به معنای به‌روزرسانی پیکربندی NetworkManager و بارگذاری مجدد هر چیزی است که پشتیبانی می‌شود. توجه داشته باشید که این سیگنال اتصالات را از روی دیسک مجدداً بارگذاری نمی‌کند. برای این منظور، یک API مربوط به D-Bus و دستور reload در nmcli وجود دارد.

SIGUSR1

این سیگنال بازنویسی اجباری پیکربندی DNS را اعمال می‌کند. برخلاف SIGHUP، این سیگنال پلاگین DNS را مجدداً راه‌اندازی نمی‌کند و وضوح نام را متوقف نخواهد ساخت. هنگامی که NetworkManager مدیریت DNS را بر عهده ندارد، این سیگنال اجرای مجدد عملیات‌های وابسته به پیکربندی DNS (مانند تفکیک نام میزبان سیستم از طریق DNS معکوس، یا تفکیک همتایان WireGuard) را تحمیل می‌کند؛ بنابراین، می‌توان از آن استفاده کرد تا به NetworkManager اطلاع داده شود که محتوای resolv.conf از بیرون تغییر یافته است. در آینده، ممکن است اقدامات بیشتری اضافه شود. سیگنال SIGUSR1 به معنای بازنویسی داده‌هایی مانند resolv.conf یا تازه‌سازی حافظه نهان (cache) است. این سیگنال زیرمجموعه‌ای از کارهایی است که برای SIGHUP انجام می‌شود، بدون اینکه پیکربندی از روی دیسک مجدداً بارگذاری گردد.

SIGUSR2

این سیگنال در حال حاضر هیچ اثری ندارد اما برای استفاده‌های آتی رزرو شده است.

یک جایگزین برای استفاده از سیگنال جهت بارگذاری مجدد پیکربندی، فراخوانی تابع Reload در D-Bus است. این فراخوانی امکان انتخاب دقیق‌تر آنچه باید بارگذاری مجدد شود را می‌دهد، تنها پس از تکمیل بارگذاری مجدد بازمی‌گردد، و توسط PolicyKit محافظت می‌شود.

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

به عنوان مثال می‌توانید سعی کنید میزبان‌ها را ping کنید (با آدرس IP یا نام DNS)، به خروجی دستورات ip link show، ip address show و ip route show نگاه کنید و برای مشکلات تفکیک نام، فایل /etc/resolv.conf را بررسی کنید. همچنین به نمایه‌های اتصالی که در NetworkManager پیکربندی کرده‌اید (nmcli connection و nmcli connection show "") و رابط‌های پیکربندی‌شده (nmcli device) نگاهی بیندازید.

اگر این اقدامات کافی نبود، به فایل‌های گزارش (لاگ) NetworkManager مراجعه کنید. سرویس NetworkManager گزارش‌ها را در syslog ثبت می‌کند، بنابراین بسته به پیکربندی سیستم خود می‌توانید journalctl را برای دریافت گزارش‌ها فراخوانی کنید. به طور پیش‌فرض، لاگ‌های NetworkManager پرجزئیات نیستند و بنابراین برای بررسی دقیق یک مشکل چندان مفید واقع نمی‌شوند. می‌توانید سطح گزارش‌گیری را در زمان اجرا با دستور nmcli general logging level TRACE domains ALL تغییر دهید. اما معمولاً روش بهتر این است که گزارش‌های کامل را از همان ابتدا جمع‌آوری کنید؛ این کار با تنظیم level=TRACE در NetworkManager.conf انجام می‌شود. صفحه راهنمای NetworkManager.conf(5) را ببینید. توجه داشته باشید که لاگ‌های trace مربوط به NetworkManager بسیار حجیم هستند و ممکن است systemd-journald برخی خطوط را محدود (rate limit) کند. در صورت لزوم، ابتدا محدودیت نرخ را با گزینه‌های RateLimitIntervalSec و RateLimitBurst در journald غیرفعال کنید (صفحه راهنمای journald.conf(5) را ببینید).

سرویس NetworkManager هیچ اطلاعات محرمانه‌ای را لاگ نمی‌کند. با این حال، به شما توصیه می‌شود پیش از انتشار گزارش‌ها بررسی کنید که آیا موارد خصوصی و حساسی ثبت شده‌اند یا خیر. هنگام گزارش یک مشکل، گزارش‌های کامل را ارائه دهید و از اصلاحاتی (برای حفظ حریم خصوصی) که مفهوم لاگ را مخدوش می‌کنند خودداری نمایید.

هویت یک ماشین اهمیت بالایی دارد زیرا تنظیمات گوناگونی به آن وابسته‌اند. برای نمونه، ipv6.addr-gen-mode=stable و ethernet.cloned-mac-address=stable شناسه‌ها را با درهم‌سازی (هش کردن) هویت ماشین تولید می‌کنند. همچنین ویژگی اتصال connection.stable-id را ببینید که یک مقدار بذر (seed) برای هر نمایه است و با هویت ماشین جهت تولید چنین آدرس‌ها و شناسه‌هایی هش می‌شود.

اگر از یک ماشین نسخه پشتیبان تهیه کرده و آن را بازیابی کنید، احتمالاً هویت ماشین باید حفظ شود. در این حالت، فایل‌های /var/lib/NetworkManager/secret_key و /etc/machine-id را حفظ کنید. از سوی دیگر، اگر یک ماشین مجازی را شبیه‌سازی (clone) می‌کنید، احتمالاً ترجیح می‌دهید که نسخه کلون‌شده هویت متفاوتی داشته باشد. در لینوکس ابزارهای موجودی برای مدیریت /etc/machine-id وجود دارد (صفحه راهنمای machine-id(5) را ببینید).

هویت ماشین توسط فایل /var/lib/NetworkManager/secret_key تعیین می‌شود. اگر چنین فایلی وجود نداشته باشد، NetworkManager فایلی با محتوای تصادفی ایجاد خواهد کرد. برای تولید یک هویت جدید، کافی است فایل را حذف کنید و پس از راه‌اندازی مجدد، فایل جدیدی ایجاد خواهد شد. این فایل باید برای root فقط‌خواندنی باشد و حداقل شامل ۱۶ بایت باشد که به عنوان بذر در بخش‌های مختلفی که از شناسه پایدار استفاده می‌کنند، به کار خواهد رفت.

از نسخه ۱.۱۶.۰، NetworkManager از نسخه دوم کلیدهای محرمانه پشتیبانی می‌کند. برای چنین کلیدهایی، فایل /var/lib/NetworkManager/secret_key با متن اسکی "nm-v2:" آغاز شده و به دنبال آن حداقل ۳۲ بایت داده تصادفی قرار می‌گیرد. همچنین نسخه‌های اخیر NetworkManager زمانی که فایل هنوز وجود ندارد، همواره چنین کلیدهای محرمانه‌ای را ایجاد می‌کنند. با نسخه ۲ کلید محرمانه، فایل /etc/machine-id نیز به عنوان بخشی از فرآیند تولید آدرس‌ها و شناسه‌ها هش می‌شود. مزیت این کار این است که می‌توانید /var/lib/NetworkManager/secret_key را پایدار نگه دارید، و هنگام کلون کردن یک ماشین مجازی فقط /etc/machine-id را دوباره تولید کنید.

لطفاً هرگونه اشکالی که در NetworkManager پیدا می‌کنید را در سامانه پیگیری مشکلات NetworkManager[1] گزارش دهید.

صفحه خانگی NetworkManager[2], NetworkManager.conf(5), NetworkManager-dispatcher(8), NetworkManager-wait-online.service(8), nmcli(1), nmcli-examples(7), nm-online(1), nm-settings-nmcli(5), nm-applet(1), nm-connection-editor(1), udev(7)

1.
NetworkManager issue tracker
2.
NetworkManager home page
NetworkManager 1.58.1