پرش به محتوا
لینوکس و سرور

Ubuntu یا Debian برای سرور؛ کدام را انتخاب کنیم؟

۱۳ دقیقه مطالعه

سوال همیشگی پشتیبانی ما: Ubuntu LTS یا Debian stable؟ فرق این دو کمتر از چیزیه که فکر می کنی و بیشتر به سیاست به روزرسانی و عادت کاری خودت برمی گرده.

مقایسه دو توزیع لینوکس اوبونتو و دبیان برای انتخاب سیستم عامل سرور

سوال «Ubuntu یا Debian برای سرور» تقریباً هر هفته توی پشتیبانی به گوشمون می رسه. جواب کوتاه اینه: اگه می خوای طبق آموزش های آماده جلو بری، به مستندات و جواب های زیاد توی اینترنت نیاز داری یا پنل و ابزار خاصی نصب می کنی، Ubuntu LTS انتخاب راحت تریه. اگه سرور آروم و بی سروصدایی می خوای که سال ها کم تغییر کنه و حاضری کمی بیشتر خودت تنظیمش کنی، Debian stable بهتره. فرق این دو کمتر از چیزیه که فکر می کنی و بیشتر به سیاست به روزرسانی و عادت کاری خودت برمی گرده.

این دو واقعاً چقدر شبیه هم ان؟

Ubuntu از دل Debian اومده. یعنی هر دو از سیستم بسته بندی .deb و دستورهای apt و dpkg استفاده می کنن، ساختار پوشه ها تقریباً یکیه و بیشتر چیزهایی که روی یکی یاد می گیری روی اون یکی هم جواب می ده. نام بسته ها هم در بیشتر موارد یکسانه. nginx، postgresql، fail2ban و certbot روی هر دو نصب می شن.

تفاوت اصلی توی «سیاست» و «پیش فرض» هاست، نه توی هسته کار:

  • Debian پروژه ای جامعه محوره و تمرکزش روی پایداری و آزادی نرم افزاره.
  • Ubuntu رو شرکت Canonical منتشر می کنه، با تقویم انتشار مشخص و پشتیبانی تجاری اختیاری.
  • Ubuntu پیش فرض های راحت تری می ذاره و چیزهایی مثل snap و cloud-init رو بیشتر جلو می بره. Debian ساده تر و مینیمال تر می مونه.

اولین دردسر رایج هم همین جاست. کسی آموزشی برای Ubuntu می خونه و عیناً روی Debian اجراش می کنه. دستور add-apt-repository و PPA ها مخصوص Ubuntu ان. اگه یه PPA رو روی Debian اضافه کنی، بسته هایی نصب می شن که برای کتابخونه های سیستم دیگه ساخته شدن و سرور بعد از چند ماه سر تغییر بعدی خراب می شه. یه چیز دیگه هم اینه که روی ایمیج مینیمال Debian ممکنه sudo یا ufw اصلاً نصب نباشه و اول باید خودت نصبشون کنی.

پایداری: کدوم کمتر سرت رو به درد میاره؟

Debian stable به سخت گیری شهرت داره. بعد از انتشار، نسخه بسته ها تقریباً منجمد می شه و فقط اصلاحیه های امنیتی و باگ های جدی وارد می شن. نتیجه اینه که یه سرور Debian بعد از ماه ها هم تقریباً همون رفتاری رو داره که روز اول داشت. این برای سرور شرکتی یا فروشگاهی که نمی خوای بعد از هر apt upgrade نگران باشی، خیلی ارزشمنده.

Ubuntu LTS هم پایداره، ولی کمی بیشتر تکون می خوره. اصلاحیه های بیشتری می گیره و بعضی جاها کرنل یا بسته ها به روزتر می شن. معمولاً مشکل ساز نیست، اما اگه سرور حساسی داری باید اجازه به روزرسانی خودکار رو با دقت تنظیم کنی.

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

یه هشدار مهم: روی سرور فقط نسخه LTS اوبونتو رو بذار. اوبونتو هر شش ماه یه نسخه غیر LTS هم منتشر می کنه که پشتیبانی کوتاهی داره (حدود نه ماه). اگه فراموشش کنی، یه روز می بینی سرورت دیگه اصلاحیه امنیتی نمی گیره. این اتفاق زیاد می افته.

