اگر بعد از آپدیت Ubuntu یا ریبوت سرور ناگهان SSH قطع شده، سرور IP ندارد یا اینترنت VPS از دسترس خارج شده است، قبل از نصب مجدد سیستمعامل چند مورد را بررسی کنید. در بیشتر سناریوها مشکل به تنظیمات Netplan، تغییر نام Interface، Route پیشفرض، سرویس مدیریت شبکه، Cloud-init یا Kernel جدید مربوط میشود.
اگر به Console سرور دسترسی دارید، ابتدا با ip link نام کارت شبکه را پیدا کنید، سپس وضعیت IP و Route را با ip addr و ip route بررسی کنید. بعد فایلهای /etc/netplan/ را با نام واقعی Interface مقایسه کنید و پیش از اعمال تغییر دائمی از netplan try استفاده کنید.
چرا شبکه Ubuntu بعد از Update قطع میشود؟
عبارت «بعد از آپدیت شبکه قطع شد» بهتنهایی علت را مشخص نمیکند. گاهی آپدیت فقط زمانی است که مشکل آشکار شده؛ برای مثال سرور مدتها تنظیم اشتباه Netplan داشته اما چون ریبوت نشده، مشکل دیده نشده است. پس از نصب Kernel یا بستههای شبکه و اولین reboot، تنظیمات دوباره از روی فایلهای موجود ساخته میشوند و خطا نمایان میشود.
🔹 نام Interface داخل Netplan با کارت شبکه واقعی یکسان نیست.
🔹 فایل YAML دارای خطای Syntax، تورفتگی یا تنظیم قدیمی است.
🔹 IP روی Interface وجود دارد اما Default Route حذف شده است.
🔹 شبکه سالم است اما DNS کار نمیکند.
🔹 Renderer مورد انتظار با سرویس فعال شبکه هماهنگ نیست.
🔹 Cloud-init تنظیمات شبکه را در زمان Boot دوباره تولید کرده است.
🔹 Kernel جدید درایور کارت شبکه مجازی یا فیزیکی را بهدرستی بارگذاری نکرده است.
قبل از شروع: اگر SSH قطع شده چطور وارد سرور شویم؟
اگر سرور از شبکه خارج شده است، دستورات این آموزش را نمیتوانید از طریق SSH اجرا کنید. باید از Console، VNC، KVM، Serial Console یا Rescue ارائهشده توسط میزبان استفاده کنید. نام این قابلیت بسته به دیتاسنتر یا پنل مدیریت VPS متفاوت است.
اگر هنوز SSH شما متصل است، بدون دسترسی Console تنظیمات IP، Gateway، Netplan یا سرویس شبکه را بهصورت مستقیم تغییر ندهید. یک اشتباه کوچک ممکن است همان Session فعال را هم قطع کند.
مرحله ۱: وضعیت واقعی کارت شبکه را پیدا کنید
ابتدا هیچ فایلی را تغییر ندهید. فقط ببینید Kernel چه Interfaceهایی را شناسایی کرده است:
ip link
ممکن است نام کارت شبکه چیزی مانند ens3، ens18، enp1s0، eth0 یا نام دیگری باشد. نامی را که واقعاً در خروجی میبینید یادداشت کنید.
حالا بررسی کنید آیا روی Interface آدرس IP وجود دارد:
ip addr
اگر Interface وجود دارد اما IP ندارد، احتمال مشکل در Netplan، DHCP یا تنظیم Static IP زیاد است. اگر حتی Interface مورد انتظار وجود ندارد، قبل از دستکاری Netplan باید Kernel و Driver بررسی شوند.
مرحله ۲: Default Route را بررسی کنید
ip route
روی سروری که اینترنت آن از یک Gateway معمولی خارج میشود، معمولاً باید یک مسیر default مشاهده کنید. شکل دقیق آن به شبکه دیتاسنتر بستگی دارد.
اگر IP روی کارت شبکه وجود دارد ولی Default Route ندارید، مشکل میتواند از Gateway یا بخش routes در Netplan باشد.
Gateway، Prefix و IP باید از اطلاعات واقعی VPS یا تنظیمات قبلی سرور استخراج شوند. استفاده از مقادیر نمونه این مقاله روی سرور واقعی میتواند دسترسی شما را قطع کند.
مرحله ۳: فایلهای Netplan را بررسی کنید
فایلهای موجود را ببینید:
ls -la /etc/netplan/
sudo netplan get
سپس فایل واقعی موجود در این پوشه را مشاهده کنید. برای مثال، اگر نام فایل 50-cloud-init.yaml است:
sudo cat /etc/netplan/50-cloud-init.yaml
مهمترین بررسی این است که نام Interface داخل فایل با خروجی ip link یکسان باشد.
برای مثال اگر فایل به eth0 اشاره میکند اما کارت واقعی ens3 است، تنظیمات روی Interface مورد نظر اعمال نمیشوند.
قبل از ویرایش Netplan بکاپ بگیرید
sudo cp -a /etc/netplan /etc/netplan.backup
اگر تغییر نتیجه نامناسبی داشت، این نسخه میتواند برای بازیابی تنظیمات قبلی استفاده شود.
مرحله ۴: خطای Syntax در Netplan را پیدا کنید
YAML به فاصله و تورفتگی حساس است. قبل از Apply کردن تنظیمات، آنها را Generate کنید:
sudo netplan generate
اگر خطای YAML، گزینه ناشناخته یا تنظیم نامعتبر وجود داشته باشد، ابتدا همان خطا را اصلاح کنید. اجرای مستقیم netplan apply روی فایل مشکوک انتخاب مناسبی برای یک VPS راهدور نیست.
مرحله ۵: تنظیم جدید را با Netplan Try آزمایش کنید
بعد از اصلاح فایل، بهخصوص اگر از راه دور به سرور متصل هستید، از حالت آزمایشی استفاده کنید:
sudo netplan try
این روش برای کاهش خطر قفلشدن سرور طراحی شده است. تنظیمات بهصورت آزمایشی اعمال میشوند و باید آنها را تأیید کنید؛ در غیر این صورت Netplan میتواند به وضعیت قبلی بازگردد.
پس از تأیید اتصال، در صورت نیاز تنظیم نهایی را اعمال کنید:
sudo netplan apply
sudo netplan status
نمونه Netplan برای DHCP
اگر سرویس شما واقعاً IP را از DHCP دریافت میکند، ساختار ساده میتواند مشابه نمونه زیر باشد. نام Interface را حتماً با مقدار واقعی سرور جایگزین کنید.
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
این نمونه برای VPS دارای IP استاتیک قابل کپی مستقیم نیست. نوع آدرسدهی سرور باید از اطلاعات ارائهدهنده مشخص شود.
نمونه ساختار Static IP
در سرور دارای IP ثابت، ساختار کلی میتواند مشابه زیر باشد. IPهای زیر فقط از محدوده مستندسازی انتخاب شدهاند و نباید روی VPS واقعی استفاده شوند:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: false
addresses:
- 192.0.2.10/24
routes:
- to: default
via: 192.0.2.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
مقادیر 192.0.2.10 و 192.0.2.1 نمونهاند. IP، Prefix و Gateway واقعی را از پنل سرویس یا اطلاعات شبکه سرور خود بردارید.
اگر برای میزبانی سرویس، اپلیکیشن یا پروژه لینوکسی به VPS داخل ایران نیاز دارید، میتوانید پلنهای سرور مجازی ایران ایرانیکاسرور را بررسی کنید. پیش از خرید، منابع مورد نیاز پروژه و محل کاربران را در نظر بگیرید.
مرحله ۶: systemd-networkd یا NetworkManager را بررسی کنید
Netplan خودش سرویس شبکه نهایی نیست؛ تنظیمات را برای Backend یا Renderer مربوط تولید میکند. بنابراین باید مشخص شود سیستم شما از چه Renderer استفاده میکند.
sudo netplan get
systemctl status systemd-networkd --no-pager
systemctl status NetworkManager --no-pager
روی بسیاری از Ubuntu Serverها از systemd-networkd استفاده میشود، اما این موضوع را برای همه نصبها فرض نکنید. Ubuntu Desktop و برخی محیطها ممکن است NetworkManager داشته باشند.
اگر Netplan روی networkd تنظیم شده و سرویس مربوط دچار خطاست، لاگ آن را ببینید:
sudo journalctl -b -u systemd-networkd --no-pager
اگر سیستم واقعاً از NetworkManager استفاده میکند:
nmcli device status
systemctl status NetworkManager --no-pager
مرحله ۷: تشخیص دهید مشکل اینترنت است یا فقط DNS
یکی از اشتباههای رایج این است که باز نشدن دامنه را قطع کامل شبکه بدانیم. ابتدا یک IP عمومی را تست کنید:
ping -c 4 1.1.1.1
سپس نام دامنه را امتحان کنید:
getent hosts ubuntu.com
resolvectl status
اگر ارتباط با IP برقرار است اما دامنه Resolve نمیشود، Interface و Route احتمالاً کار میکنند و باید DNS را بررسی کنید.
مرحله ۸: Cloud-init را فراموش نکنید
روی بسیاری از VPSها فایل Netplan توسط Cloud-init ساخته میشود. اگر ابتدای فایل عبارتی مانند generated by cloud-init مشاهده میکنید، ویرایش مستقیم آن بدون شناخت نحوه Provisioning ممکن است پایدار نباشد.
ابتدا وضعیت را بررسی کنید:
cloud-init status
ls -la /etc/cloud/cloud.cfg.d/
grep -R "network:" /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.d/ 2>/dev/null
Cloud-init قابلیت مدیریت شبکه دارد و در برخی محیطها اطلاعات شبکه را از Datasource ارائهدهنده میگیرد. بنابراین غیرفعالکردن آن نباید اولین راهحل عمومی باشد؛ ممکن است Provisioning صحیح VPS را مختل کند.
مرحله ۹: اگر بعد از Kernel Update شبکه قطع شد
اگر مشکل دقیقاً بعد از نصب Kernel جدید و reboot ایجاد شده و Interface شبکه نیز ناپدید شده است، احتمال مشکل Driver یا Kernel بیشتر میشود.
نسخه Kernel فعال را ببینید:
uname -r
dpkg -l 'linux-image*' | grep '^ii'
سپس پیامهای Kernel مرتبط با شبکه را بررسی کنید:
dmesg | grep -Ei 'net|eth|virtio|link|firmware'
lspci -k | grep -A3 -i ethernet
روی بسیاری از VPSهای KVM ممکن است کارت شبکه VirtIO باشد؛ اما نوع Adapter را باید از خروجی واقعی سیستم مشخص کرد.
آزمایش Kernel قبلی
اگر Console در اختیار دارید و چند Kernel نصب است، میتوانید از GRUB وارد Advanced options for Ubuntu شوید و Kernel قبلی را موقتاً Boot کنید. اگر شبکه با Kernel قبلی برگردد، این نتیجه یک سرنخ مهم برای بررسی Regression یا Driver است.
Kernel جدید را صرفاً بر اساس حدس حذف نکنید. ابتدا تفاوت رفتار بین نسخهها را اثبات کنید و امکان Boot مجدد را حفظ کنید.
مرحله ۱۰: لاگهای Boot را بررسی کنید
journalctl -b -p warning --no-pager
journalctl -b | grep -Ei 'network|netplan|networkd|NetworkManager|cloud-init'
بهجای حدسزدن، دنبال پیامهایی مانند Interface پیدا نشده، Route نامعتبر، YAML نامعتبر، DHCP timeout، Driver failure یا Failed شدن سرویس شبکه باشید.
چطور بفهمیم مشکل دقیقاً کجاست؟
| نشانه | بررسی اصلی | علت محتمل |
|---|---|---|
| Interface وجود ندارد | ip link و dmesg | Kernel، Driver یا سختافزار مجازی |
| Interface هست ولی IP ندارد | Netplan و DHCP | نام Interface یا تنظیم IP |
| IP هست ولی اینترنت نیست | ip route | Gateway یا Default Route |
| IP عمومی Ping میشود ولی دامنه نه | resolvectl status | DNS |
| بعد از هر reboot تنظیمات برمیگردد | Cloud-init | تولید مجدد تنظیمات شبکه |
| فقط Kernel جدید شبکه ندارد | Boot با Kernel قبلی | Driver یا Regression احتمالی |
بعد از تعمیر شبکه چطور نتیجه را تست کنیم؟
پس از اصلاح تنظیمات، فقط باز شدن یک سایت را معیار قرار ندهید. وضعیت Interface، Route، ارتباط IP و DNS را جداگانه بررسی کنید:
ip addr
ip route
sudo netplan status
ping -c 4 1.1.1.1
getent hosts ubuntu.com
اگر همه این مراحل صحیح هستند، یک reboot برنامهریزیشده انجام دهید تا مشخص شود تنظیمات بعد از Boot نیز پایدار میمانند. قبل از reboot مطمئن شوید Console اضطراری در دسترس است.
چطور از تکرار مشکل در Update بعدی جلوگیری کنیم؟
🔹 قبل از Upgrade مهم از /etc/netplan و تنظیمات حیاتی سرور بکاپ بگیرید.
🔹 دسترسی Console یا Rescue را قبل از reboot بررسی کنید.
🔹 خروجی ip addr و ip route را برای مقایسه نگه دارید.
🔹 Kernel قبلی سالم را بلافاصله پس از Update حذف نکنید.
🔹 برای تغییر Netplan روی سرور راهدور، تا حد امکان ابتدا از netplan try استفاده کنید.
🔹 اگر Cloud-init شبکه را مدیریت میکند، قبل از ویرایش فایل تولیدشده نحوه Provisioning سرویس را بررسی کنید.
سؤالات متداول درباره قطع شبکه Ubuntu بعد از Update
آیا netplan apply میتواند SSH را قطع کند؟
بله. اگر IP، Gateway، Route، Interface یا Renderer اشتباه باشد، اعمال تنظیمات میتواند اتصال SSH را قطع کند. به همین دلیل داشتن Console و استفاده از netplan try در تغییرات حساس اهمیت دارد.
چرا بعد از Update نام کارت شبکه فرق کرده است؟
تغییر مشاهدهشده میتواند به تنظیمات نامگذاری Interface، محیط مجازی، تغییر پیکربندی VM یا نحوه شناسایی دستگاه مرتبط باشد. ابتدا خروجی واقعی ip link را با Netplan مقایسه کنید و صرفاً بر اساس نام قبلی نتیجهگیری نکنید.
اگر IP دارم ولی اینترنت ندارم چه چیزی را بررسی کنم؟
ابتدا ip route را بررسی کنید. نبودن Default Route یا Gateway نادرست یکی از علتهای مهم این وضعیت است. بعد ارتباط با Gateway و یک IP عمومی را جداگانه آزمایش کنید.
اگر Ping با IP کار میکند ولی سایتها باز نمیشوند مشکل چیست؟
اگر ارتباط با IP عمومی برقرار است اما نام دامنه Resolve نمیشود، احتمال مشکل DNS بیشتر است. وضعیت Resolver را با resolvectl status بررسی کنید.
آیا باید Cloud-init را غیرفعال کنم؟
نه بهصورت پیشفرض. Cloud-init ممکن است مسئول دریافت و اعمال تنظیمات شبکه VPS از زیرساخت ارائهدهنده باشد. ابتدا مشخص کنید فایل شبکه چگونه ساخته شده و سپس درباره تغییر مدیریت شبکه تصمیم بگیرید.
اگر شبکه فقط با Kernel جدید قطع میشود چه کنم؟
در صورت دسترسی به Console، Boot آزمایشی با Kernel قبلی میتواند مشخص کند آیا مشکل با نسخه Kernel ارتباط دارد یا خیر. در کنار آن خروجی dmesg و وضعیت Driver را بررسی کنید. Kernel جدید را بدون تشخیص علت حذف نکنید.
آیا نصب مجدد Ubuntu برای این مشکل لازم است؟
معمولاً نباید اولین اقدام باشد. ابتدا Interface، IP، Route، Netplan، DNS، Renderer، Cloud-init و Kernel بررسی شوند. نصب مجدد سیستمعامل میتواند دادهها و تنظیمات موجود را از بین ببرد و حتی علت اصلی را مشخص نکند.
منابع رسمی
🔹 مستندات رسمی دستورات Netplan
🔹 Release Notes رسمی Ubuntu 24.04 LTS
🔹 Release Notes رسمی Ubuntu 26.04 LTS
قطع شبکه بعد از Update اوبونتو الزاماً به معنی خرابشدن سیستمعامل نیست. ابتدا مشخص کنید Interface وجود دارد یا نه، سپس IP، Default Route و DNS را جداگانه بررسی کنید. بعد سراغ Netplan، Renderer، Cloud-init و در نهایت Kernel و Driver بروید. این ترتیب هم تشخیص را سریعتر میکند و هم احتمال ایجاد قطعی بیشتر هنگام عیبیابی را کاهش میدهد.
اگر بعد از Update یا reboot شبکه VPS شما قطع شده و نمیخواهید با تغییر اشتباه Netplan، IP یا Route دسترسی سرور را بیشتر مختل کنید، میتوانید درخواست بررسی و کانفیگ ثبت کنید.
تماس با پشتیبانی ایرانیکاسرور: 021-91302467






دیدگاهها (۰)