مجله ایرانیکاسرورآموزش سرور، هاست، وردپرس و شبکه
آموزشی

رفع A Start Job Is Running for Wait for Network در Linux؛ حل کامل کندی Boot شبکه

اگر هنگام روشن‌شدن Ubuntu یا یک سرور لینوکسی پیام A Start Job Is Running for Wait for Network را می‌بینید و Boot برای چند ثانیه یا حتی حدود دو دقیقه متوقف می‌شود، معمولاً یکی…

رفع A Start Job Is Running for Wait for Network در Linux؛ حل کامل کندی Boot شبکه
خلاصه سریع این آموزش

اگر هنگام روشن‌شدن Ubuntu یا یک سرور لینوکسی پیام A Start Job Is Running for Wait for Network را می‌بینید و Boot برای چند ثانیه یا حتی حدود دو دقیقه…

۷ دقیقه مطالعه ۰ دیدگاه ۱۳ مهر ۱۴۰۵ آخرین به‌روزرسانی

اگر هنگام روشن‌شدن Ubuntu یا یک سرور لینوکسی پیام A Start Job Is Running for Wait for Network را می‌بینید و Boot برای چند ثانیه یا حتی حدود دو دقیقه متوقف می‌شود، معمولاً یکی از Interfaceهای شبکه به وضعیت مورد انتظار نمی‌رسد. ممکن است کابل یا Carrier وجود نداشته باشد، DHCP پاسخ ندهد، یک Interface غیرضروری Required تعریف شده باشد یا NetworkManager منتظر تکمیل یک Connection Profile بماند.

راه‌حل سریع: اول مشخص کنید شبکه توسط systemd-networkd مدیریت می‌شود یا NetworkManager. اگر networkd فعال است، با networkctl Interface گیرکرده را پیدا کنید و اگر برای Boot ضروری نیست در Netplan مقدار optional: true قرار دهید. اگر NetworkManager فعال است، Connectionهای در حال Activation و تنظیمات Carrier/DHCP را بررسی کنید.

فهرست مطالب

پیام A Start Job Is Running for Wait for Network یعنی چه؟

در زمان Boot، بعضی سرویس‌ها نیاز دارند شبکه قبل از اجرای آن‌ها آماده باشد. systemd برای این موضوع از network-online.target استفاده می‌کند.

بسته به Network Backend، یکی از این سرویس‌ها ممکن است منتظر شبکه باشد:

🔹 systemd-networkd-wait-online.service

🔹 NetworkManager-wait-online.service

بنابراین قبل از هر تغییری باید مشخص کنیم کدام سرویس واقعاً Boot را معطل کرده است.

مرحله ۱: پیدا کردن سرویس کندکننده Boot

systemd-analyze blame

اگر چیزی شبیه این دیدید:

2min systemd-networkd-wait-online.service

مشکل از مسیر systemd-networkd است.

اگر این مورد را دیدید:

NetworkManager-wait-online.service

باید تنظیمات NetworkManager را بررسی کنید.

مرحله ۲: Renderer شبکه را مشخص کنید

sudo netplan get

اگر چنین چیزی دیدید:

renderer: networkd

راه‌حل‌های بخش systemd-networkd را دنبال کنید.

اگر:

renderer: NetworkManager

بخش NetworkManager برای شما مرتبط است.

روش اول: رفع مشکل در systemd-networkd

وضعیت Interfaceها را ببینید:

networkctl

نمونه:

IDX LINK  TYPE     OPERATIONAL SETUP
1   lo    loopback carrier     unmanaged
2   eth0  ether    routable    configured
3   eth1  ether    no-carrier  configuring

در این مثال eth1 می‌تواند باعث انتظار Boot شود.

راه‌حل پیشنهادی: optional: true

اگر Interface دوم برای بالا آمدن سرور ضروری نیست، فایل Netplan را باز کنید:

ls -l /etc/netplan/
sudo nano /etc/netplan/01-netcfg.yaml

مثال:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true

    eth1:
      dhcp4: true
      optional: true

در Netplan، Device دارای optional: true برای ادامه Boot ضروری نیست و networkd منتظر آماده‌شدن آن نمی‌ماند. :chatgpt-content-reference{index=”1″}

⚠️ نام فایل Netplan در هر سرور ممکن است متفاوت باشد. فایل موجود در /etc/netplan/ را ویرایش کنید و نام Interface را نیز دقیقاً از خروجی ip link یا networkctl بردارید.