دوره پشتیبانی: تقویم رو جدی بگیر

اینجا بیشترین تفاوت عملی رو می بینی.

Ubuntu LTS: هر دو سال یه نسخه LTS می آد (در ماه آوریل سال های زوج). پشتیبانی استاندارد حدود پنج ساله است و با اشتراک Ubuntu Pro می شه بیشتر تمدیدش کرد. شرایط و مدت دقیق و این که برای چند ماشین رایگانه یا نه، رو پیش از تصمیم از سایت رسمی بخون، چون عوض می شه.

Debian stable: نسخه های اصلی تقریباً هر دو سال منتشر می شن. هر نسخه حدود سه سال پشتیبانی امنیتی عادی داره و بعد از اون پروژه LTS (که توسط داوطلب ها و شرکت ها اداره می شه) چند سال دیگه امنیت رو ادامه می ده. جمعاً حدود پنج سال، ولی بازه های دقیق رو باید از صفحه رسمی Debian ببینی.

یعنی اگه ساده نگاه کنی، هر دو حدود پنج سال عمر مفید دارن. تفاوت اینه که Ubuntu مسیر تجاری و رسمی برای عمر طولانی تر داره، و Debian عمر سه ساله «کامل» و بقیه رو با LTS جامعه محور.

خط زمانی پشتیبانی دو توزیع با بخش پشتیبانی کامل و تمدیدی و پایان عمر

وقتی عمر نسخه تموم می شه چی می شه؟

اینجا یه ماجرای آشنا داریم. سرور سه چهار سال پیش بالا اومده، همه چیز خوب بوده و کسی دست بهش نزده. بعد یه روز می خوای یه بسته نصب کنی و apt update خطای 404 می ده. دلیلش اینه که مخزن های نسخه قدیمی به آرشیو منتقل شدن (برای Ubuntu اسمش old-releases و برای Debian archive.debian.org). تا این جا هم کار می کنه، ولی دیگه اصلاحیه امنیتی نمی گیری و سرورت آماده نفوذه.

پس همین الان تاریخ پایان پشتیبانی نسخه ای که روی سرورته رو پیدا کن:

cat /etc/os-release

بعد توی سایت رسمی همون توزیع ببین نسخه ات تا کی پشتیبانی می شه و یه یادآوری برای شش ماه قبل از اون بذار.

ارتقای نسخه رو چطور امن انجام بدیم؟

چند قانون که تجربه یادمون داده:

  1. اول از کل سرور (یا حداقل پایگاه داده و فایل های سایت) بک آپ بگیر، ترجیحاً اسنپ شات از پنل سرویس دهنده.
  2. نسخه ها رو یکی یکی بالا ببر. از دو نسخه قبل مستقیم به جدیدترین نپر.
  3. ارتقا رو خارج از ساعت های اوج ترافیک سایتت انجام بده، مثلاً نیمه شب یا روز تعطیل. برای فروشگاه آنلاین اگه درگاه پرداخت وسط کار قطع بشه، سفارش از دست می ره.
  4. اگه می شه، اول روی یه کپی تستی امتحانش کن.
  5. در Ubuntu معمولاً با do-release-upgrade پیش می ری و در Debian با تغییر فایل های منبع و apt full-upgrade. در هر دو حالت راهنمای رسمی همون نسخه رو قدم به قدم بخون.

اگه خودت وقتش رو نداری یا نگرانی، مدیریت و امن سازی سرور دقیقاً برای همین جور کارهاست.

تازگی بسته ها: خوبه یا دردسر؟

اینجا یه سوء تفاهم زیاد هست. خیلی ها فکر می کنن «جدیدتر» همیشه بهتره. روی سرور اغلب برعکسه. نسخه جدید PHP یا Python یا MariaDB یعنی رفتار جدید، اخطار جدید و گاهی افزونه ای که دیگه کار نمی کنه.

