| NETWORKMANAGER.CONF(5) | Configuration | NETWORKMANAGER.CONF(5) |
نام (NAME)
NetworkManager.conf - پرونده پیکربندی NetworkManager
خلاصه دستور (SYNOPSIS)
/etc/NetworkManager/NetworkManager.conf, /etc/NetworkManager/conf.d/name.conf, /run/NetworkManager/conf.d/name.conf, /usr/lib/NetworkManager/conf.d/name.conf, /var/lib/NetworkManager/NetworkManager-intern.conf
توضیحات (DESCRIPTION)
پرونده NetworkManager.conf پرونده پیکربندی برای NetworkManager است. این پرونده برای تنظیم جنبههای مختلف رفتار NetworkManager استفاده میشود. مکان پرونده اصلی و دایرکتوریهای پیکربندی را میتوان به ترتیب با استفاده از آرگومانهای --config، --config-dir، --system-config-dir و --intern-config برای NetworkManager تغییر داد.
اگر یک پرونده پیشفرض NetworkManager.conf توسط بستههای توزیع شما ارائه شده است، نباید آن را ویرایش کنید، زیرا ممکن است تغییرات شما با بهروزرسانی بستهها بازنویسی شوند. در عوض، میتوانید پروندههای .conf بیشتری به دایرکتوری /etc/NetworkManager/conf.d اضافه کنید. این پروندهها به ترتیب خوانده میشوند و پروندههای بعدی پروندههای قبلی را بازنویسی میکنند. بستهها ممکن است قطعههای پیکربندی بیشتری را در /usr/lib/NetworkManager/conf.d نصب کنند. این دایرکتوری ابتدا تجزیه میشود، حتی قبل از NetworkManager.conf. اسکریپتها همچنین میتوانند پیکربندی مخصوص هر راهاندازی را در /run/NetworkManager/conf.d قرار دهند. این دایرکتوری در مرتبه دوم تجزیه میشود، باز هم قبل از NetworkManager.conf. از بارگذاری پرونده /run/NetworkManager/conf.d/name.conf میتوان با افزودن پرونده /etc/NetworkManager/conf.d/name.conf جلوگیری کرد. به همین ترتیب، بر روی یک پرونده /usr/lib/NetworkManager/conf.d/name.conf میتوان با قرار دادن پروندهای با همان نام در /etc/NetworkManager/conf.d یا /run/NetworkManager/conf.d سایه انداخت.
برنامه NetworkManager میتواند برخی از گزینههای پیکربندی کاربر را از طریق D-Bus یا سایر عملیات داخلی بازنویسی کند. در این صورت، این تغییرات را در /var/lib/NetworkManager/NetworkManager-intern.conf مینویسد. این پرونده برای ویرایش توسط کاربر در نظر گرفته نشده است، اما در آخر خوانده میشود و میتواند روی پیکربندی کاربر در NetworkManager.conf سایه بیندازد.
برخی از تنظیمات پیکربندی را میتوان در زمان اجرا با ارسال سیگنال SIGHUP یا از طریق فراخوانی Reload در D-Bus مجدداً بارگذاری کرد.
برنامه NetworkManager به هیچ پیکربندی در NetworkManager.conf نیاز ندارد. بسته به مورد استفاده خود، میتوانید تمام پروندهها را حذف کنید تا پیکربندی پیشفرض بازیابی شود (تنظیم مجدد به کارخانه). اما توجه داشته باشید که توزیع شما یا بستههای دیگر ممکن است قطعههای پیکربندی را برای NetworkManager قرار داده باشند، به طوری که بخشی از پیشفرض کارخانه محسوب شوند.
گزینههایی که به عنوان بولی (boolean) مشخص شدهاند را میتوان روی یکی از این مقادیر تنظیم کرد: yes، true، on، 1، no، false، off، 0.
قالب فایل (FILE FORMAT)
قالب پرونده پیکربندی اصطلاحاً key file است (نوعی قالب مشابه ini). این قالب از بخشها (گروهها) از جفتهای کلید-مقدار تشکیل شده است. خطوطی که با '#' شروع میشوند و خطوط خالی به عنوان توضیح در نظر گرفته میشوند. بخشها با یک خط هدر شامل نام بخش محصور در '[' و ']' شروع میشوند و با شروع بخش بعدی یا پایان پرونده به طور ضمنی پایان مییابند. هر جفت کلید-مقدار باید در یک بخش قرار گیرد.
برای کلیدهایی که فهرستی از دستگاهها را به عنوان مقدار میگیرند، میتوانید دستگاهها را با نشانیهای MAC یا نام رابطهای آنها، یا "*" برای تعیین تمام دستگاهها مشخص کنید. بخش “قالب فهرست دستگاه (Device List Format)” در ادامه را ببینید.
یک پرونده پیکربندی ساده شبیه به این است:
[main] plugins=keyfile
به عنوان یک افزونه به قالب معمول keyfile، میتوانید با انجام موارد زیر مقداری را به کلیدی که قبلاً مقداری فهرستی برای آن تنظیم شده الحاق یا از آن حذف کنید:
plugins+=another-plugin plugins-=remove-me
بخش اصلی (MAIN SECTION)
plugins
مقدار پیشفرض و تعداد افزایههای موجود وابسته به توزیع است. بخش “پلاگینها (PLUGINS)” در ادامه را برای افزایههای موجود ببینید. توجه داشته باشید که افزایه بومی keyfile در NetworkManager همیشه به انتهای این فهرست افزوده میشود (اگر قبلاً در فهرست نیامده باشد).
monitor-connection-files
auth-polkit
dhcp
کلاینت internal به صورت توکار است، در حالی که گزینههای دیگر ممکن است نیاز به نصب یک کلاینت خارجی DHCP داشته باشند.
اگر این کلید وجود نداشته باشد، internal همراه با بازگشت به سایر کلاینتهای پشتیبانیشده استفاده میشود.
no-auto-default
هنگامی که اتصال سیمی پیشفرض حذف شود یا توسط یک افزایه در یک اتصال دائمی جدید ذخیره شود، دستگاه به فهرستی در پرونده /var/lib/NetworkManager/no-auto-default.state اضافه میشود تا از ایجاد مجدد اتصال پیشفرض برای آن دستگاه جلوگیری شود.
بخش “قالب فهرست دستگاه (Device List Format)” را برای نحو چگونگی تعیین یک دستگاه ببینید.
مثال:
no-auto-default=00:22:68:5c:5d:c4,00:1e:65:ff:aa:ee no-auto-default=eth0,eth1 no-auto-default=*
ignore-carrier
assume-ipv6ll-only
بخش “قالب فهرست دستگاه (Device List Format)” را برای نحو چگونگی تعیین یک دستگاه ببینید.
configure-and-quit
هنگامی که روی 'initrd' تنظیم شود، NetworkManager به D-Bus متصل نمیشود و پس از پیکربندی شبکه خارج میشود. این یک جزئیات پیادهسازی از نحوه اجرای NetworkManager توسط ماژول NetworkManager در dracut است. یک جایگزین برای این کار، اجرای NetworkManager به عنوان یک سرویس systemd به همراه D-Bus در initrd است.
مقدار 'true' از نسخه 1.36 پشتیبانی نمیشود. قبلاً این حالتی بود که در آن NetworkManager پس از پیکربندی شبکه خارج میشد و فرآیندهای کمکی را برای DHCP و SLAAC اجرا میکرد.
در غیر این صورت، NetworkManager یک سرویس سیستمی را همراه با D-Bus اجرا میکند و در طول عملکرد عادی خارج نمیشود.
hostname-mode
default: برنامه NetworkManager نام میزبان را با نام ارائهشده از طریق DHCP یا جستجوی معکوس DNS از نشانی IP روی اتصالی با مسیر پیشفرض یا روی هر اتصالی با ویژگی hostname.only-from-default تنظیمشده روی 'false' بهروزرسانی میکند. اتصالات به ترتیب صعودی مقدار ویژگی hostname.priority در نظر گرفته میشوند. در صورتی که چندین اتصال دارای اولویت یکسان باشند، اتصالاتی که زودتر فعال شدهاند ابتدا بررسی میشوند. اگر هیچ نام میزبانی به این روش تعیین نشود، نام میزبان به آخرین نام تنظیمشده در خارج از NetworkManager یا به 'localhost.localdomain' بهروزرسانی میشود.
dhcp: این مشابه 'default' است، با این تفاوت که پس از تلاش برای دریافت نام میزبان از طریق DHCP، جستجوی معکوس DNS انجام نمیشود. توجه داشته باشید که انتخاب این گزینه معادل تنظیم ویژگی 'hostname.from-dns-lookup' روی 'false' به صورت سراسری برای تمام اتصالات در NetworkManager.conf است.
none: برنامه NetworkManager نام میزبان گذرا را مدیریت نخواهد کرد و هرگز آن را تنظیم نمیکند.
dns
اگر کلید مشخص نشود، default استفاده میشود، مگر اینکه /etc/resolv.conf یک پیوند نمادین به /run/systemd/resolve/stub-resolv.conf، /run/systemd/resolve/resolv.conf، /lib/systemd/resolv.conf یا /usr/lib/systemd/resolv.conf باشد. در این صورت، systemd-resolved به طور خودکار انتخاب میشود.
default: برنامه NetworkManager پرونده /etc/resolv.conf را بهروزرسانی میکند تا سرورهای نام ارائهشده توسط اتصالات فعال فعلی را منعکس کند. تنظیم rc-manager (در ادامه) نحوه انجام این کار را کنترل میکند.
dnsmasq: برنامه NetworkManager برنامه dnsmasq را به عنوان یک سرور نام محلی دارای حافظه پنهان اجرا میکند و در صورت اتصال به VPN از "Conditional Forwarding" استفاده میکند، و سپس resolv.conf را برای اشاره به سرور نام محلی بهروزرسانی میکند. میتوان با افزودن گزینههای سفارشی به پروندههای موجود در دایرکتوری "/etc/NetworkManager/dnsmasq.d/" آنها را به نمونه dnsmasq ارسال کرد. توجه داشته باشید که وقتی چندین سرور بالادستی در دسترس باشند، dnsmasq در ابتدا به طور همزمان با آنها تماس میگیرد و سپس از سریعترین سرور برای پاسخ استفاده میکند و پس از مدتی سایر سرورها را دوباره بررسی میکند. این رفتار را میتوان با ارسال گزینههای 'all-servers' یا 'strict-order' به dnsmasq تغییر داد (برای جزئیات بیشتر به صفحه راهنما مراجعه کنید).
systemd-resolved: برنامه NetworkManager پیکربندی DNS را به systemd-resolved ارسال میکند.
dnsconfd: برنامه NetworkManager پیکربندی DNS را به dnsconfd[1] ارسال میکند و به طور پیشفرض ipvX.routed-dns را روی yes تنظیم میکند، بنابراین ارتباط با سرورها از طریق رابطهای مناسب برقرار میشود.
none: برنامه NetworkManager پرونده resolv.conf را ویرایش نمیکند. این به معنی rc-manager unmanaged است.
توجه داشته باشید که افزایههای dnsmasq,systemd-resolved و dnsconfd سرورهای نام محلی دارای حافظه پنهان هستند. از این رو، هنگامی که NetworkManager پروندههای /run/NetworkManager/resolv.conf و /etc/resolv.conf را مینویسد (با توجه به تنظیم rc-manager در ادامه)، سرور نام در آنجا فقط localhost خواهد بود. همچنین NetworkManager پروندهای به نام /run/NetworkManager/no-stub-resolv.conf مینویسد که شامل سرورهای نام اصلی ارسالشده به افزایه DNS است.
هنگام استفاده از dnsmasq,systemd-resolved و dnsconfd سرورهای dns اضافه شده برای هر اتصال همیشه با استفاده از دستگاهی که اتصال روی آن فعال شده است پرسوجو میشوند.
rc-manager
اگر dns=none را پیکربندی کنید یا /etc/resolv.conf را با chattr +i تغییرناپذیر سازید، NetworkManager این تنظیم را نادیده میگیرد و همیشه unmanaged (در ادامه) را انتخاب میکند.
auto: اگر افزایه systemd-resolved از طریق تنظیم dns پیکربندی شده باشد یا اگر به عنوان افزایه اصلی DNS تشخیص داده شود، NetworkManager بدون دستکاری /etc/resolv.conf افزایه systemd-resolved را بهروزرسانی میکند. متناوباً، اگر resolvconf یا netconfig در زمان کامپایل فعال شده باشند و باینری مربوطه یافت شود، NetworkManager به طور خودکار از آن استفاده خواهد کرد. توجه داشته باشید که اگر این باینریها را نصب یا حذف کنید، باید تنظیم rc-manager را با SIGHUP یا systemctl reload NetworkManager مجدداً بارگذاری کنید. به عنوان آخرین گزینه بازگشتی از گزینه symlink استفاده میکند (مورد بعدی را ببینید).
symlink: اگر /etc/resolv.conf یک پرونده معمولی باشد یا وجود نداشته باشد، NetworkManager پرونده را مستقیماً مینویسد. اگر /etc/resolv.conf در عوض یک پیوند نمادین باشد، NetworkManager کاری به آن نخواهد داشت. مگر اینکه پیوند نمادین به پرونده داخلی /run/NetworkManager/resolv.conf اشاره کند، که در این صورت پیوند نمادین بهروزرسانی میشود تا یک اعلان inotify صادر کند. این به کاربر اجازه میدهد تا به راحتی به NetworkManager دستور دهد که با جایگزین کردن آن با یک پیوند نمادین، /etc/resolv.conf را مدیریت نکند.
file: برنامه NetworkManager پرونده /etc/resolv.conf را به عنوان یک پرونده معمولی مینویسد. اگر پیوند نمادینی به یک مقصد موجود بیابد، پیوند نمادین را دنبال کرده و به جای آن مقصد را بهروزرسانی میکند. در هیچ حالتی پیوند نمادین موجود با یک پرونده جایگزین نخواهد شد. توجه داشته باشید که نسخههای قدیمیتر NetworkManager رفتار متفاوتی داشتند و پیوندهای نمادین معلق را با یک پرونده ساده جایگزین میکردند.
resolvconf: برنامه NetworkManager برنامه resolvconf را برای بهروزرسانی پیکربندی DNS اجرا میکند.
netconfig: برنامه NetworkManager برنامه netconfig را برای بهروزرسانی پیکربندی DNS اجرا میکند.
unmanaged: به /etc/resolv.conf دست نزن.
none: نام مستعار منسوخشده برای symlink.
systemd-resolved
توجه داشته باشید که اگر افزایه اصلی dns قبلاً systemd-resolved باشد، این تنظیم هیچ تاثیری ندارد. این تنظیم مکمل تنظیم dns برای پیکربندی systemd-resolved در کنار افزایه اصلی است.
اگر systemd-resolved فعال باشد، چه از طریق این تنظیم و چه از طریق افزایه اصلی DNS، بررسی اتصال نام میزبان را به ازای هر دستگاه حل میکند.
debug
RLIMIT_CORE: تنظیم ulimit -c unlimited برای نوشتن core dumpها. مراقب باشید که یک core dump میتواند حاوی اطلاعات حساسی مانند گذرواژهها یا تنظیمات پیکربندی باشد.
fatal-warnings: تنظیم g_log_set_always_fatal() برای ایجاد core dump روی پیامهای هشدار از glib. این معادل گزینه خط فرمان --g-fatal-warnings است.
autoconnect-retries-default
firewall-backend
iwd-config-path
این مسیر را میتوان با اشاره به یک دایرکتوری خاص، موجود و دارای دسترسی نوشتن نیز بازنویسی کرد. از سوی دیگر، تنظیم این مورد روی یک رشته خالی یا هر مقدار دیگری، سازوکار تبدیل پروفایل را غیرفعال میکند.
این سازوکار امکان ویرایش تنظیمات پروفایل اتصال مانند پیکربندی 802.1x را با استفاده از کلاینتهای NetworkManager فراهم میکند. بدون آن چنین تغییراتی در IWD تاثیری ندارند.
migrate-ifcfg-rh
بخش KEYFILE (KEYFILE SECTION)
این بخش شامل گزینههای مخصوص افزایه keyfile است و معمولاً تنها زمانی استفاده میشود که از هیچ افزایه مخصوص توزیع دیگری استفاده نمیکنید.
hostname
path
rename
unmanaged-devices
دستگاهی که به دلیل این گزینه مدیریتنشده باشد، کاملاً مدیریتنشده است و نمیتوان آن را با استفاده از API مانند nmcli device set $IFNAME managed yes مدیریتشده کرد. همچنین، دستگاهی که به دلایل دیگر مانند قاعده udev مدیریتنشده است، نمیتوان با این گزینه مدیریتشده کرد (مثلاً با استفاده از مشخصکننده except: ). این دو نکته آن را از گزینه device*.managed متمایز میکند که به همین دلیل ممکن است گزینه بهتری باشد.
بخش “قالب فهرست دستگاه (Device List Format)” را برای نحو چگونگی تعیین یک دستگاه ببینید.
مثال:
unmanaged-devices=interface-name:em4 unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2
بخش IFUPDOWN (IFUPDOWN SECTION)
این بخش شامل گزینههای مخصوص ifupdown است و بنابراین فقط هنگام استفاده از افزایه ifupdown تاثیر دارد.
managed
مقدار پیشفرض false است.
بخش گزارشگیری (LOGGING SECTION)
این بخش گزارشگیری NetworkManager را کنترل میکند. گزارشگیری برای درک اینکه NetworkManager چه کاری انجام میدهد بسیار مهم است. هنگام گزارش یک باگ، پرونده گزارش را بیدلیل فیلتر یا محدود نکنید. فقط level=TRACE و domains=ALL را فعال کنید تا همه چیز جمعآوری شود.
روش توصیهشده برای فعال کردن گزارشگیری با یک پرونده /etc/NetworkManager/conf.d/95-logging.conf است که شامل موارد زیر باشد:
[logging] level=TRACE domains=ALL
و دیمن را با systemctl restart NetworkManager مجدداً راهاندازی کنید. سپس مشکل را بازتولید نمایید. میتوانید گزارشها را در syslog بیابید (به عنوان مثال journalctl، یا journalctl -u NetworkManager برای نمایش گزارشهای مربوط به NetworkManager به تنهایی).
هر تنظیمی در اینجا توسط گزینههای خط فرمان --log-level و --log-domains بازنویسی میشود. گزارشگیری را میتوان در زمان اجرا با دستور nmcli general logging level "$LEVEL" domains "$DOMAINS" نیز بازپیکربندی کرد. با این حال، اغلب جالب است که گزارشی کامل از ابتدا دریافت شود. به ویژه هنگام اشکالزدایی یک مشکل، گزارشگیری اشکالزدایی را در NetworkManager.conf فعال کنید و سرویس را مجدداً راهاندازی کنید تا گزارشگیری با جزئیات بالا از ابتدا فعال شود.
با تنظیم nm.debug در خط فرمان هسته (از طریق /run/NetworkManager/proc-cmdline یا /proc/cmdline)، گزارشگیری اشکالزدایی فعال میشود. این کار هم گزینههای خط فرمان و هم تنظیمات NetworkManager.conf را بازنویسی میکند.
گزارشگیری NetworkManager طوری طراحی شده است که حاوی دادههای حساس خصوصی نباشد و مشکلی در به اشتراک گذاشتن گزارشهای اشکالزدایی نخواهید داشت. با این حال، نشانیهای IP و ساختار شبکه شما در آن وجود خواهند داشت؛ اگر آنها را خصوصی میدانید، گزارش را قبل از اشتراکگذاری بررسی کنید. اما سعی نکنید پرونده گزارش را به شکلی دستکاری کنید که معنای آن به کلی مخدوش شود.
برنامه NetworkManager بسته به پیکربندی از syslog یا systemd-journald استفاده میکند. در هر صورت، گزارشهای اشکالزدایی پرحجم هستند و ممکن است توسط دیمن گزارشگیری با محدودیت نرخ یا فیلتر مواجه شوند. برای systemd-journald، بخشهای RateLimitIntervalSec و RateLimitBurst را در راهنمای journald.conf برای نحوه غیرفعال کردن آن ببینید.
level
OFF تمام گزارشگیری را غیرفعال میکند. INFO میزان پرگویی پیشفرض برای عملکرد عادی است. TRACE برای اشکالزدایی است.
سطوح دیگر در اغلب موارد چندان کاربردی نیستند. برای مثال، DEBUG بین TRACE و INFO قرار دارد، اما برای عملکرد عادی بیش از حد پرحجم است و فاقد پیامهای مفید احتمالی برای اشکالزدایی است. تقریباً همیشه هنگام اشکالزدایی یک مشکل یا گزارش یک باگ، گزارشهای سطح کامل TRACE را برای دریافت تصویر کامل جمعآوری کنید.
domains
در موارد نامعمول برای حذف موضوعات خاص، دامنههای گزارش زیر در دسترس هستند: PLATFORM, RFKILL, ETHER, WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING, SUPPLICANT, AGENTS, SETTINGS, SUSPEND, CORE, DEVICE, OLPC, WIMAX, INFINIBAND, FIREWALL, ADSL, BOND, VLAN, BRIDGE, DBUS_PROPS, TEAM, CONCHECK, DCB, DISPATCH, AUDIT, SYSTEMD, VPN_PLUGIN, PROXY.
علاوه بر این، این دامنههای ویژه نیز قابل استفاده هستند: NONE, ALL, DEFAULT, DHCP, IP.
میتوانید با افزودن دونقطه و سطح گزارش به هر دامنه، سطوح گزارش مخصوص هر دامنه را بازنویسی کنید. مانند: "WIFI:DEBUG,WIFI_SCAN:OFF". یک مثال دیگر ALL,VPN_PLUGIN:TRACE برای فعال کردن تمام گزارشگیریهای ممکن است (توضیحات درباره VPN_PLUGIN را در ادامه ببینید).
توضیحات دامنهها:
به طور کلی، پرونده گزارش نباید حاوی گذرواژهها یا دادههای خصوصی باشد. با این حال، همیشه توصیه میشود پرونده را قبل از ارسال آنلاین یا پیوست به گزارش باگ بررسی کنید. VPN_PLUGIN خاص است زیرا ممکن است اطلاعات خصوصی افزایههای VPN را در سطوح پرگویی بالا آشکار سازد. بنابراین این دامنه هنگام تنظیم ALL یا DEFAULT روی سطوح پرگوتر از INFO مستثنی خواهد شد.
backend
audit
بخش اتصال (CONNECTION SECTION)
مقادیر پیشفرض را برای اتصالات مشخص میکند.
چنین مقادیر پیشفرضی تنها در صورتی مورد مراجعه قرار میگیرند که ویژگی متناظر در سطح اتصال صریحاً این اجازه را بدهد. این بدان معناست که تمام این ویژگیها با یک ویژگی از پروفایل اتصال (برای مثال connection.mud-url) متناظر هستند. تنها در صورتی که ویژگی در سطح هر پروفایل روی یک مقدار ویژه تنظیم شده باشد که نشاندهنده استفاده از پیشفرض است، مقدار پیشفرض از NetworkManager.conf مورد مراجعه قرار میگیرد. این که چه مقدار ویژهای نشاندهنده بازگشت به مقدار پیشفرض است به خود ویژگی بستگی دارد، اما معمولاً مقادیری مانند مقادیر خالی، مقادیر تنظیمنشده یا مقادیر عددی ویژه مانند 0 یا -1 است. این بدان معناست که مقدار مؤثر مورد استفاده را میتوان ابتدا همیشه برای هر پروفایل پیکربندی کرد و این مقادیر پیشفرض فقط زمانی اهمیت دارند که مقادیر هر پروفایل صریحاً نشان دهند که از پیشفرض NetworkManager.conf استفاده شود.
توجه داشته باشید در حالی که nmcli از نامهای مستعار و قابلیتهای تسهیلکننده گوناگون برای پیکربندی ویژگیها پشتیبانی میکند، تنظیمات موجود در این بخش چنین قابلیتی ندارند. به عنوان مثال، مقادیر enum معمولاً فقط از طریق عدد جادویی عددی خود قابل پیکربندی هستند.
مثال:
[connection] ipv6.ip6-privacy=0
ویژگیهای پشتیبانیشده (Supported Properties)
تمام ویژگیها قابل بازنویسی نیستند، تنها ویژگیهای زیر برای پیکربندی مقادیر پیشفرض آنها پشتیبانی میشوند (برای جزئیات به nm-settings-nmcli(5) مراجعه کنید):
802-1x.auth-timeout
cdma.mtu
connection.auth-retries
connection.autoconnect-ports
connection.autoconnect-slaves
connection.down-on-poweroff
connection.ip-ping-addresses-require-all
connection.mud-url
connection.lldp
connection.llmnr
connection.mdns
connection.mptcp-flags
connection.dns-over-tls
connection.dnssec
connection.stable-id
ethernet.cloned-mac-address
ethernet.generate-mac-address-mask
ethernet.mtu
ethernet.wake-on-lan
gsm.mtu
hostname.from-dhcp
hostname.from-dns-lookup
hostname.only-from-default
hostname.priority
infiniband.mtu
ip-tunnel.mtu
ipv4.forwarding
ipv4.clat
ipv4.routed-dns
ipv4.dad-timeout
ipv4.dhcp-client-id
ipv4.dhcp-dscp
ipv4.dhcp-iaid
ipv4.dhcp-ipv6-only-preferred
ipv4.dhcp-hostname-flags
ipv4.dhcp-send-hostname
ipv4.dhcp-send-release
ipv4.dhcp-timeout
ipv4.dhcp-vendor-class-identifier
ipv4.dns-priority
ipv4.required-timeout
ipv4.link-local
ipv4.route-metric
ipv4.route-table
ipv6.routed-dns
ipv6.addr-gen-mode
ipv6.ra-timeout
ipv6.dhcp-duid
ipv6.dhcp-iaid
ipv6.dhcp-hostname-flags
ipv6.dhcp-send-hostname
ipv6.dhcp-send-release
ipv6.dhcp-timeout
ipv6.dns-priority
ipv6.ip6-privacy
ipv6.temp-valid-lifetime
ipv6.temp-preferred-lifetime
ipv6.required-timeout
ipv6.route-metric
ipv6.route-table
loopback.mtu
macsec.offload
sriov.autoprobe-drivers
sriov.preserve-on-down
vpn.timeout
wifi.ap-isolation
wifi.cloned-mac-address
wifi.generate-mac-address-mask
wifi.mac-address-randomization
wifi.mtu
wifi.powersave
wifi-sec.pmf
wifi-sec.fils
wifi.wake-on-wlan
wireguard.mtu
بخشها (Sections)
میتوانید چندین بخش connection را با داشتن بخشهای متفاوتی که نام همگی با "connection" شروع میشود پیکربندی کنید. مثال:
[connection] ipv6.ip6-privacy=0 connection.autoconnect-ports=1 vpn.timeout=120 [connection-wifi-wlan0] match-device=interface-name:wlan0 ipv4.route-metric=50 [connection-wifi-other] match-device=type:wifi ipv4.route-metric=55 ipv6.ip6-privacy=1
بخشهای درون یک پرونده به ترتیب ظاهر شدن در نظر گرفته میشوند، با این استثنا که بخش [connection] همیشه در آخر در نظر گرفته میشود. در مثال بالا، این ترتیب به صورت [connection-wifi-wlan0]، [connection-wlan-other] و [connection] است. هنگام بررسی مقدار پیکربندی پیشفرض، بخشها جستجو میشوند تا مقدار درخواستی پیدا شود. در مثال بالا، "ipv4.route-metric" برای رابط wlan0 روی ۵۰ و برای تمام رابطهای دیگر از نوع Wi-Fi روی ۵۵ تنظیم شده است. همچنین، دستگاههای Wi-Fi به طور پیشفرض نشانیهای خصوصی IPv6 را فعال خواهند داشت، اما سایر دستگاهها آن را غیرفعال خواهند داشت. توجه داشته باشید که "wlan0" نیز "ipv6.ip6-privacy=1" را دریافت میکند، زیرا با اینکه بخش "[connection-wifi-wlan0]" با دستگاه مطابقت دارد، حاوی آن ویژگی نیست و جستجو ادامه مییابد.
هنگام داشتن بخشهای مختلف در چندین پرونده، بخشهای پروندههایی که دیرتر خوانده میشوند اولویت بالاتری دارند. بنابراین در یک پرونده، اولویت بخشها از بالا به پایین است. در میان چندین پرونده، تعاریف بعدی اولویت دارند.
ویژگیهای زیر نحوه اعمال یک بخش اتصال را بیشتر کنترل میکنند.
match-device
stop-match
بخش دستگاه (DEVICE SECTION)
حاوی پیکربندی دائمی مخصوص هر دستگاه است.
مثال:
[device] match-device=interface-name:eth3 managed=1
ویژگیهای پشتیبانیشده (Supported Properties)
ویژگیهای زیر را میتوان برای هر دستگاه پیکربندی کرد.
managed
carrier-wait-timeout
هنگامی که دستگاه حامل را از دست میدهد، NetworkManager بلافاصله واکنش نشان نمیدهد. در عوض، قبل از اینکه پیوند را از دست رفته تلقی کند، تا این مهلت زمانی منتظر میماند.
همچنین، در زمان راهاندازی، تا زمانی که دستگاه فاقد حامل است، NetworkManager دستگاه را برای این مدت زمان مشغول در نظر میگیرد. این کار سیگنال startup-complete و NetworkManager-wait-online را به تأخیر میاندازد. پیکربندی بیش از حد بالای این مقدار به معنای مسدود کردن NetworkManager-wait-online برای مدتی بیش از حد لازم هنگام راهاندازی با کابل جدا شده است. پیکربندی بسیار پایین آن، به این معنی است که NetworkManager وضعیت startup-complete را خیلی زود اعلام میکند، با اینکه حامل در شرف برقراری است و فعالسازی خودکار آغاز میشود. توجه داشته باشید که اگر یک پروفایل فقط دارای پیکربندی IP ایستا باشد یا پیکربندی لایه ۳ غیرفعال باشد، میتواند حتی بدون وجود حامل بر روی دستگاه به طور خودکار متصل شود. هنگامی که چنین پروفایلی به وضعیت کاملاً فعال برسد، حتی اگر دستگاه هنوز حامل نداشته باشد، وضعیت startup-complete محققشده در نظر گرفته میشود.
ignore-carrier
دستگاهی که حامل آن نادیده گرفته شده است، اجازه فعالسازی اتصالات را روی آن دستگاه حتی زمانی که فاقد حامل است میدهد، مشروط بر اینکه اتصال فقط از نشانیهای IP با پیکربندی ایستا استفاده کند. علاوه بر این، به هر اتصال فعال (خواه ایستا یا پویا) اجازه میدهد هنگام قطع حامل بر روی دستگاه فعال باقی بماند.
توجه داشته باشید که ویژگی "carrier" در NMDevices و رابطهای D-Bus دستگاه همچنان وضعیت واقعی دستگاه را منعکس خواهد کرد؛ فقط NetworkManager از این اطلاعات استفاده نخواهد کرد.
انواع Master مانند bond، bridge و team حامل را به طور پیشفرض نادیده میگیرند، در حالی که سایر انواع دستگاهها به طور پیشفرض به تغییرات حامل واکنش نشان میدهند.
این تنظیم، تنظیم منسوخشده main.ignore-carrier در بالا را بازنویسی میکند.
check-connectivity
اگر بررسی اتصال به طور سراسری با استفاده از تنظیم connectivity.enabled غیرفعال شده باشد، این تنظیم هیچ کاری انجام نمیدهد.
keep-configuration
در زمان راهاندازی، NetworkManager تلاش میکند در رابطهایی که از قبل پیکربندی شدهاند تداخل ایجاد نکند. این کار را با ایجاد یک اتصال در حافظه بر اساس پیکربندی فعلی رابط انجام میدهد.
اگر این اتصال ایجادشده با یکی از اتصالات دائمی موجود مطابقت داشته باشد، اتصال دائمی فعال میشود. اگر هیچ تطبیقی وجود نداشته باشد، اتصال ایجادشده به صورت "external" فعال میشود، به این معنی که اتصال فعال در نظر گرفته میشود، اما NetworkManager در عمل به رابط دست نمیزند.
امکان غیرفعال کردن این رفتار با تنظیم keep-configuration روی no وجود دارد. در این حالت، NetworkManager در زمان راهاندازی همیشه تلاش میکند مناسبترین اتصال دائمی (اتصالی با بالاترین autoconnect-priority یا در صورت برابری، اتصالی که اخیراً فعال شده است) را فعال کند.
توجه داشته باشید که هنگامی که NetworkManager مجدداً راهاندازی میشود، وضعیت قبلی را در /run/NetworkManager ذخیره میکند؛ به ویژه شناسه UUID اتصالی را که قبلاً فعال بوده ذخیره میکند تا بتوان آن را پس از راهاندازی مجدد دوباره فعال کرد. بنابراین، keep-configuration هیچ تاثیری در راهاندازی مجدد سرویس ندارد.
allowed-connections
یک مورد کاربرد مهم برای این امر، فیلتر کردن این موضوع است که کدام اتصالات را میتوان بر اساس نحوه ایجاد آنها فعال کرد؛ کلمه کلیدی origin را در بخش “قالب فهرست اتصال (Connection List Format)” ببینید.
wifi.scan-rand-mac-address
wifi.backend
wifi.scan-generate-mac-address-mask
wifi.iwd.autoconnect
sriov-num-vfs
بخشها (Sections)
بخش [device] مشابه بخش [connection] عمل میکند. یعنی میتوان چندین بخش را که همگی با پیشوند "device" شروع میشوند تعیین کرد. تنظیمات "match-device" و "stop-match" برای مطابقت دادن یک بخش دستگاه با یک دستگاه در دسترس هستند. ترتیب چندین بخش نیز در یک پرونده از بالا به پایین است و پروندههای بعدی تنظیمات قبلی را بازنویسی میکنند. بخش “بخشها (Sections)” زیر بخش “بخش اتصال (CONNECTION SECTION)” را برای جزئیات ببینید.
بخش بررسی اتصال (CONNECTIVITY SECTION)
این بخش عملکرد اختیاری بررسی اتصال NetworkManager را کنترل میکند. این قابلیت به NetworkManager امکان میدهد تشخیص دهد که آیا سیستم واقعاً میتواند به اینترنت دسترسی داشته باشد یا اینکه پشت یک پرتال محصور (captive portal) قرار دارد.
بررسی اتصال دو هدف را دنبال میکند. از یک سو، وضعیت اتصال را روی D-Bus نشان میدهد که سایر برنامهها میتوانند از آن استفاده کنند. به عنوان مثال، دستیار پرتال Gnome از این به عنوان نشانهای برای نمایش صفحه ورود پرتال محصور استفاده میکند. کاربرد دیگر این است که به مسیر پیشفرض دستگاههای فاقد اتصال سراسری، جریمهای معادل ۲۰۰۰۰+ به route-metric اعمال میشود. هدف از این کار دادن یک مسیر پیشفرض بهتر به دستگاههایی است که اتصال سراسری دارند. برای مثال، هنگام اتصال به WWAN و یک شبکه Wi-Fi که پشت پرتال محصور است، WWAN همچنان تا زمان ورود به سیستم در اولویت قرار میگیرد.
توجه داشته باشید که توزیع شما ممکن است /proc/sys/net/ipv4/conf/*/rp_filter را روی فیلتر کردن سختگیرانه تنظیم کرده باشد. این امر با بررسی اتصال به ازای هر دستگاه که از SO_BINDDEVICE برای ارسال درخواستها روی تمام دستگاهها استفاده میکند، به خوبی کار نمیکند. تنظیم دقیق rp_filter هر پاسخی را رد میکند و بررسی اتصال روی همه مسیرها به جز بهترین مسیر با شکست مواجه میشود.
enabled
uri
interval
timeout
response
بخش GLOBAL-DNS (GLOBAL-DNS SECTION)
این بخش تنظیمات DNS را مشخص میکند که به صورت سراسری اعمال میشوند. آنها گزینههای معادل تعریفشده در اتصالات منفرد را بازنویسی میکنند و باعث نادیده گرفته شدن آنها میشوند. اگر یک بخش [global-dns-domain-*] تعریف شده باشد، اما این بخش تعریف نشده باشد، یک بخش خالی [global-dns] در نظر گرفته میشود و بدین ترتیب پیکربندیهای خاص اتصال نیز بازنویسی میشوند.
searches
options
resolve-mode
certification-authority
بخشهای GLOBAL-DNS-DOMAIN (GLOBAL-DNS-DOMAIN SECTIONS)
بخشهایی با نامی که با پیشوند "global-dns-domain-" شروع میشوند به کاربر اجازه میدهند پیکربندی سراسری DNS را برای دامنههای خاص تعریف کند. بخشی از نام بخش بعد از "global-dns-domain-" نام دامنهای را که بخش به آن اعمال میشود مشخص میکند (به عنوان مثال، یک بخش میتواند "global-dns-domain-foobar.com" نامیده شود). دامنههای خاصتر نسبت به دامنههای با ویژگی کمتر اولویت دارند و دامنه پیشفرض با نویسه عمومی "*" نشان داده میشود. برای معتبر بودن، دامنههای سراسری DNS باید شامل بخشی برای دامنه پیشفرض "*" باشند. هنگامی که دامنههای سراسری DNS معتبر باشند، سرورهای نام و دامنههای تعریفشده به صورت سراسری، موارد مربوط به اتصالات فعال را بازنویسی میکنند. اگر هر دامنه سراسری DNS تعریف شده باشد اما بخش [global-dns] تعریف نشده باشد، یک بخش خالی [global-dns] در نظر گرفته میشود و بنابراین پیکربندیهای خاص اتصال آن نیز بازنویسی میشوند.
servers
ADDRESS یک نشانی IPv4 یا IPv6 است. هنگامی که IPv6 است، باید در کروشه ('[' و ']') محصور شود. هنگامی که یک نشانی پیوند-محلی IPv6 است، نشانی باید با علامت درصد ('%') و نام رابط دنبال شود.
options
بخشهای .CONFIG (.CONFIG SECTIONS)
این یک بخش ویژه است که حاوی گزینههایی است که بر پرونده پیکربندی حاوی آن گزینه اعمال میشوند.
enable
# همیشه از بارگذاری پرونده پیکربندی صرفنظر شود [.config] enable=false
همچنین میتوانید با نسخه NetworkManager تطبیق دهید. به عنوان مثال پیکربندیهای زیر معتبر هستند:
# فقط در نسخه 1.0.6 بارگذاری شود [.config] enable=nm-version:1.0.6 # در تمام نسخههای 1.0.x بارگذاری شود، اما نه 1.2.x [.config] enable=nm-version:1.0 # فقط در نسخههای >= 1.1.6 بارگذاری شود. این با نسخه # 1.2.0 یا 1.4.4 تطبیق ندارد. فقط رقم آخر در نظر گرفته میشود. [.config] enable=nm-version-min:1.1.6 # فقط در نسخههای >= 1.2 بارگذاری شود. بر خلاف مثال # قبلی، این با 1.2.0، 1.2.10، 1.4.4 و غیره نیز مطابقت دارد. [.config] enable=nm-version-min:1.2 # تطبیق با حداکثر نسخه مجاز. این مثال با نسخههای # 1.2.0، 1.2.2، 1.2.4 مطابقت دارد. باز هم، فقط رقم آخر نسخه # اجازه دارد کوچکتر باشد. بنابراین با 1.1.10 مطابقت ندارد. [.config] enable=nm-version-max:1.2.6
همچنین میتوانید با مقدار متغیر محیطی NM_CONFIG_ENABLE_TAG تطبیق دهید، مانند:
# پرونده فقط هنگام اجرای NetworkManager با متغیر # محیطی "NM_CONFIG_ENABLE_TAG=TAG1" بارگذاری شود [.config] enable=env:TAG1
بیش از یک تطبیق را میتوان مشخص کرد. اگر یکی از گزارهها مطابقت داشته باشد ("or") پیکربندی فعال خواهد شد. پیشوند ویژه "except:" را میتوان برای نقیض کردن تطبیق استفاده کرد. توجه داشته باشید که اگر یک گزاره except مطابقت داشته باشد، کل پیکربندی غیرفعال خواهد شد. به عبارت دیگر، یک گزاره except همیشه بر سایر گزارهها اولویت دارد. اگر تنظیم فقط شامل تطبیقهای "except:" باشد و هیچیک از شرایط منفی برآورده نشود، پیکربندی همچنان فعال خواهد بود.
# فعالسازی پیکربندی در صورت وجود متغیر محیطی # یا زمانی که نسخه حداقل 1.2.0 باشد. [.config] enable=env:TAG2,nm-version-min:1.2 # فعالسازی پیکربندی برای نسخه >= 1.2.0، اما غیرفعال # کردن آن زمانی که متغیر محیطی روی "TAG3" تنظیم شده باشد [.config] enable=except:env:TAG3,nm-version-min:1.2 # فعالسازی پیکربندی در >= 1.3، >= 1.2.6 و >= 1.0.16. # زمانی مفید است که قابلیت خاصی تنها از آن نسخهها به بعد موجود باشد. [.config] enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
پلاگینها (PLUGINS)
افزایههای تنظیمات برای خواندن و نوشتن پروفایلهای اتصال. تعداد افزایههای موجود وابسته به توزیع است.
keyfile
پرونده اتصال ذخیرهشده ممکن است حاوی گذرواژهها، دادههای محرمانه و کلیدهای خصوصی به صورت متن ساده باشد، بنابراین فقط برای کاربر ارشد قابل خواندن خواهد بود و افزایه پروندههایی را که توسط هر کاربر یا گروهی غیر از کاربر ارشد قابل خواندن یا نوشتن باشند نادیده میگیرد. بخش "Secret flag types" را در nm-settings-nmcli(5) برای نحوه اجتناب از ذخیره گذرواژهها به صورت متن ساده ببینید.
این افزایه همیشه فعال است و به طور خودکار برای ذخیره هر اتصالی که توسط هیچ افزایه فعال دیگری پشتیبانی نمیشود استفاده خواهد شد.
ifcfg-rh
ifupdown
این افزایه فقطخواندنی است؛ هر اتصالی (از هر نوع) که در حین استفاده از این افزایه از درون NetworkManager اضافه شود، در عوض با استفاده از افزایه keyfile ذخیره خواهد شد.
ibft, no-ibft
ifcfg-suse, ifnet
ضمیمه (APPENDIX)
قالب فهرست دستگاه (Device List Format)
گزینههای پیکربندی main.no-auto-default، main.ignore-carrier، keyfile.unmanaged-devices، connection*.match-device و device*.match-device دستگاهها را بر اساس فهرستی از تطبیقها انتخاب میکنند. دستگاهها را میتوان با استفاده از قالب زیر مشخص کرد:
*
IFNAME
HWADDR
interface-name:IFNAME, interface-name:~IFNAME
interface-name:=IFNAME
mac:HWADDR
s390-subchannels:HWADDR
type:TYPE
driver:DRIVER
dhcp-plugin:DHCP
except:SPEC
اگر فهرستی فقط شامل تطبیقهای منفی باشد، رفتار همانند زمانی است که تطبیق با همه نیز وجود داشته باشد. این بدان معناست که اگر هیچیک از تطبیقهای منفی برآورده نشود، نتیجه کلی همچنان یک تطبیق مثبت است. یعنی "except:interface-name:eth0" همانند "*,except:interface-name:eth0" است.
SPEC[,;]SPEC
نویسه بکاسلش برای اسکیپ کردن جداکنندههای ';' و ',' و بیان کاراکترهای ویژه مانند خط جدید ('\n')، تب ('\t')، فاصله ('\s') و بکاسلش ('\\') پشتیبانی میشود. الگوهای Globbing نامهای رابط را نمیتوان اسکیپ کرد. فاصله خالی جداکننده نیست اما بین دو مشخصه حذف خواهد شد (مگر اینکه به صورت '\s' اسکیپ شود).
مثال:
interface-name:em4 mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2 interface-name:vboxnet*,except:interface-name:vboxnet2 *,except:mac:00:22:68:1c:59:b1
قالب فهرست اتصال (Connection List Format)
اتصالات را میتوان با استفاده از قالب زیر مشخص کرد:
*
uuid:UUID
id:ID
origin:ORIGIN
except:SPEC
اگر فهرستی فقط شامل تطبیقهای منفی باشد، رفتار همانند زمانی است که تطبیق با همه نیز وجود داشته باشد. این بدان معناست که اگر هیچیک از تطبیقهای منفی برآورده نشود، نتیجه کلی همچنان یک تطبیق مثبت است.
SPEC[,;]SPEC
نویسه بکاسلش برای اسکیپ کردن جداکنندههای ';' و ',' و بیان کاراکترهای ویژه مانند خط جدید ('\n')، تب ('\t')، فاصله ('\s') و بکاسلش ('\\') پشتیبانی میشود. فاصله خالی جداکننده نیست اما بین دو مشخصه حذف خواهد شد (مگر اینکه به صورت '\s' اسکیپ شود).
همچنین ببینید (SEE ALSO)
NetworkManager(8), nmcli(1), nmcli-examples(7), nm-online(1), nm-settings-nmcli(5), nm-applet(1), nm-connection-editor(1)
نکات (NOTES)
- 1.
- dnsconfd
| NetworkManager 1.58.1 |