قبل از Apply کردن Netplan

sudo netplan generate

روی VPS Remote بهتر است به‌جای Apply مستقیم از:

sudo netplan try

استفاده کنید.

راه‌حل مستقیم systemd-networkd: RequiredForOnline=no

اگر Netplan استفاده نمی‌کنید و فایل .network را مستقیم مدیریت می‌کنید:

[Match]
Name=eth1

[Network]
DHCP=yes
RequiredForOnline=no

RequiredForOnline=no باعث می‌شود این Link هنگام تعیین وضعیت Online سیستم نادیده گرفته شود. :chatgpt-content-reference{index=”2″}

اگر فقط یک Interface باید Online شود

systemd امکان انتظار برای Interface مشخص را هم دارد:

systemd-networkd-wait-online@eth0.service

این نسخه فقط Interface مشخص‌شده را برای Online شدن بررسی می‌کند. :chatgpt-content-reference{index=”3″}

گزینه –any برای چند Interface

اگر چند Interface دارید و Online شدن یکی از آن‌ها برای ادامه Boot کافی است، systemd گزینه:

--any

را ارائه می‌دهد. این گزینه مخصوصاً برای سیستم‌هایی مفید است که بعضی Interfaceها هنگام Boot ممکن است Carrier نداشته باشند. :chatgpt-content-reference{index=”4″}

VPS بعد از Reboot دیر بالا می‌آید؟

در سرورهایی با چند کارت شبکه، Private Network، Tunnel یا تنظیمات Netplan سفارشی، یک Interface غیرضروری می‌تواند Boot را تا پایان Timeout متوقف کند. بهتر است Required و Optional بودن Interfaceها دقیق مشخص شود.

تماس با پشتیبانی ایرانیکاسرور: 021-91302467

روش دوم: اگر NetworkManager عامل Wait for Network است

NetworkManager سرویس جداگانه‌ای به نام:

NetworkManager-wait-online.service

دارد. این سرویس رسیدن سیستم به network-online.target را تا زمانی که NetworkManager Startup را کامل اعلام کند عقب می‌اندازد. :chatgpt-content-reference{index=”5″}

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

systemctl status NetworkManager-wait-online.service --no-pager
nmcli device status
nmcli connection show

Interface بدون کابل در NetworkManager

NetworkManager برای Ethernet ممکن است منتظر Carrier بماند. اگر کابل متصل نیست یا Interface مجازی در Boot آماده نمی‌شود، همین انتظار می‌تواند Boot را طولانی کند. مستندات NetworkManager نیز به تأخیر ناشی از Carrier Wait اشاره می‌کنند. :chatgpt-content-reference{index=”6″}

وضعیت Device:

nmcli device status

Connection Profileهای در حال Activation را بررسی کنید

nmcli connection show --active
nmcli connection show

NetworkManager Startup را تا زمانی که Profileهای Auto-connect در حال Activation هستند کامل در نظر نمی‌گیرد. Retryهای Auto-connect، DHCP Timeout، IPv6 و Carrier می‌توانند این زمان را افزایش دهند. :chatgpt-content-reference{index=”7″}

IPv4 یا IPv6 می‌تواند عامل تأخیر باشد؟

بله. در NetworkManager تنظیمات:

ipv4.may-fail
ipv6.may-fail

تعیین می‌کنند آیا آماده نشدن یکی از Address Familyها مانع Activated شدن Connection شود یا نه. :chatgpt-content-reference{index=”8″}

آیا Wait Online را Mask کنیم؟

این یکی از راه‌حل‌هایی است که زیاد در اینترنت دیده می‌شود:

sudo systemctl mask systemd-networkd-wait-online.service

یا برای NetworkManager:

sudo systemctl mask NetworkManager-wait-online.service

⚠️ این کار را به‌عنوان اولین راه‌حل انجام ندهید. Remote Mountها، Applicationهای وابسته به شبکه، Backup Serviceها یا سرویس‌هایی که صریحاً به network-online.target وابسته‌اند ممکن است قبل از آماده‌شدن شبکه اجرا شوند و Fail کنند.

چه سرویس‌هایی به network-online.target وابسته‌اند؟

systemctl list-dependencies network-online.target

قبل از Disable یا Mask کردن Wait Online این خروجی را بررسی کنید.

Timeout 120 ثانیه از کجا می‌آید؟