Debian stable در لحظه انتشار معمولاً نسخه های محافظه کارانه تری از نرم افزارها داره و بعدش عملاً تکون نمی خوره. Ubuntu LTS هم همین روش رو داره، ولی چون ماه ها بعد از Debian یا قبل از اون منتشر می شه، بعضی بسته ها در لحظه انتشار کمی تازه ترن. در عمل تفاوت کم و وابسته به زمان انتشار هر نسخه است. پس نمی شه گفت «Ubuntu همیشه تازه تره».

اگه نسخه جدیدتری لازم داشتم؟

سه راه داری:

  • مخزن رسمی خود نرم افزار: بیشتر پروژه ها مخزن رسمی دارن. مثلاً PostgreSQL مخزن رسمی خودش رو برای هر دو توزیع داره. اگه بین دو پایگاه داده مردد هستی، PostgreSQL یا MySQL برای سایت و اپلیکیشن رو هم ببین.
  • مخزن های شناخته شده شخص ثالث (مثل مخزن هایی که برای PHP استفاده می شن): روی Ubuntu به شکل PPA و روی Debian به شکل مخزن جدا. فقط منبع معتبر استفاده کن و بعدش دست به ترکیب نزن.
  • کانتینر: اگه اپلیکیشنت توی Docker اجرا بشه، نسخه نرم افزار رو توی ایمیج مشخص می کنی و سیستم میزبان می تونه ساده و پایدار بمونه. برای همین انتخاب Ubuntu یا Debian روی میزبان وقتی همه چیز توی کانتینره، کم اهمیت تر می شه.

اشتباه رایج: وسط یه سرور Debian stable، مخزن testing رو اضافه می کنن تا یه بسته جدیدتر بگیرن. بعد از چند به روزرسانی، نصف سیستم از testing می آد و نصف از stable، و سرور به یه ترکیب غیرقابل پیش بینی تبدیل می شه. این کار رو نکن.

یه نکته مهم درباره Docker روی سرور داخل ایران

روی سرورهای داخل ایران، گرفتن ایمیج از Docker Hub و بعضی بسته ها به خاطر محدودیت IP ایران ممکنه جواب نده. راهی که ما استفاده می کنیم اینه که ایمیج رو روی سیستم توسعه می سازیم و با SSH به سرور منتقل می کنیم:

docker build -t myapp:1.0 .
docker save myapp:1.0 | gzip | ssh user@server 'gunzip | docker load'

یه چیز رو چک کن: معماری سیستم توسعه و سرور یکی باشه. اگه روی مک با تراشه ARM می سازی و سرور x86 هست، موقع ساخت --platform linux/amd64 رو اضافه کن، وگرنه ایمیج روی سرور بالا نمی آد. اگه این کار رو تکراری می کنی، بهتره استقرار خودکار سایت با CI/CD رو هم بخونی تا دست کاری دستی کم بشه.

راحتی کار روزمره

اینجا جاییه که معمولاً تصمیم واقعی گرفته می شه.

Ubuntu راحت تره چون:

  • تقریباً هر آموزش فارسی و انگلیسی سرور لینوکس اول برای Ubuntu نوشته شده. وقتی خطا بگیری، جواب پیدا کردن ساده تره.
  • ابزارهایی مثل ufw و cloud-init از قبل آماده ان و اغلب ایمیج های سرویس دهنده ها هم Ubuntu دارن.
  • بعضی نرم افزارها و پنل ها فهرست سیستم عامل پشتیبانی شده دارن و Ubuntu LTS تقریباً همیشه توش هست.

Debian ساده تره چون:

  • نصب پایه خیلی مینیمال و تمیزه. چیزی که لازم نداری، نصب نیست.
  • snap تحمیل نمی شه. همه چیز با apt پیش می ره و کمتر غافلگیر می شی.
  • رفتار سیستم در طول سال ها کمتر عوض می شه.

بخشی از ناراحتی های Ubuntu هم باید بگم: بعضی بسته ها (مثلاً certbot در مستندات رسمی) با snap توصیه می شن، که برای بعضی ها زیادی «جادویی» و برای دیباگ سخته. اگه از snap خوشت نمیاد، می شه روش های دیگه رو انتخاب کرد، ولی باید بدونی که آموزش ها اغلب snap رو فرض می گیرن.

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

پنل و نرم افزار خاص داری؟

این رو قبل از نصب چک کن، نه بعد. پنل هایی مثل cPanel فقط روی چند سیستم عامل مشخص نصب می شن و Debian توی فهرستشون نیست. پنل های دیگه هم همین طوره. اول صفحه سیستم عامل های پشتیبانی شده خود پنل رو بخون، بعد توزیع رو انتخاب کن. اگه فروشگاه ووکامرس داری و فکر می کنی چه سروری لازمه، مشخصاتی که قبل از خرید هاست ووکامرس باید بررسی کنی رو هم نگاه کن.

امنیت پایه: هر دو یه چیز می خوان

مهم نیست کدوم رو انتخاب کنی، این کارها لازمه:

  • ورود با کلید SSH و غیرفعال کردن ورود root با رمز.
  • فعال کردن فایروال و باز گذاشتن فقط پورت های لازم.
  • به روزرسانی خودکار اصلاحیه های امنیتی:
sudo apt update
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

مقایسه سریع کنار هم

معیارUbuntu LTSDebian stable
پایداریبالا، با به روزرسانی های بیشتربسیار بالا، تغییرات کم
دوره پشتیبانیحدود پنج سال و قابل تمدید با اشتراکحدود سه سال کامل و بعدش LTS جامعه محور
تازگی بسته هاکمی متفاوت، بسته به زمان انتشارمحافظه کارانه
آموزش و مستنداتبسیار زیادزیاد، ولی کمتر از Ubuntu
نصب پایهکمی بیشتر چیز نصب شدهمینیمال
سازگاری با پنل هامعمولاً در فهرست پشتیبانی هستباید جداگانه چک شه

بازه های پشتیبانی و نسخه ها در طول زمان عوض می شن، پس پیش از تصمیم نهایی صفحه رسمی هر پروژه رو ببین.

Ubuntu یا Debian برای سرور؛ توصیه من برای هر نوع کاربر

اینجا بر اساس تیپ کاربر می گم چی انتخاب کنی و چرا.

صاحب کسب و کار با سایت وردپرس یا ووکامرس، بدون تجربه لینوکس: Ubuntu LTS. دلیلش آموزش های بیشتر، ابزارهای آماده و پیدا کردن راحت تر کسی که بتونه کمکت کنه. اگه خودت مدیریت نمی کنی، همین انتخاب برای کسی که قراره سرور رو مدیریت کنه هم مناسب تره.

برنامه نویسی که از ویندوز اومده و می خواد سرور رو خودش بسازه: باز هم Ubuntu LTS. هفته اول پر از سوال می شه و جواب ها بیشتر برای Ubuntu هستن. اگه تازه مهاجرت کردی، تجربه هفته اول یک برنامه نویس بعد از رفتن از ویندوز به لینوکس رو بخون.

تیمی که همه چیز رو توی Docker اجرا می کنه: هر دو خوبن. میزبان رو تا می تونی ساده نگه دار. Debian چون سبک و ساکته گزینه خوبیه، Ubuntu چون تیم بیشتر باهاش آشناست. مهم اینه که روی یکی بمونی و روی همه سرورها یکسان باشن. اکثر ایمیج های رسمی هم بر پایه Debian ساخته شدن، پس این دو داخل کانتینر به هم خیلی نزدیکن.

مدیر سرور باتجربه با سرور طولانی عمر: Debian stable. اگه راحت با خط فرمان و مستندات کار می کنی و می خوای سرور سال ها بدون تغییر دلخواه بمونه، همین رو انتخاب کن.

کسی که پنل خاص یا نرم افزار تجاری نصب می کنه: هر چیزی که سازنده نرم افزار پشتیبانی می کنه. معمولاً Ubuntu LTS. حتماً قبل از خرید یا نصب چک کن.

کسی که فقط می خواد سایتش کار کنه و درگیر سرور نشه: توزیع براش مهم نیست؛ مهم اینه که کسی مراقب سرور باشه. اگه سرور مجازی می گیری، میزبانی وب و سرور مجازی ایران رو ببین و با تیم پشتیبانی مشورت کن.

مسیر تصمیم گیری بین دو توزیع بر اساس نیاز

اشتباه هایی که زیاد می بینیم

  • استفاده از نسخه غیر LTS روی سرور واقعی. پشتیبانی کوتاهه و ارتقای اجباری هر چند ماه یه بار دردسره.
  • ترکیب مخزن ها و PPA ها بدون فکر. هر مخزن اضافه یه ریسک آینده است.
  • نادیده گرفتن تاریخ پایان پشتیبانی. سرور «کار می کنه» ولی دیگه امن نیست.
  • ارتقا بدون بک آپ یا درست در ساعت اوج ترافیک.
  • عوض کردن توزیع وسط پروژه فقط چون یه نفر توی یه شبکه اجتماعی گفته بهتره. اگه سیستمت پایداره و پشتیبانی داره، دلیل واقعی برای تغییر نیست.
  • فرض کردن اینکه آموزش Ubuntu روی Debian همون جوری جواب می ده. قبل از اجرای هر دستور بررسی کن مخصوص Ubuntu نباشه.

اگه سروری داری که چندسال پیش نصب شده و مطمئن نیستی وضعیتش چطوره، مانیتورینگ و پایداری کمک می کنه زودتر از مشتری هات متوجه مشکل بشی.

سوالات متداول

می شه سرور Debian رو بدون نصب مجدد به Ubuntu تبدیل کرد؟

راه رسمی و امنی برای این کار وجود نداره. تغییر مستقیم توزیع روی سرور در حال کار ریسک خرابی بالایی داره. بهتره سرور جدید بسازی، تنظیمات و داده ها رو منتقل کنی، تست کنی و بعد ترافیک رو سوییچ کنی.

Debian واقعاً از Ubuntu سبک تره؟

در حالت پایه کمی سبک تره چون چیزهای کمتری نصب داره. ولی روی سرور واقعی مصرف اصلی رو وب سرور، پایگاه داده و اپلیکیشن می گیرن نه سیستم عامل. تفاوتش معمولاً به اندازه ای نیست که برای انتخاب تعیین کننده باشه.

برای وردپرس و ووکامرس کدوم بهتره؟

هر دو درست کار می کنن. اگه تجربه کمی داری، Ubuntu LTS معمولاً راحت تره چون آموزش و راهنمای بیشتری داره. اگه پنل خاصی استفاده می کنی، اول فهرست سیستم عامل های پشتیبانی شده اون پنل رو چک کن.

هر چند وقت یه بار سرور رو به روزرسانی کنم؟

اصلاحیه های امنیتی رو بهتره خودکار فعال کنی تا دیر نشه. ارتقای نسخه اصلی سیستم عامل رو هم قبل از پایان پشتیبانی برنامه ریزی کن، نه آخرین هفته. بک آپ پیش از هر ارتقا الزامیه.

قبل از نصب، این سه چیز رو چک کن

اگه هنوز دودلی، این سه سوال کمکت می کنه:

  1. نرم افزار یا پنل من کدوم سیستم عامل رو پشتیبانی می کنه؟ اگه فقط یکی رو، تصمیم گرفته شده.
  2. کی می خواد سرور رو نگه داری کنه؟ اگه خودت و تازه کاری، Ubuntu LTS. اگه باتجربه ای و سرور آروم می خوای، Debian.
  3. کی باید ارتقا بدم؟ تاریخ پایان پشتیبانی رو همین امروز توی تقویم بنویس.

بعد از انتخاب، روی یکی بمون، SSH با کلید و فایروال رو درست تنظیم کن، به روزرسانی خودکار امنیتی رو فعال کن و بک آپ رو تست کن. اگه توی هر مرحله گیر کردی، پشتیبانی فنی ما کنارته.

  • اوبونتو
  • دبیان
  • سرور مجازی
  • لینوکس
  • مدیریت سرور

مقاله‌های مرتبط

ادامه همین موضوع در وبلاگ.

همه مقاله‌ها
کمک فنی

برای اجرای این کار کمک می‌خواهید؟

تیم فنی Wbweb از طراحی سایت تا هاست و سرور کنار شماست؛ درخواستتان را ثبت کنید یا تیکت بزنید.