در systemd-networkd-wait-online گزینه –timeout= برای تعیین بیشترین زمان انتظار وجود دارد و مقدار پیش‌فرض آن ۱۲۰ ثانیه است. :chatgpt-content-reference{index=”9″}

بنابراین اگر Boot تقریباً دو دقیقه روی Wait for Network متوقف می‌شود، این نشانه بسیار خوبی است که یکی از Linkهای Required به وضعیت لازم نمی‌رسد.

کم‌کردن Timeout بهتر است یا رفع Interface؟

رفع Interface تقریباً همیشه انتخاب بهتری است.

اگر یک Interface بلااستفاده باعث انتظار می‌شود، Optional کردن آن مشکل اصلی را حل می‌کند. کاهش Timeout فقط باعث می‌شود همان مشکل زودتر Timeout شود.

بررسی Logهای systemd-networkd

journalctl -u systemd-networkd -b --no-pager

دنبال پیام‌هایی درباره DHCP، Address Configuration، Carrier و Interfaceهای Failed بگردید.

بررسی Logهای NetworkManager

journalctl -u NetworkManager -b --no-pager

تست نهایی بعد از اصلاح

بعد از اصلاح Netplan یا NetworkManager، ابتدا شبکه را بررسی کنید:

ip address
ip route

اگر networkd دارید:

networkctl

سپس در زمان مناسب Reboot کنید:

sudo reboot

بعد از Boot:

systemd-analyze blame

جدول تشخیص سریع

نشانه راه‌حل اولیه
Boot حدود ۱۲۰ ثانیه معطل است بررسی systemd-networkd-wait-online
Interface دوم no-carrier است optional: true
DHCP روی Interface گیر کرده بررسی DHCP و networkd Log
NetworkManager عامل تأخیر است بررسی nmcli، Carrier و Profileها
فقط یک کارت شبکه ضروری است محدودکردن Wait به Interface اصلی

پرسش‌های متداول

A Start Job Is Running for Wait for Network چیست؟

پیامی از systemd هنگام Boot است که نشان می‌دهد سیستم منتظر آماده‌شدن شبکه یا کامل‌شدن Startup سرویس مدیریت شبکه مانده است.

چرا این پیام حدود دو دقیقه طول می‌کشد؟

اگر systemd-networkd-wait-online عامل انتظار باشد، Timeout پیش‌فرض آن ۱۲۰ ثانیه است.

آیا optional: true کارت شبکه را خاموش می‌کند؟

خیر. فقط باعث می‌شود آماده‌شدن آن Interface شرط ادامه Boot نباشد.

چطور بفهمیم NetworkManager یا networkd فعال است؟

خروجی netplan get و وضعیت سرویس‌های systemd را بررسی کنید. Renderer در Netplan معمولاً مشخص می‌کند Backend اصلی چیست.

آیا Mask کردن wait-online خطرناک است؟

ممکن است. سرویس‌های وابسته به network-online.target احتمال دارد قبل از آماده‌شدن واقعی شبکه اجرا شوند.

بهترین راه رفع این مشکل چیست؟

Interface یا Connection مشکل‌دار را پیدا کنید و Required بودن آن برای Boot را اصلاح کنید؛ نه اینکه صرفاً کل Wait Online را غیرفعال کنید.

منابع رسمی

🔹 systemd-networkd-wait-online manual

🔹 Netplan optional documentation

🔹 NetworkManager-wait-online documentation

جمع‌بندی

اگر Linux هنگام Boot روی A Start Job Is Running for Wait for Network گیر می‌کند، اول Backend فعال شبکه را مشخص کنید. در systemd-networkd معمولاً یک Interface Required ولی بدون Carrier یا DHCP عامل مشکل است و optional: true می‌تواند راه‌حل تمیزی باشد. در NetworkManager نیز Profileهای در حال Activation، Carrier، DHCP و تنظیمات IPv4/IPv6 باید بررسی شوند. Mask کردن Wait Online را فقط بعد از بررسی وابستگی‌های network-online.target انجام دهید.

سرور هنوز روی Wait for Network گیر می‌کند؟

اگر VPS چند Interface، Private Network، Netplan سفارشی یا NetworkManager Profile پیچیده دارد، می‌توانید برای بررسی Boot Log و تنظیمات شبکه درخواست فنی ثبت کنید.

تماس با پشتیبانی ایرانیکاسرور: 021-91302467

اشتراک‌گذاری مقاله
گفت‌وگو درباره آموزش

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده است.

دیدگاه یا سؤال خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *