انتخاب سردبیرتکنولوژیسرورکامپیوتر

راهنمای سرور لینوکس: نصب و پیکربندی

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

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

اینستاگرام اپست

لینوکس طیف گسترده‌ای از نقش‌های سرور را پشتیبانی می‌کند، از جمله:

  • سرورهای وب (Web servers)
  • سرورهای پایگاه داده (Database servers)
  • سرورهای DNS
  • سرورهای فایل (File servers)
  • سرورهای مدیریت کانتینر (Container orchestration servers)

اکثر قریب به اتفاق سرورهای عمومی در سراسر جهان، به ویژه در میزبانی وب، رایانش ابری و محیط‌های سازمانی، بر روی لینوکس اجرا می‌شوند. سرورهای لینوکس محبوب هستند زیرا:

  • رایگان و متن‌باز: اکثر توزیع‌های لینوکس برای دانلود، نصب و به‌روزرسانی رایگان هستند. لینوکس همچنین متن‌باز است، به این معنی که کد منبع آن به صورت عمومی در دسترس است و می‌توان آن را بدون هزینه یا محدودیت مجوز، تغییر داده و توزیع مجدد کرد.
  • سبک: لینوکس می‌تواند با حداقل میزان مصرف CPU، حافظه و دیسک کار کند. کاربرانی که منابع سخت‌افزاری محدودی دارند، می‌توانند سیستم‌های کارآمدی را بدون فرآیندهای پس‌زمینه غیرضروری راه‌اندازی کنند.
  • سازگار با طیف وسیعی از سخت‌افزار: لینوکس از پلتفرم‌های سخت‌افزاری مختلف، از سیستم‌های قدیمی گرفته تا سرورهای مدرن و ماشین‌های مجازی پشتیبانی می‌کند. به لطف این تطبیق‌پذیری، اغلب اولین انتخاب برای استقرار در مراکز داده و محیط‌های ابری ترکیبی است.
  • پایدار و قابل اعتماد: لینوکس یک سیستم قابل اعتماد است که می‌تواند برای مدت طولانی بدون نیاز به راه‌اندازی مجدد کار کند. این ویژگی آن را برای سیستم‌هایی که نیاز به دسترسی بالا دارند، مانند سرورهای وب، پایگاه‌های داده و سرویس‌های زیرساختی، ایده‌آل می‌کند.
  • قابل سفارشی‌سازی: شما می‌توانید یک سیستم لینوکس را برای نیازهای خاص سرور خود تغییر دهید و تنها اجزا و سرویس‌های ضروری را نصب کنید. این کار منجر به عملکرد بهتر، سربار کمتر و سطح حمله کوچکتر می‌شود.
  • امن: لینوکس از اصل حداقل دسترسی پیروی می‌کند؛ دارای مدل‌های داخلی مجوز فایل است و از سیستم‌های کنترل دسترسی اجباری مانند SELinux و AppArmor پشتیبانی می‌کند. همچنین از مزایای یک جامعه توسعه‌دهنده فعال بهره می‌برد که به‌روزرسانی‌ها و پچ‌های امنیتی مکرر را ارائه می‌دهد.

لینوکس هم یک کرنل (هسته) است و هم یک اکوسیستم نرم‌افزاری گسترده. کرنل لینوکس یک جزء اصلی است که مستقیماً با سخت‌افزار زیرین در ارتباط بوده و فرآیندهای سیستمی را مدیریت می‌کند. یک سیستم عامل مبتنی بر لینوکس، که توزیع (distribution یا distro) نامیده می‌شود، کرنل را با اجزای اضافی مانند کتابخانه‌های نرم‌افزاری، ابزارهای خط فرمان و مدیران بسته ترکیب می‌کند تا یک محیط کامل را تشکیل دهد.

توزیع‌های لینوکس از محیط‌های خط فرمان (CLI) و رابط‌های کاربری گرافیکی (GUI) پشتیبانی می‌کنند که به کاربران امکان تعامل با سیستم را می‌دهد. این توزیع‌ها همه چیز را از وب‌سرورها و مراکز داده گرفته تا تلفن‌ها، دستگاه‌های اینترنت اشیا (IoT) و دسکتاپ‌ها را قدرت می‌بخشند.

سیستم لینوکس بسیار چندکاره است، که دلیل اصلی پذیرش گسترده آن است. بخش زیر یک نمای کلی از اجزای اصلی تشکیل‌دهنده یک سرور لینوکس را ارائه می‌دهد.

راهنمای سرور لینوکس: نصب و پیکربندی

در محیط‌های سرور، علاوه بر سخت‌افزار و کرنل، یک توزیع لینوکس معمولاً شامل مجموعه‌ای حداقلی از اجزای فضای کاربری (user-space components) مانند شل‌ها (shells)، دیمون‌ها (daemons)، کتابخانه‌ها (libraries) و ابزارهای سیستمی (system utilities) است.

هر سرویس یا برنامه در حال اجرا به عنوان یک فرایند ایزوله با حافظه و مجوزهای خاص خود اجرا می‌شود.

بوت‌لودر (Bootloader)

بوت‌لودر اولین برنامه‌ای است که پس از فریم‌ور سیستم (BIOS یا UEFI) هنگام راه‌اندازی اجرا می‌شود. نقش اصلی آن بارگذاری کرنل لینوکس در حافظه و آغاز فرایند بوت است.

GRand Unified Bootloader (GRUB) رایج‌ترین بوت‌لودر پیش‌فرض در توزیع‌های لینوکس است. بر اساس پیکربندی، GRUB یک منوی بوت را نمایش می‌دهد که می‌تواند چندین کرنل یا سیستم عامل را بارگذاری کند.

کرنل لینوکس (Linux Kernel)

پس از اینکه بوت‌لودر، کرنل را در حافظه بارگذاری می‌کند، کرنل لینوکس کنترل سیستم را در دست می‌گیرد. کرنل که در حالت ممتاز (ring 0) عمل می‌کند، خدمات سطح پایینی را به بقیه سیستم ارائه می‌دهد. این خدمات شامل موارد زیر هستند:

  • زمان‌بندی فرایندها و تخصیص زمان CPU برای اطمینان از اینکه سیستم می‌تواند چندین وظیفه را به طور همزمان مدیریت کند.
  • مدیریت حافظه فیزیکی و مجازی، شامل تخصیص صفحات (page allocation) و سوآپ‌ها (swaps).
  • فراهم کردن یک رابط یکپارچه برای ارتباط با سخت‌افزار از طریق درایورهای دستگاه. دستگاه‌ها به عنوان فایل‌های خاصی در دایرکتوری /dev نمایش داده می‌شوند.
  • استفاده از فراخوان‌های سیستمی (system calls) به عنوان نقاط ورودی امن برای برنامه‌ها برای درخواست خدماتی مانند دسترسی به فایل یا عملیات ورودی/خروجی (I/O).
  • اعمال کنترل دسترسی از طریق مجوزهای کاربر و گروه، و پشتیبانی از ویژگی‌های ایزوله‌سازی مانند فضای نام‌ها (namespaces)، گروه‌های کنترل (cgroups) و ماژول‌های امنیتی.

سیستم Init

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

سیستم init اولین فرآیند فضای کاربری است که توسط هسته (kernel) آغاز می‌شود. نقش آن، مقداردهی اولیه فضای کاربری در طول بوت و مدیریت سرویس‌ها و دیمون‌ها (daemons) در زمان اجرا است.

وظایف سیستم init شامل موارد زیر است:

  • شروع، توقف و راه‌اندازی مجدد سرویس‌ها.
  • مدیریت دیمون‌های سیستمی.
  • هماهنگ کردن ترتیب بوت.
  • مانت کردن (Mounting) سیستم‌های فایل.

سیستم init پیش‌فرض در اکثر توزیع‌های مدرن، systemd است. این سیستم از راه‌اندازی موازی سرویس‌ها، زمان بوت سریع‌تر و قابلیت‌های مدیریت سیستمی بهتر، مانند ثبت جزئیات از طریق journalctl، پشتیبانی می‌کند.

سیستم‌های init جایگزین، مانند SysVinit، OpenRC یا runit، همچنان در محیط‌های لینوکس مینیمال یا سفارشی استفاده می‌شوند.

در ادامه ترجمه متن شما به فارسی آورده شده است:

دیمون‌ها (Daemons)

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

بنابراین، لینوکس حاوی فرآیندهای دیمون متعدد است که هر یک دارای عملکرد خاصی هستند، به عنوان مثال:

  • sshd. یک دیمون سرور SSH که به درخواست‌های ورودی اتصال SSH گوش می‌دهد، اتصال امن به یک سرور راه دور را امکان‌پذیر می‌سازد و امکان انتقال فایل را فراهم می‌کند.
  • httpd. دیمون سرور وب که به درخواست‌های HTTP گوش می‌دهد و صفحات وب را ارائه می‌کند.
  • cron. وظایف یا اسکریپت‌های برنامه‌ریزی شده را از جدول cron (crontab) در زمان‌های درخواستی اجرا می‌کند.
  • rsyslogd. پیام‌های گزارش را از سرویس‌ها و برنامه‌های سیستم جمع‌آوری و ذخیره می‌کند.

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

شل لینوکس (Linux Shell)

لینوکس از یک رابط خط فرمان به نام شل (shell) استفاده می‌کند که به کاربران امکان می‌دهد دستورات را تایپ کرده و با سیستم عامل تعامل داشته باشند. انواع محبوب شل عبارتند از Bash، Zsh، Fish و غیره.

راهنمای سرور لینوکس: نصب و پیکربندی

فرمان‌های مبتنی بر متن به کاربران و مدیران اجازه می‌دهند تا فایل‌ها را مدیریت کنند، تنظیمات سیستم را پیکربندی نمایند، وظایف مدیریتی را انجام دهند و ابزارها و برنامه‌های کاربردی مختلف لینوکس را راه‌اندازی کنند.

کتابخانه‌های لینوکس

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

دو نوع اصلی کتابخانه در لینوکس وجود دارد:

  • کتابخانه‌های اشتراکی (فایل‌های .so): این کتابخانه‌ها به صورت پویا در زمان اجرا بارگذاری می‌شوند. آن‌ها مصرف حافظه و فضای دیسک را کاهش می‌دهند زیرا چندین برنامه می‌توانند یک کتابخانه مشترک را در حافظه به اشتراک بگذارند.
  • کتابخانه‌های ایستا (فایل‌های .a): این کتابخانه‌ها مستقیماً در زمان ساخت به باینری یک برنامه پیوند داده می‌شوند؛ این کتابخانه‌ها حجم باینری را افزایش می‌دهند اما نیاز به حضور کتابخانه در سیستم در زمان اجرا را از بین می‌برند.

کتابخانه‌های اشتراکی به دلیل کارایی و انعطاف‌پذیری رایج‌تر هستند. مثال‌های رایج شامل:

کتابخانهنامهدف
glibcGNU C Libraryمجموعه اصلی توابع زبان C را فراهم می‌کند که تقریباً توسط هر برنامه لینوکس و ابزار سیستمی استفاده می‌شود.
libmMath Libraryتوابع گسترده‌ای از قبیل لگاریتم، توابع مثلثاتی و توان را ارائه می‌دهد.
libpthreadPOSIX Threadsپشتیبانی از چندریسمانی (multithreading) را در برنامه‌ها فعال می‌کند و به آن‌ها امکان می‌دهد چندین وظیفه را به طور همزمان انجام دهند.
libdlDynamic Linking Loaderبه برنامه‌ها اجازه می‌دهد تا کتابخانه‌های اضافی را به صورت پویا در زمان اجرا بارگذاری کنند.
libX11X Window Systemکد پایه را برای برنامه‌های رابط کاربری گرافیکی (GUI) فراهم می‌کند تا با سرور نمایشگر ارتباط برقرار کنند.

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

ldd /usr/bin/your_program

این متن به وابستگی‌های کتابخانه‌ای پویا که در زمان اجرا توسط پیونددهنده پویای سیستم (dynamic linker) حل می‌شوند، اشاره دارد.

فرآیندها و ابزارهای لینوکس

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

فرآیندها حالت‌های مختلفی دارند:

  • در حال اجرا (Running): حالتی که یک فرآیند در حال حاضر توسط CPU اجرا می‌شود.
  • خواب (Sleeping): حالتی که یک فرآیند منتظر منابع یا یک رویداد خاص است.
  • زامبی (Zombie): یک فرآیند از کار افتاده که اجرای خود را به پایان رسانده اما همچنان در جدول فرآیندها باقی مانده است. این اتفاق زمانی می‌افتد که وضعیت خروج فرآیند هنوز توسط فرآیند والد آن خوانده نشده باشد.
  • متوقف شده (Stopped): حالتی که یک فرآیند در حال اجرا نیست و بنابراین آماده از سرگیری یا پایان است.
  • یتیم (Orphaned): فرآیندی که فرآیند والد آن به پایان رسیده است.

لینوکس ابزارها و برنامه‌های کاربردی مختلفی را برای مدیریت فرآیندها ارائه می‌دهد:

  • ps: یک نمای کلی از فرآیندهای فعلی را نمایش می‌دهد.
  • top/htop: یک نمای زنده و تعاملی از مصرف CPU و حافظه را ارائه می‌دهد.
  • kill, pkill, killall: دستوراتی برای پایان دادن (کشتن) یک فرآیند.

محیط گرافیکی (اختیاری)

بیشتر سرورهای لینوکس بدون رابط گرافیکی نصب می‌شوند تا منابع سیستم را حفظ کرده و سطح حمله را کاهش دهند. با این حال، گاهی اوقات یک رابط کاربری گرافیکی (GUI) در موارد زیر نصب می‌شود:

  • تنظیمات دسکتاپ از راه دور با قابلیت VNC.
  • محیط‌های توسعه.
  • ماشین‌های محلی یا مجازی با کاربری آسان برای مدیران.

سرور گرافیکی یک جزء سیستمی سطح پایین است که مسئول ترسیم پنجره‌ها و مدیریت ورودی از دستگاه‌هایی مانند صفحه‌کلید و ماوس است. دو پروتکل اصلی وجود دارد:

  • X11. این جزء سیستم پنجره X (X11 یا X) را پیاده‌سازی می‌کند و مدیریت پنجره، ورودی صفحه‌کلید/ماوس و پشتیبانی از نمایشگرهای متعدد را امکان‌پذیر می‌سازد.
  • Wayland. یک پروتکل جدیدتر و ساده‌تر که قصد دارد جایگزین X11 شود. این پروتکل عملکرد بهبود یافته، معماری مدرن و امنیت بهتری را ارائه می‌دهد.
راهنمای سرور لینوکس: نصب و پیکربندی

محیط دسکتاپ مجموعه‌ای از نرم‌افزارها است که رابط بصری و ابزارهای کاربری را بر روی سرویس‌دهنده گرافیکی (graphical server) فراهم می‌کند. این مجموعه شامل، برای مثال، ویرایشگرهای متن، ابزارهای پیکربندی، مرورگرهای وب، و سایر برنامه‌های کاربردی می‌شود.

مطالب خواندنی :  دبیان 12.10 Bookworm با 66 رفع اشکال و 43 به‌روزرسانی امنیتی منتشر شد.

محیط‌های دسکتاپ محبوب عبارتند از:

  • GNOME: محیط پیش‌فرض در بسیاری از توزیع‌های لینوکس؛ تمیز و مینیمال.
  • KDE Plasma: رابط کاربری بسیار قابل تنظیم و غنی از امکانات.
  • XFCE/LXDE: محیط‌های سبک‌وزن ایده‌آل برای سیستم‌های با منابع کم یا دسترسی از راه دور.

محیط‌های دسکتاپ مستقل از توزیع (distribution-independent) هستند و اغلب می‌توانند در کنار سایر محیط‌ها نصب شوند، که این موضوع بستگی به ترجیح یا مورد استفاده شما دارد.

انواع سیستم فایل

سیستم فایل لینوکس نحوه ذخیره، سازماندهی و دسترسی به داده‌ها را در دستگاه‌های ذخیره‌سازی مانند درایو حالت جامد (SSD) یا درایو دیسک سخت (HDD) تعریف می‌کند. انتخاب سیستم فایل بر عملکرد، قابلیت اطمینان و مقیاس‌پذیری تأثیر می‌گذارد، بسته به حجم کاری و محیط استقرار شما.

سیستم فایل‌های مورد استفاده در لینوکس عبارتند از:

  • ext2. در بسیاری از سیستم‌های اولیه لینوکس موجود بود. این سیستم فاقد قابلیت ژورنالینگ است که آن را برای موارد استفاده خاص سریع‌تر می‌کند اما پس از خرابی یا از دست دادن برق، بیشتر مستعد خرابی است.
  • ext3. نسخه بهبود یافته ext2 است که ژورنالینگ را برای ردیابی تغییرات سیستم فایل اضافه می‌کند.
  • ext4. سیستم فایل پیش‌فرض در اکثر توزیع‌های مدرن لینوکس. از فایل‌ها و حجم‌های بزرگ پشتیبانی می‌کند، عملکرد بهبود یافته‌ای را ارائه می‌دهد و شامل سازگاری رو به عقب با ext3 و ext2 است.
  • Btrfs (B-tree file system). ویژگی‌های پیشرفته‌ای مانند پشتیبانی از RAID، اسنپ‌شات، بررسی مجموع (checksumming) و خودترمیمی را ارائه می‌دهد.
  • XFS. یک سیستم فایل با کارایی بالا که برای ذخیره‌سازی در مقیاس بزرگ و ورودی/خروجی موازی بهینه‌سازی شده است. معمولاً در محیط‌های سازمانی و دارای پایگاه داده سنگین استفاده می‌شود.

استاندارد سلسله مراتب سیستم فایل (FHS)

لینوکس از یک ساختار دایرکتوری استاندارد شده در زیر دایرکتوری ریشه (/) پیروی می‌کند. این امر منجر به یک ساختار دایرکتوری ثابت و قابل پیش‌بینی در سراسر توزیع‌ها می‌شود. درک ساختار دایرکتوری لینوکس برای موارد زیر ضروری است:

  • پیمایش سیستم.
  • عیب‌یابی پیکربندی و مسائل زمان اجرا.
  • نوشتن اسکریپت‌های اتوماسیون.
  • مدیریت بسته‌ها و سرویس‌های نرم‌افزاری.

اکثر سرویس‌های سیستمی، گزارش‌ها، فایل‌های پیکربندی و باینری‌ها از این طرح‌بندی پیروی می‌کنند:

DirectoryPurpose
/etcفایل‌های پیکربندی سیستم
/varفایل‌های لاگ، صندوق‌های پستی (mail spools)، و داده‌های متغیر زمان اجرا.
/usrبرنامه‌های سطح کاربر، کتابخانه‌های مشترک، و مستندات.
/homeدایرکتوری‌های شخصی برای کاربران غیر روت.
/bin, /sbinابزارهای اجرایی ضروری برای کاربران عادی و کاربران روت.
/lib, /lib64کتابخانه‌های اشتراکی مورد نیاز باینری‌های ضروری.

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

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

  • هدف: برخی توزیع‌ها برای سیستم عامل سرور مناسب‌تر هستند، در حالی که برخی دیگر بر تجربه دسکتاپ تمرکز دارند. بر اساس نقش سرور خود تحقیق و توزیع مناسب را انتخاب کنید، به عنوان مثال، اگر عمدتاً با کانتینرها کار می‌کنید، آلپاین را نصب کنید.
  • تجربه کاربری: تجربه قبلی شما با لینوکس اهمیت دارد. برخی توزیع‌ها مانند اوبونتو، فدورا یا مینت برای کاربران جدید مناسب‌تر هستند. کاربران پیشرفته‌ای که گزینه‌های سفارشی‌سازی کامل را ترجیح می‌دهند، به سراغ گنتو یا آرچ لینوکس می‌روند.
  • نیازمندی‌های سخت‌افزاری: اطمینان حاصل کنید که توزیع از تنظیمات سخت‌افزاری شما پشتیبانی می‌کند. برخی نیاز به پیکربندی دستی یا درایورهای شخص ثالث دارند، در حالی که برخی دیگر سازگاری آماده را ارائه می‌دهند. برای مشکلات سخت‌افزاری شناخته شده، مستندات رسمی و انجمن‌ها را بررسی کنید.
  • مستندات: جوامع بزرگ‌تر معمولاً آموزش‌های بیشتر، کمک برای عیب‌یابی و توسعه فعال را ارائه می‌دهند که به اطمینان از به‌روزرسانی‌های منظم و پایداری طولانی‌مدت کمک می‌کند.
  • مدیران بسته و ابزارها: انتخاب یک توزیع لینوکس بستگی به این دارد که چه چیزی برای شما مهم‌تر است: مدیران بسته (APT، DNF، Pacman)، محیط‌های دسکتاپ پیش‌فرض، فلسفه‌های سیستمی یا تجربه کاربری. بنابراین، هر توزیع یک گردش کار و اکوسیستم منحصربه‌فرد ارائه می‌دهد.

خلاصه‌ای از توزیع‌های لینوکس: موارد استفاده و ویژگی‌ها

جدول زیر توزیع‌های لینوکس را به همراه بهترین موارد استفاده و ویژگی‌های قابل توجه آن‌ها لیست می‌کند:

DistributionBasePackage ManagerUse CaseBest ForNotable Features
UbuntuDebianAPT (.deb)General-purpose computing, cloud, servers.مبتدیان، مدیران سیستم.نسخه‌های LTS؛ پشتیبانی قوی از سوی جامعه؛ کاربرپسند
Linux MintUbuntu/DebianAPT (.deb)Desktop operating system.کاربران جدید لینوکس، کاربران چندرسانه‌ای/خانگی.پشتیبانی از فایل‌های رسانه‌ای آماده؛ دسکتاپ سینامون.
DebianIndependentAPT (.deb)Base for other distros, server workloads.کاربران باتجربه، تنظیمات حداقلی.پایداری؛ مخزن عظیم؛ طاق چندوجهی.
FedoraIndependent (RHEL upstream)DNF (.rpm)Developer platforms, testing new tech.توسعه‌دهندگان، تنظیمات آگاه به امنیت.بسته‌های پیشرفته؛ SELinux؛ بالادست RHEL.
Arch LinuxIndependentpacmanCustom, rolling-release systems.کاربران پیشرفته‌ای که کنترل دستی را ترجیح می‌دهند.تنظیمات تحت کنترل کاربر؛ مستندات عالی (آرچ ویکی).
Rocky LinuxRHELDNF (.rpm)Enterprise servers, CentOS replacement.سازمان‌هایی که به ثبات بلندمدت نیاز دارند.سازگار با RHEL؛ نگهداری فعال؛ مبتنی بر کل.
Alpine LinuxIndependentapkContainer-based and minimalist environments.کاربران پیشرفته، کاربران داکر و سیستم‌های تعبیه‌شده.بسیار سبک، متمرکز بر امنیت، مبتنی بر musl libc و BusyBox.
AlmaLinuxRHELDNF (.rpm)Server deployments, enterprise workloads.مدیران ابر/سرور جایگزین CentOS می‌شوند.سازگار با RHEL؛ رایگان و متن‌باز؛ نسخه‌های پایدار.
openSUSE LeapSUSE Linux EnterprisezypperEnterprise desktops and servers.مدیران سیستم، توسعه‌دهندگان در محیط‌های پایدار.ابزار مدیریت YaST؛ آزمایش‌شده در برابر SLE.
openSUSE TumbleweedIndependentzypperRolling-release development environments.کاربران حرفه‌ای که آخرین نرم‌افزار را می‌خواهند.همیشه به‌روز؛ مناسب برای توسعه/آزمایش.

هر نقش سرور نیازمندی‌های متفاوتی از نظر منابع و پیکربندی دارد. نقش سرور لینوکس خود را مشخص کنید و فهرستی شامل موارد زیر تهیه نمایید:

  • بارهای کاری مورد انتظار.
  • نرم‌افزارها و سرویس‌های مورد نیاز مانند MySQL، Docker یا OpenSSH.
  • تعداد تخمینی کاربران همزمان یا اتصالات.

در ادامه، ترجمه فارسی متن شما آورده شده است:


سخت‌افزار مورد نیاز برای سرور لینوکس

در این بخش، به اجزای اصلی سخت‌افزاری مورد نیاز برای راه‌اندازی یک سرور لینوکس می‌پردازیم:

  • پردازنده (CPU): یک CPU مصرفی مانند Intel Core یا AMD Ryzen برای کارهای ساده‌ای مثل یک وب سرور سبک لینوکس کافی است. اما برای حجم کاری بالا مانند پایگاه داده یا راه‌اندازی مجازی‌سازی، ممکن است به CPUهای سرور-گرید مثل Intel Xeon یا AMD EPYC نیاز داشته باشید.
  • رم (RAM): لینوکس حافظه را به طور کارآمد مدیریت می‌کند، اما میزان رم باید متناسب با حجم کار و فضای لازم برای هسته (kernel)، دیمون‌ها (daemons) و کش (caching) باشد. حداقل ۸ تا ۱۶ گیگابایت برای کارهای پایه و ۶۴ تا ۱۲۸ گیگابایت و بیشتر برای سرورهای پایگاه داده، کانتینرها یا ماشین‌های مجازی انتخاب کنید.
  • فضای ذخیره‌سازی (Storage): برای سیستم عامل و داده‌های پرکاربرد از SSD استفاده کنید و برای ذخیره‌سازی انبوه، HDD اضافه کنید. به طرح‌بندی پارتیشن‌ها و سیستم‌های فایل مانند ext4، xfs و Btrfs برای انعطاف‌پذیری و اطمینان‌پذیری توجه کنید.
  • مادربورد (Motherboard): اطمینان حاصل کنید که مادربورد با CPU، رم و فضای ذخیره‌سازی شما سازگار است. پشتیبانی BIOS/UEFI از لینوکس، به ویژه برای secure boot و virtualization extensions را تأیید کنید.
  • کارت رابط شبکه (NIC): یک کارت شبکه گیگابیتی یک پیکربندی استاندارد برای سرور است. برای نیازهای با توان عملیاتی بالا، ۱۰ GbE را در نظر بگیرید. اگرچه لینوکس پشتیبانی گسترده‌ای از درایورها دارد، اما سازگاری با توزیع‌هایی مانند دبیان (Debian) یا فدورا (Fedora) را تأیید کنید.
  • واحد منبع تغذیه (PSU): از یک PSU قابل اعتماد با راندمان حداقل ۸۰+ Bronze استفاده کنید. برای سرورهای حیاتی، یک PSU اضافی (redundant) را در نظر بگیرید.
  • سیستم خنک‌کننده (Cooling): لینوکس به خنک‌کننده خاصی نیاز ندارد، اما اگر قطعات بیش از حد گرم شوند، عملکرد به سرعت کاهش می‌یابد. اگر از خنک‌کننده غیرفعال (passive cooling) استفاده می‌کنید، از بهینه‌سازی جریان هوا اطمینان حاصل کنید.
  • واحد پردازش گرافیکی (GPU): فقط برای برنامه‌های لینوکسی که نیاز به پردازش محاسباتی فشرده یا برنامه‌های پرمحتوای رسانه‌ای مانند استنتاج یادگیری ماشین (machine learning inference) دارند، مورد نیاز است.
  • RAID سخت‌افزاری (اختیاری): در حالی که لینوکس از RAID نرم‌افزاری از طریق ابزارهایی مانند mdadm پشتیبانی می‌کند، RAID سخت‌افزاری می‌تواند مزایای عملکردی و ویژگی‌های اضافی را برای موارد استفاده خاص ارائه دهد.

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

پیکربندی سخت‌افزاری نمونه
وب سرور/فایل سرور پایهIntel Core i5 / AMD Ryzen 5, 8–۱۶ GB RAM, 256 GB SSD, 1 Gbps NIC
آزمایشگاه خانگی/NASIntel Core i3 / Low-power ARM board, 4–۸ GB RAM, SSD + HDD combination
سرور وب یا پایگاه داده پرترافیکIntel Xeon / AMD EPYC, 64+ GB ECC RAM, NVMe SSDs (RAID 10), Dual 10 Gbps NICs
میزبان مجازی‌سازیMulti-core Xeon/EPYC, 128+ GB ECC RAM, NVMe Storage, Redundant PSU
سرور رسانه با قابلیت تبدیل فرمت (مثلاً Plex)Ryzen 7 / Intel i7 + NVIDIA GPU, 32 GB RAM, SSD + Large HDDs, Enhanced Cooling
گره محاسبات با کارایی بالا (HPC)Dual-socket EPYC/Xeon, 256+ GB RAM, High-speed Interconnect (e.g., InfiniBand), Active Cooling
زیرساخت کانتینر محور (مثلاً Kubernetes)8+ Core CPU, 64–۱۲۸ GB RAM, Fast SSDs, NIC Bonding Support
سرور پشتیبان/بایگانیLow-power CPU, 8 GB RAM, High-capacity HDDs, Basic RAID or JBOD Setup

ماشین‌های مجازی (VMs) برای استقرار سرورهای لینوکس هم در محیط‌های محلی (on-premise) و هم در محیط‌های ابری استفاده می‌شوند. یک سرور لینوکس که در داخل یک ماشین مجازی اجرا می‌شود، دقیقاً مانند یک سرور فیزیکی عمل می‌کند، اما با انعطاف‌پذیری، مقیاس‌پذیری و ایزوله‌سازی بیشتر.

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

  • هایپروایزر (Hypervisor): هایپروایزر منابع سخت‌افزاری فیزیکی را مدیریت کرده و آن‌ها را به ماشین‌های مجازی اختصاص می‌دهد.
  • سیستم میزبان (Host System): ماشین فیزیکی که هایپروایزر را اجرا می‌کند و منابع را به ماشین‌های مجازی مهمان ارائه می‌دهد.
  • سیستم مهمان (Guest System): سرور لینوکس در داخل ماشین مجازی اجرا می‌شود. هر مهمان دارای سیستم‌عامل و برنامه‌های کاربردی ایزوله خود است.
  • سخت‌افزار مجازی (Virtual Hardware): ماشین مجازی، CPUهای مجازی، حافظه، دیسک‌ها و رابط‌های شبکه را می‌بیند که توسط هایپروایزر به اجزای فیزیکی نگاشت می‌شوند.
  • سیستم‌عامل مهمان لینوکس (Guest Linux OS): می‌توانید توزیع‌های مختلف لینوکس مانند اوبونتو سرور (Ubuntu Server)، راکی لینوکس (Rocky Linux) یا دبیان (Debian) را بسته به نقش سرور و اولویت خود اجرا کنید.

انواع مجازی‌سازی برای سرورهای لینوکس:

  • مجازی‌سازی کامل (Full Virtualization): سیستم‌عامل مهمان لینوکس از اینکه مجازی‌سازی شده است، بی‌خبر است. این رایج‌ترین تنظیمات است که توسط ابزارهایی مانند پروکس‌ماکس (Proxmox) یا وی‌ام‌ور ای‌اس‌ایکس‌آی (VMware ESXi) پشتیبانی می‌شود.
  • پاراویرچوالیزیشن (Paravirtualization): سیستم‌عامل مهمان لینوکس اصلاح شده است تا به طور کارآمدتری با هایپروایزر تعامل داشته باشد (به عنوان مثال، محیط‌های مبتنی بر Xen).
  • مجازی‌سازی با کمک سخت‌افزار (Hardware-Assisted Virtualization): از Intel VT-x یا AMD-V برای کاهش سربار مجازی‌سازی استفاده می‌کند. اکثر هایپروایزرهای مدرن و CPUها از این قابلیت پشتیبانی می‌کنند.
  • کانتینرسازی (Containerization – مجازی‌سازی در سطح سیستم‌عامل): ابزارهایی مانند داکر (Docker) و ال‌اِکس‌سی (LXC) چندین نمونه لینوکس ایزوله (کانتینر) را روی یک هسته مشترک اجرا می‌کنند که برای میکروسرویس‌ها و برنامه‌های سبک ایده‌آل است.
مثالی از تنظیمات مجازی‌سازی
تولید در محل (On-Premium) با ماشین مجازی (VM)هایپروایزر نوع ۱ (KVM یا VMware ESXi)، سخت‌افزار واسط برای افزایش کارایی، مهمان: سرور اوبونتو، لینوکس راکی.
توسعه یا آزمایش محلیهایپروایزر نوع ۲ (VirtualBox، VMware Workstation)، مهمان: اوبونتو، دبیان، فدورا.
سرویس‌های سبک/میکروسرویس‌هاکانتینرها (Docker، LXC)، میزبان: Debian/Alpine، مدیریت شده از طریق Docker Compose یا Kubernetes.
حجم کاری سازمانی با دسترسی بالاهایپروایزر نوع ۱ Bare-metal با مجازی‌سازی به کمک سخت‌افزار (VT-x/AMD-V)، افزونگی ماشین مجازی، فضای ذخیره‌سازی مشترک.
دسکتاپ مجازی یا برنامه‌های رابط کاربری گرافیکیVirtualBox یا KVM با GPU passthrough (در صورت نیاز)، مهمان: اوبونتو دسکتاپ یا فدورا ورک‌استیشن.
آزمایشگاه‌های آموزشی یا تربیتیماشین‌های مجازی نوع ۲ یا مبتنی بر ابر (مثلاً در Proxmox، VMware Workstation)، پشتیبانی از اسنپ‌شات، ایمیج‌های پایه سبک.
تست مجازی‌سازی تودرتومیزبان با پشتیبانی از VT-x/AMD-V و EPT، KVM در لینوکس یا Hyper-V در ویندوز، ماشین‌های مجازی مهمان می‌توانند هایپروایزرهای خود را اجرا کنند.
محیط ترکیبی از سیستم‌عامل‌ها (ویندوز + لینوکس)از Proxmox یا VMware vSphere استفاده کنید، منابع را اختصاص دهید، انواع سیستم عامل را با قالب‌ها جدا کنید.

مراحل راه‌اندازی یک سرور لینوکس به تنظیمات زیرساخت و ارائه‌دهنده هاستینگ شما بستگی دارد. برخی از سناریوهای رایج‌تر عبارتند از:

  • ارائه‌دهندگان ابری مانند AWS و Azure به کاربران امکان می‌دهند یک تصویر لینوکس از پیش ساخته شده، مثلاً اوبونتو، را انتخاب کرده و سرور را از طریق یک کنسول وب، CLI (رابط خط فرمان) یا API (رابط برنامه‌نویسی کاربردی) راه‌اندازی کنند.
  • ارائه‌دهندگان هاستینگ مدیریت شده مانند Hetzner یا OVH دارای ابزارهای نصب خودکار هستند. کاربران یک سیستم عامل را از طریق یک کنترل پنل انتخاب می‌کنند و ارائه‌دهنده کل فرآیند نصب را مدیریت می‌کند.
  • یکی از بهترین راه‌ها برای آزمایش توزیع‌های مختلف، استفاده از ماشین‌های مجازی است. شما می‌توانید یک تصویر ISO را در یک هایپروایزر (KVM، VMware، Proxmox، VirtualBox) بارگذاری کرده و سیستم عامل را به عنوان یک رسانه بوت مجازی نصب کنید.
  • اگر در حال راه‌اندازی یک سرور Bare Metal (سخت‌افزار اختصاصی) از راه دور هستید، می‌توانید از رابط BMC برای بارگذاری یک ISO مجازی، شروع یک بوت PXE، یا خودکارسازی نصب با استفاده از ابزارهایی مانند MAAS، Foreman یا Ansible استفاده کنید.
  • اگر دسترسی فیزیکی به یک دستگاه محلی دارید، می‌توانید یک رسانه فیزیکی قابل بوت USB/DVD ایجاد کرده و از آن بوت کنید تا اوبونتو را نصب کنید. بسته به سیستم عامل و ترجیح، ابزارهایی مانند Rufus، dd یا balenaEtcher برای ایجاد رسانه قابل بوت استفاده می‌شوند.
مطالب خواندنی :  خلاصه رویداد گلکسی آنپکد سامسونگ، افزایش قیمت جدید گیم‌پس و موارد دیگر ( ویدیو )

بخش زیر توضیح می‌دهد که چگونه یک نمونه سرور اوبونتو را روی یک ماشین مجازی محلی با استفاده از VirtualBox نصب کنید.

فرآیند نصب گام به گام اوبونتو سرور

برای نصب و پیکربندی اوبونتو سرور ۲۴٫۰۴ بر روی یک ماشین مجازی محلی، به موارد زیر نیاز دارید:

  • یک هایپروایزر مجازی سازی (این راهنما از VirtualBox 7 استفاده می‌کند).
  • حداقل ۴ گیگابایت رم.
  • ۲۵ گیگابایت فضای خالی دیسک.

مرحله ۱: دانلود اوبونتو سرور

برای دانلود جدیدترین نسخه اوبونتو سرور:

  1. یک مرورگر وب را باز کرده و به صفحه دانلود رسمی اوبونتو بروید.
  2. روی دکمه “Ubuntu Server 24.04 LTS Download” کلیک کنید.
راهنمای سرور لینوکس: نصب و پیکربندی

مرحله ۲: ایجاد یک ماشین مجازی

برای ایجاد یک ماشین مجازی (VM) جدید:

  1. VirtualBox را باز کرده و New (جدید) را انتخاب کنید.
راهنمای سرور لینوکس: نصب و پیکربندی

۲. در پنجره بازشو:

  • نام. یک نام برای ماشین مجازی (VM) وارد کنید.
  • پوشه. پوشه ذخیره‌سازی ماشین مجازی را انتخاب کنید.
  • تصویر ISO. مکان فایل ISO که دانلود کرده‌اید را مشخص کنید.
  • نوع و نسخه. VirtualBox به طور خودکار نوع و نسخه سیستم‌عامل را بر اساس فایل ISO انتخاب شده حدس می‌زند.
راهنمای سرور لینوکس: نصب و پیکربندی

۳. کادر Skip Unattended Installation را علامت بزنید و روی Next کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

۴. نوار لغزنده را بکشید یا مقدار RAM مورد نظر را تایپ کنید. حداقل ۴ گیگابایت (۴۰۹۶ مگابایت) RAM اختصاص دهید.

۵. بسته به سیستم میزبان خود، ۲ هسته یا بیشتر تنظیم کنید. روی Next کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

۶. اکنون گزینه «ایجاد یک هارد دیسک مجازی» را انتخاب کنید و اندازه دیسک را حداقل ۲۵ گیگابایت تنظیم نمایید. برای ادامه، روی «بعدی» کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

۷. تنظیمات خود را در صفحه خلاصه بازبینی کنید و برای ایجاد VM روی پایان کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

مرحله ۳: راه‌اندازی نصب‌کننده

برای شروع نصب اوبونتو سرور:

  1. در VirtualBox، ماشین مجازی Ubuntu Server را انتخاب کرده و روی Start کلیک کنید.
راهنمای سرور لینوکس: نصب و پیکربندی

۲٫ گزینه‌ی «تلاش یا نصب اوبونتو سرور» (Try or Install Ubuntu Server) را انتخاب کرده و برای تایید، Enter را فشار دهید.

راهنمای سرور لینوکس: نصب و پیکربندی

۳٫ زبان مورد نظر خود را انتخاب کرده و Enter را فشار دهید.

راهنمای سرور لینوکس: نصب و پیکربندی

۴. یک طرح‌بندی صفحه‌کلید انتخاب کنید و روی انجام شد (Done) کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

۵. نوع نصب اوبونتو سرور را انتخاب کرده و روی Done کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

مرحله ۴: پیکربندی شبکه

در بخش پیکربندی شبکه:

  1. تنظیمات پیش‌فرض (DHCP) را رها کنید. یا، یک آدرس IP ثابت پیکربندی کنید. برای ادامه، Done را انتخاب کنید.
راهنمای سرور لینوکس: نصب و پیکربندی

۲٫ اگر قصد استفاده از IP را ندارید، فیلد را خالی بگذارید و انجام شد را انتخاب کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

۳. پس از اتمام بررسی خودکار، آینه پیش‌فرض اوبونتو را پذیرفته و روی «انجام شد» (Done) کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

مرحله ۵: پیکربندی فضای ذخیره‌سازی

  1. استفاده از تمام دیسک را انتخاب کرده و دیسک ذخیره‌سازی مجازی که قبلاً ایجاد شده بود را برگزینید.
  2. تنظیم پیش‌فرض پیکربندی این دیسک به عنوان یک گروه LVM را فعال نگه داشته و انجام شد (Done) را انتخاب کنید.
راهنمای سرور لینوکس: نصب و پیکربندی

۳٫ خلاصه پارتیشن‌بندی را بررسی کنید و اگر همه چیز صحیح است، روی Done کلیک کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

۴٫ یک پنجره پاپ‌آپ به شما اطلاع می‌دهد که دیسک‌های انتخاب‌شده فرمت خواهند شد. برای ادامه نصب، «Continue» را فشار دهید.

مرحله ۶: ایجاد حساب کاربری

برای ایجاد یک حساب کاربری برای اوبونتو سرور:

۱٫ نام، نام کامپیوتر، و نام کاربری/گذرواژه را برای کاربر ریشه (root) وارد کنید.

۲٫ برای ادامه، «Done» را انتخاب کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

مرحله ۷: پیکربندی قابلیت‌های اختیاری

بعد از فشردن Continue برای رد شدن از اعلان Upgrade to Ubuntu Pro:

  1. گزینه Install OpenSSH server را انتخاب کنید. در صورت تمایل، اگر کلید SSH دارید، آن را وارد کنید.
  2. Done را فشار دهید تا ادامه دهید.
راهنمای سرور لینوکس: نصب و پیکربندی

۳. صفحه Featured Server Snaps به شما این امکان را می‌دهد که کار را سریع شروع کرده و ابزارهای پرطرفدار را نصب کنید. اسنپ‌های مورد نظر را انتخاب کرده و Done را فشار دهید تا نصب آغاز شود.

مرحله ۸: اتمام نصب

منتظر بمانید تا نصب اوبونتو سرور به پایان برسد. پس از اتمام، Reboot Now را انتخاب کنید.

VirtualBox از شما می‌خواهد که ISO نصب شده را هنگام راه‌اندازی مجدد حذف کنید:

۱. به Devices > Optical Drives > Remove Disk from virtual drive بروید.

۲. Enter را فشار دهید تا سرور تازه نصب شده بوت شود.

مرحله ۹: بررسی پس از نصب

هنگامی که سیستم وارد شل شد:

۱. با استفاده از نام کاربری و رمز عبوری که هنگام نصب ایجاد کرده‌اید، وارد شوید.

۲. برای تأیید راه‌اندازی، اطلاعات سیستم CPU را با استفاده از دستور زیر بررسی کنید:

lscpu
راهنمای سرور لینوکس: نصب و پیکربندی

۳. میزان استفاده از رم، حافظه پنهان (کش) و حافظه مجازی (swap) را با دستور زیر بررسی کنید:

free -h
راهنمای سرور لینوکس: نصب و پیکربندی

۴. از دستور زیر برای بررسی طرح‌بندی و پارتیشن‌های دیسک استفاده کنید:

lsblk
راهنمای سرور لینوکس: نصب و پیکربندی

اکنون می‌توانید نرم‌افزار اضافی را نصب کرده و سرور خود را برای نقش خاص آن پیکربندی کنید.

پس از نصب اوبونتو سرور، باید شبکه را پیکربندی کنید، فایروال را تنظیم کنید، دسترسی از راه دور را فعال کنید و نرم‌افزار لازم را نصب کنید.

دستورالعمل‌های موجود در بخش‌های زیر را دنبال کنید.

به‌روزرسانی‌های سیستم

پس از نصب یک سرور لینوکس جدید، اطمینان حاصل کنید که پچ‌های امنیتی و بهبودهای سیستم به سرعت اعمال شوند. این کار احتمال بهره‌برداری از آسیب‌پذیری‌های سیستم را کاهش می‌دهد.

برای به‌روزرسانی لیست بسته‌ها و ارتقاء تمام بسته‌های نصب شده در اوبونتو سرور، دستور زیر را وارد کنید. از این دستور استفاده کنید:

sudo apt update && sudo apt upgrade -y
راهنمای سرور لینوکس: نصب و پیکربندی

توصیه می‌شود که لیست بسته‌ها هر بار قبل از نصب نرم‌افزار جدید به‌روزرسانی شود تا از راه‌اندازی‌های مجدد غیرمنتظره یا راه‌اندازی مجدد سرویس‌ها به دلیل ناسازگاری جلوگیری شود. جدول زیر دستورات به‌روزرسانی و ارتقاء سیستم را برای توزیع‌های رایج لینوکس فهرست می‌کند:

DistributionUpdate Package ListUpgrade PackagesRemove Unused Packages
Ubuntu/Debiansudo apt updatesudo apt upgrade -ysudo apt autoremove -y && sudo apt clean
RHEL/Rockysudo dnf check-updatesudo dnf upgrade -ysudo dnf autoremove -y
Fedorasudo dnf check-updatesudo dnf upgrade -ysudo dnf autoremove -y
Arch Linuxsudo pacman -Sysudo pacman -Susudo pacman -Rns $(pacman -Qdtq)
openSUSEsudo zypper refreshsudo zypper update -ysudo zypper packages --orphaned
Apline Linuxsudo apk updatesudo apk upgradesudo apk cache clean

لینوکس از رابط‌های شبکه مختلفی از جمله اترنت، Wi-Fi و رابط‌های شبکه مجازی پشتیبانی می‌کند. برای مشاهده رابط‌های فعال، وارد کنید:

ip a
راهنمای سرور لینوکس: نصب و پیکربندی

هر رابط دارای یک نام منحصربه‌فرد است، مانند:

  • eth0: رابط اترنت سنتی.
  • lo: رابط لوپ‌بک (loopback) که برای ارتباطات داخلی استفاده می‌شود.
  • enp0s3: یک فرمت نام‌گذاری قابل پیش‌بینی‌تر برای اترنت.
  • wlan0: رابط شبکه محلی بی‌سیم (Wireless LAN).

در لینوکس، تنظیمات شبکه از طریق فایل‌های پیکربندی مدیریت می‌شوند. مکان و فرمت این فایل‌ها بین توزیع‌ها متفاوت است:

DistributionNetwork Tool UsedConfiguration File Location
Ubuntu Server (18.04+)Netplan/etc/netplan/*.yaml
Ubuntu DesktopNetworkManager (GUI & CLI)/etc/NetworkManager/
Debian 11+ifupdown or Netplan/etc/network/interfaces or /etc/netplan/*.yaml
RHEL 8+/Rocky/AlmaLinuxNetworkManager/etc/NetworkManager/system-connections/
FedoraNetworkManager/etc/NetworkManager/system-connections/
Arch Linuxsystemd-networkd or netctl/etc/systemd/network/ or /etc/netctl/
openSUSEWicked/NetworkManager/etc/sysconfig/network/ifcfg-*
Alpine Linuxifupdown or manual configs/etc/network/interfaces or /etc/network/interfaces.d/*

برای مثال، اوبونتو سرور از ابزار Netplan برای مدیریت تنظیمات شبکه استفاده می‌کند. برای پیکربندی یک آدرس IP ثابت:

۱. فایل پیکربندی Netplan را با استفاده از ویرایشگر متن Nano باز کنید:

sudo nano /etc/netplan/00-installer-config.yaml

۲٫ پیکربندی IP ثابت زیر را جایگزین یا اضافه کنید (نام کارت شبکه و تنظیمات IP را در صورت نیاز تنظیم کنید):

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.50/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

۳. برای ذخیره و خروج از فایل، Ctrl+X را فشار دهید، سپس y و در نهایت Enter را بزنید.

۴. تغییرات را با دستور زیر اعمال کنید:

sudo netplan apply

پیام خطا در صورت وجود خطای نحوی نمایش داده می‌شود.

پیکربندی SSH

پروتکل Secure Shell (SSH) به کاربران امکان می‌دهد تا به طور امن از طریق یک شبکه غیرقابل اعتماد به یک سیستم راه دور دسترسی پیدا کنند. این یک ویژگی ضروری برای مدیریت سرورهای لینوکس است. OpenSSH کلاینت و سرور SSH پیش‌فرض در اکثر توزیع‌های مدرن لینوکس است.

تنظیمات پیش‌فرض SSH ممکن است یک سرور را در برابر حملات جستجوی فراگیر (brute-force attacks) یا ربات‌های اسکن آسیب‌پذیر بگذارد. برای بهبود امنیت، کاربران می‌توانند تنظیمات SSH را در فایل /etc/ssh/sshd_config سفارشی‌سازی کنند، از جمله:

  • تغییر شماره پورت پیش‌فرض.
  • غیرفعال کردن دسترسی ریشه (root) از راه دور به سرور.
  • فعال کردن احراز هویت SSH مبتنی بر کلید. (اختیاری)
  • محدود کردن دسترسی به آدرس‌های IP یا کاربران خاص.

برای پیکربندی SSH در سرور اوبونتو خود:

  1. دستور زیر را برای نصب سرویس OpenSSH وارد کنید:
sudo apt install openssh-server -y

۲٫ویرایشگر متنی دلخواه خود، مانند نانو، را برای دسترسی به فایل پیکربندی SSH باز کنید.

sudo nano /etc/ssh/sshd_config

۳٫ در فایل تنظیمات، خط زیر را پیدا کنید:

#Port 22

کامنت را بردارید و آن را به پورت مورد نظر خود تغییر دهید. برای مثال، سرویس را طوری تنظیم کنید که روی پورت TCP 2477 گوش دهد:

Port 2477
راهنمای سرور لینوکس: نصب و پیکربندی

۴٫اطمینان حاصل کنید که کاربر روت نمی‌تواند از راه دور با رمز عبور استفاده شود. خط زیر را پیدا کنید:

#PermitRootLogin prohibit-password

اگر آن خط را از حالت کامنت خارج کنید، ورود روت با رمز عبور غیرفعال می‌شود و کاربران روت تنها در صورتی می‌توانند وارد شوند که کلید SSH مربوطه را داشته باشند.

PermitRootLogin prohibit-password

برای ممنوع کردن کامل ورود به عنوان کاربر ریشه (root)، وارد کنید:

PermitRootLogin no
راهنمای سرور لینوکس: نصب و پیکربندی

این تنظیم کاربران را مجبور می‌کند تا با حساب‌های کاربری عادی وارد شوند و امتیازات خود را با sudo افزایش دهند. این روش حداکثر امنیت را فراهم می‌کند اما انعطاف‌پذیری کمتری دارد.

  1. برای ذخیره تغییرات و خروج از فایل، CTRL+X، سپس Y، و به دنبال آن Enter را فشار دهید.
  2. برای اعمال تغییرات، سرویس SSH را با دستور زیر راه‌اندازی مجدد کنید:
sudo systemctl restart sshd.service
توزیعابزار پیشنهادیدستور نصبفعال کردن و شروع دستور
Ubuntu/Debianufw (Uncomplicated Firewall)sudo apt install ufwsudo ufw enable
RHEL/Rockyfirewalldsudo dnf install firewalldsudo systemctl enable --now firewalld
FedorafirewalldPreinstalled (usually)sudo systemctl enable --now firewalld
Arch Linuxiptables or ufwsudo pacman -S ufw or sudo pacman -S iptablessudo systemctl enable --now ufw (or iptables)
openSUSEfirewalldsudo zypper install firewalldsudo systemctl enable --now firewalld
Alpine LinuxiptablesBuilt-in (via the iptables package)Rules applied via /etc/network/interfaces

Ubuntu Server با UFW به صورت پیش‌فرض نصب شده ارائه می‌شود. برای تأیید نصب بودن فایروال، اجرا کنید:

sudo ufw version

به طور پیش‌فرض، UFW غیرفعال است. هنگامی که فعال می‌شود، تمام اتصالات ورودی را برای محافظت از سرور مسدود می‌کند و به تمام اتصالات خروجی اجازه می‌دهد تا سرور بتواند با سرویس‌های خارجی ارتباط برقرار کند.

مطالب خواندنی :  محیط دسکتاپ Cinnamon پشتیبانی بهتر از طرح‌بندی‌های صفحه‌کلید و روش‌های ورودی را به دست می‌آورد.

برای مشاهده وضعیت فایروال و قوانین فعال، وارد کنید:

sudo ufw status verbose
راهنمای سرور لینوکس: نصب و پیکربندی

خروجی، وضعیت، تنظیمات پیش‌فرض و پورت‌های باز را نشان می‌دهد.

قبل از فعال‌سازی UFW، اتصالات ورودی لازم برای راه‌اندازی سرور خود را تعریف کنید. به عنوان مثال، اگر سیستم از IPv4 و IPv6 استفاده می‌کند، فایل پیکربندی UFW را برای پشتیبانی از هر دو پروتکل تغییر دهید:

  1. فایل پیکربندی پیش‌فرض UFW را باز کنید:
sudo nano /etc/default/ufw

۲. مقدار IPv6 را بررسی کنید. اگر مقدار آن “خیر” است، آن را به “بله” تغییر دهید تا استفاده از IPv6 فعال شود.

راهنمای سرور لینوکس: نصب و پیکربندی

٣. تغییرات را ذخیره کنید و فایل را ببندید.

٤. UFW را برای اجازه دادن به اتصالات ورودی SSH با استفاده از دستور زیر تنظیم کنید:

sudo ufw allow ssh
راهنمای سرور لینوکس: نصب و پیکربندی

۴. این فرمان یک قانون برای IPv4 (و در صورت فعال بودن IPv6) اضافه می‌کند تا ترافیک ورودی و خروجی از اتصالات SSH را مجاز کند.

۵. (اختیاری) پورت سفارشی تعریف شده در بخش SSH را با استفاده از فرمان زیر مشخص کنید:

sudo ufw allow 2477/tcp

پس از پیکربندی تنظیمات، فایروال UFW را فعال کنید تا تغییرات اعمال شوند.

sudo ufw enable
راهنمای سرور لینوکس: نصب و پیکربندی

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

لینوکس کنترل‌های دسترسی را با استفاده از یک مدل مجوز که در سیستم فایل تعبیه شده است، اعمال می‌کند. هر فایل و دایرکتوری دارای یک مالک (owner)، یک گروه مرتبط (associated group) و مجوزهایی برای سه دسته کاربری است:

  • کاربر (u): مالک فایل یا دایرکتوری.
  • گروه (g): سایر کاربران عضو گروه مالک.
  • سایرین (o): هر کس دیگری در سیستم.

هر یک از این دسته‌های کاربری می‌توانند مجوزهای زیر را داشته باشند:

مجوزنمادتوضیحات
Readrیک کاربر می‌تواند محتویات فایل را مشاهده کند یا محتویات دایرکتوری را فهرست کند.
Writewیک کاربر با مجوزهای نوشتن می‌تواند فایل‌ها یا دایرکتوری‌ها را ایجاد کند، جابه‌جا کند و حذف کند، همچنین محتویات فایل را تغییر دهد یا پاک کند.
Executex“به کاربر اجازه می‌دهد فایل‌های اسکریپت/اجرایی را اجرا کند یا وارد دایرکتوری‌ها شود/در آن‌ها پیمایش کند.”

برای مشاهده مجوزهای یک فایل یا دایرکتوری از دستور ls استفاده کنید:

ls -l

خروجی لیستی از کاربران و مجوزهای آنها را نمایش می‌دهد.

$ ls -l
total 17
-rw-r--r--  1 boss staff   2048 May 14 09:00 report.txt
-rw-rw----  1 boss staff   1024 May 13 16:30 draft.docx
-rwxr-xr-x  1 boss staff    512 May 12 14:12 run.sh
drwxr-xr-x  2 boss staff   4096 May 10 12:01 projects
drwx------  3 boss staff   4096 May 10 12:05 private
-rw-r--r--  1 root root    3072 May 11 11:11 system.conf
-rw-------  1 boss staff   5120 May 14 08:00 secrets.txt
lrwxrwxrwx  1 boss staff     14 May 10 13:00 shortcut -> /var/www/html
crw-rw-r--  1 root tty    4, 0  May 14 10:00 /dev/tty0

ستون اول، برای مثال، rw-r–r–، مجوزهای هر فایل و دایرکتوری را نشان می‌دهد:

  • صاحب (owner) boss دارای مجوزهای خواندن و نوشتن (rw-) است.
  • گروه (group) staff دارای مجوزهای فقط خواندن (r–) است.
  • بقیه (Everyone else) نیز دارای مجوزهای فقط خواندن (r–) هستند.

هنگامی که شما اوبونتو سرور را نصب می‌کنید، کاربر پیش‌فرض ایجاد شده معمولاً دارای امتیازات sudo است که به او اجازه می‌دهد کارهای مدیریتی را انجام دهد. بیشتر توزیع‌های لینوکس از یک مجموعه دستورات مشابه برای مدیریت کاربران و مجوزهای فایل استفاده می‌کنند.

جدول زیر رایج‌ترین دستورات مورد استفاده را فهرست می‌کند:

فرمانعملکرد
adduser or useraddیک کاربر جدید ایجاد می‌کند.
usermodویژگی‌های کاربر را تغییر می‌دهد (مثلاً به گروه اضافه می‌کند).
passwdرمز عبور کاربر را تنظیم یا به‌روزرسانی می‌کند.
ls -lمجوزهای فایل را نمایش می‌دهد.
chmodمجوزهای فایل را تغییر می‌دهد.
chownمالک و گروه فایل را تغییر می‌دهد.

وارد کردن دستور زیر در سرور اوبونتو برای ایجاد یک کاربر مدیر غیر ریشه (non-root admin user):

sudo adduser newuser

برای تعیین گذرواژه و جزئیات کاربری اختیاری، دستورالعمل‌ها را دنبال کنید.

راهنمای سرور لینوکس: نصب و پیکربندی

سپس، کاربر جدید را به گروه sudo اضافه کنید:

sudo usermod -aG sudo newuser

این به کاربر امتیازات مدیریتی می‌دهد در حالی که دسترسی روت غیرفعال می‌ماند.

برای تغییر مجوزهای فایل از دستور chmod استفاده کنید:

sudo chmod 755 filename

«سطح دسترسی ۷۵۵ به مالک اجازه دسترسی کامل (خواندن/نوشتن/اجرا) می‌دهد و به گروه و دیگران فقط اجازه خواندن/اجرا کردن می‌دهد.

دستور chown مالک و گروه فایل را تغییر می‌دهد:»

sudo chown newuser:newuser filename

این newuser را هم به عنوان مالک فایل و هم به عنوان مالک گروه تنظیم می‌کند.

نصب و مدیریت بسته‌های نرم‌افزاری

یک بسته، یک آرشیو فشرده است که شامل تمام داده‌ها و وابستگی‌های لازم برای نصب یک برنامه نرم‌افزاری کامل است. این روش استاندارد توزیع نرم‌افزار در سیستم‌های مبتنی بر لینوکس است.

توزیع‌های لینوکس از مدیران بسته برای نصب، حذف و به‌روزرسانی بسته‌های نرم‌افزاری استفاده می‌کنند. این ابزارها به طور خودکار وابستگی‌ها را حل می‌کنند و مخازن بسته را برای حفظ سازگاری به‌روز می‌کنند.

هر توزیع، مدیر بسته پیش‌فرض خود را دارد:

توزیعمدیر بستهدستورات مثال
Ubuntu/DebianAPTsudo apt install nginx
RHEL/FedoraDNFsudo dnf install nginx
Arch LinuxPacmansudo pacman -S nginx
openSUSEZyppersudo zypper install nginx
Alpine Linuxapksudo apk add nginx

هنگام استفاده از یک مدیر بسته برای نصب نرم‌افزار جدید، توصیه می‌شود ابتدا لیست بسته‌ها را به‌روزرسانی کرده و بسته‌های موجود را ارتقا دهید.

sudo apt update && sudo apt upgrade -y

این تضمین می‌کند که سیستم شما همیشه با آخرین نسخه‌های نرم‌افزاری موجود کار می‌کند.

یکی از مزایای کلیدی یک مدیر بسته این است که می‌توانید چندین ابزار یا حتی کل پشته‌های نرم‌افزاری را با یک فرمان نصب کنید:

سرور وب (پشته LAMP):

sudo apt update && sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql ufw -y

میزبان داکر:

sudo apt update && sudo apt install docker.io docker-compose git curl -y

ایستگاه کاری توسعه‌دهندگان:

sudo apt update && sudo apt install build-essential git curl vim python3 python3-pip -y 

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

مدیران سیستم باید به طور مداوم معیارهای کلیدی سرور را نظارت کنند. این شامل استفاده از حافظه، بار CPU، فعالیت هارد دیسک، عملکرد برنامه و ترافیک شبکه برای موارد زیر است:

  • شناسایی تنگناهای عملکرد.
  • جلوگیری از قطعی‌های غیرمنتظره.
  • شناسایی رفتار غیرعادی یا نفوذهای امنیتی احتمالی.
  • برنامه‌ریزی برای مقیاس‌بندی منابع آینده و مدیریت ظرفیت.

ابزارهای محبوب برای نظارت و مدیریت سیستم عبارتند از:

ابزارهدفموجود درروش نصب
topReal-time CPU/memory usageAll Linux systemsPreinstalled
htopEnhanced top with color & UIDebian, Ubuntu, Fedora, Archapt, dnf, pacman
glancesAll-in-one system overviewMost major distrosPython-based (apt, dnf, pip)
vmstatMemory and process statisticsAll Linux systemsUsually preinstalled
iostatCPU and I/O device statsMost distros (via sysstat)apt install sysstat
ssSocket statistics (modern netstat)All modern Linux systemsPreinstalled
dstatCombined CPU, disk, and network usageDebian, RHELapt, dnf
NetdataWeb-based real-time dashboardAll major Linux systemsShell script installer or packages
NagiosEnterprise-grade alerting and metricsDebian, RHEL, SUSEManual install, package managers
Prometheus+GrafanaMetrics+VisualizationCloud/server monitoring stacksManual or automated (Docker/K8s)

یک ابزار سبک و مبتنی بر ترمینال مانند htop برای عیب‌یابی سریع سیستم ایده‌آل است. در اوبونتو سرور و بسیاری دیگر از توزیع‌های لینوکس، htop اغلب به صورت پیش‌فرض نصب شده است.

می‌توانید این ابزار را مستقیماً با استفاده از دستور زیر در ترمینال اجرا کنید:

htop

نمایشگر تعاملی، میزان مصرف بیدرنگ CPU، فرایند و حافظه را نمایش می‌دهد.

راهنمای سرور لینوکس: نصب و پیکربندی

وقتی آماده شدید، برای خروج از htop و بازگشت به ترمینال، کلید q را فشار دهید. برای یک داشبورد تعاملی و بی‌درنگ جهت نظارت بر عملکرد سرور لینوکس، به ابزارهای مدرن مانند Prometheus/Grafana یا Netdata نگاه کنید.

سرور اوبونتو ۲۴٫۰۴ شما امن، به‌روز و آماده برای نقش‌های خاص کاری مانند میزبانی وب، کانتینرها یا سرویس‌های پایگاه داده است.

نحوه راه‌اندازی یک وب سرور

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

  • وب سرور. به درخواست‌های HTTP/HTTPS گوش می‌دهد و محتوای وب ایستا و پویا را ارائه می‌کند. راه‌حل‌های محبوب وب سرور شامل Apache، NGINX و Lighttpd هستند.
  • محیط زمان اجرا برنامه (Application Runtime). کد سمت سرور را برای محتوای پویا اجرا می‌کند. مثال‌ها شامل PHP، PHP-FPM، Node.js و Python هستند.
  • سرور پایگاه داده. داده‌های ساختاریافته برنامه، مانند محتوا، حساب‌های کاربری و تنظیمات را ذخیره و بازیابی می‌کند. سرورهای پایگاه داده رایج شامل MariaDB، MySQL، PostgreSQL و SQLite هستند.
  • ابزارهای SSL/TLS. ترافیک وب را با فعال کردن HTTPS از طریق گواهی‌های دیجیتال SSL ایمن می‌کنند. ابزارهایی مانند Certbot (Let’s Encrypt) و OpenSSL معمولاً برای مدیریت این گواهی‌ها در سیستم‌های لینوکس استفاده می‌شوند.

بسته به معماری برنامه و محیط زمان اجرا، می‌توانید پشته‌های فناوری مختلفی را نصب کنید. برای مثال:

StackWeb ServerRuntimeDatabaseFrontendUse Case
LAMPApachePHP (mod_php)MySQL / MariaDBHTML/CSS/JSبرنامه‌های کلاسیک PHP، یک سیستم مدیریت محتوا مانند وردپرس.
LEMPNGINXPHP-FPMMySQL / MariaDBHTML/CSS/JSبرنامه‌های PHP کارآمد با همزمانی بالا
MEANNGINX/NodeNode.js + ExpressMongoDBAngularFull JavaScript stack, SPAs
MERNNGINX/NodeNode.js + ExpressMongoDBReactپشته کامل JS با رابط کاربری React
JumpStackNGINX/ApachePHP, Markdown toolsNone or SQLiteHTML/CSS/JSسایت‌های محتوای استاتیک/دینامیک سبک

نصب وب سرور

این بخش یک نمای کلی با دستورات مخصوص اوبونتو را برای راه‌اندازی یک پشته LAMP پایه ارائه می‌دهد. برای نصب آپاچی، ماریا‌دی‌بی، پی‌اچ‌پی و سرت‌بات از دستور زیر استفاده کنید:

sudo apt update && sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql certbot python3-certbot-apache -y

پس از نصب مؤلفه‌های اصلی، باید هر یک را پیکربندی کنید تا یک وب سرور امن و کاربردی ایجاد شود.

پیکربندی وب سرور

مراحل زیر را برای پیکربندی وب سرور آپاچی تکمیل کنید.

مرحله ۱: پیکربندی فایروال

از ابزار UFW برای اجازه دادن به ترافیک وب به آپاچی استفاده کنید:

sudo ufw allow 'Apache Full'

این دستور دسترسی HTTP (پورت ۸۰) و HTTPS (پورت ۴۴۳) را به وب سرور آپاچی فعال می‌کند.

راهنمای سرور لینوکس: نصب و پیکربندی

بررسی تغییرات با بررسی وضعیت UFW:

sudo ufw status
راهنمای سرور لینوکس: نصب و پیکربندی

Step 2: پایگاه داده را ایمن کنید

اسکریپت نصب امن را برای تقویت MariaDB (یا MySQL) اجرا کنید:

sudo mysql_secure_installation
راهنمای سرور لینوکس: نصب و پیکربندی

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

گام ۳: وب‌سایت خود را مستقر کنید

فایل‌های خود را در ریشه وب پیش‌فرض آپاچی در مسیر /var/www/html/ قرار دهید:

sudo cp -r your_website/* /var/www/html/

مالکیت و مجوزهای صحیح را تنظیم کنید تا آپاچی بتواند فایل‌ها را ارائه و مدیریت کند.

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

اگر قصد دارید چندین دامنه را روی وب سرور میزبانی کنید، نحوه پیکربندی Virtual Hosts در اوبونتو را پیدا کنید.

مرحله ۴: فعال کردن HTTPS با Let’s Encrypt (توصیه می‌شود)

از Certbot برای نصب و پیکربندی خودکار گواهینامه SSL خود استفاده کنید:

sudo certbot --apache

برای دریافت گواهینامه SSL رایگان، دستورالعمل‌های تعاملی را دنبال کنید.

تست وب سرور

یک مرورگر وب را باز کرده و آدرس IP وب سرور را در نوار آدرس وارد کنید:

http://[local_server_ip]

IP-ادرس [local_server_ip] را با آدرس IP سرور خود جایگزین کنید. اگر از صحت آدرس IP مطمئن نیستید، از دستور زیر استفاده کنید:

hostname -I | awk '{print $1}'

خروجی، آدرس IP سرور شما را بازمی‌گرداند. مرورگر صفحه پیش‌فرض Apache2 را باز می‌کند.

راهنمای سرور لینوکس: نصب و پیکربندی

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

برای فراهم کردن یک سرور پایگاه داده اختصاصی روی سیستم لینوکس، باید یک موتور پایگاه داده را نصب و پیکربندی کنید. یک موتور پایگاه داده، داده‌های ساختاریافته اپلیکیشن را ذخیره، بازیابی و مدیریت می‌کند.

موتورهای محبوب شامل MariaDB، MySQL، PostgreSQL و SQLite هستند. انواع مختلفی از پایگاه‌های داده برای مدیریت داده‌های ساختاریافته، نیمه‌ساختاریافته و غیرساختاریافته طراحی شده‌اند. انتخاب موتور بستگی به نوع داده‌ای دارد که اپلیکیشن شما پردازش و ذخیره می‌کند.

نصب سرور پایگاه داده

دستور زیر را برای نصب آخرین نسخه سرور پایگاه داده MariaDB وارد کنید:

sudo apt update && sudo apt install mariadb-server -y

بعد از نصب MySQL، یک راه‌اندازی امنیتی اولیه را با اجرای اسکریپت mysql_secure_installation انجام دهید:

sudo mysql_secure_installation

سیستم از شما می‌خواهد که رمز عبور ریشه (root) را تنظیم کنید، ورود به عنوان ریشه را غیرفعال کنید و جداول و کاربران آزمایشی را حذف کنید.

پیکربندی سرور پایگاه داده

این مراحل اضافی را برای ایجاد یک سرور پایگاه داده کارآمد تکمیل کنید:

مرحله ۱: راه‌اندازی و فعال‌سازی MariaDB

دستور زیر MariaDB را فعال می‌کند و تضمین می‌کند که هر بار که سیستم راه‌اندازی مجدد می‌شود، به طور خودکار شروع به کار کند:

sudo systemctl enable --now mariadb

تأیید کنید که سرویس در حال اجرا است.

sudo systemctl status mariadb
راهنمای سرور لینوکس: نصب و پیکربندی

مرحله ۲: ایجاد پایگاه داده و کاربر جدید

دسترسی به شل MariaDB:

sudo mariadb

در داخل پرامپت، دستورات SQL زیر را اجرا کنید:

CREATE DATABASE myapp_db;
CREATE USER 'youruser'@'localhost' IDENTIFIED BY 'yourpass';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'youruser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

نام کاربری و رمز عبور دلخواه خود را جایگزین محل‌های نگهداری youruser و yourpass کنید.

مرحله ۳: اجازه دسترسی از راه دور (اختیاری)

برای اجازه دادن به اتصالات خارجی، فایل /etc/mysql/mariadb.conf.d/50-server.cnf سرور را ویرایش کنید.

  1. فایل پیکربندی را باز کنید:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

خط زیر را پیدا کنید:

bind-address = 127.0.0.1

تغییر خط به:

bind-address = 0.0.0.0
راهنمای سرور لینوکس: نصب و پیکربندی

۴. برای ذخیره تغییرات و بستن فایل، CTRL+X را فشار دهید، سپس y و در ادامه Enter را بزنید.

۵. پورت ۳۳۰۶ را در UFW باز کنید:

sudo ufw allow 3306/tcp

۶٫سرویس MariaDB را راه‌اندازی مجدد کنید.

sudo systemctl restart mariadb

اطمینان حاصل کنید که دسترسی فقط به IPهای قابل اعتماد محدود شده باشد و از رمزهای عبور قوی یا SSL/TLS استفاده شود.

تست سرور پایگاه داده

برای تأیید عملکرد پایگاه داده، به عنوان root به آن دسترسی پیدا کنید:

sudo mysql -u root -p

برای بررسی اینکه آیا پایگاه داده و کاربر ایجاد شده‌اند، تایپ کنید:

SHOW DATABASES;
SELECT User, Host FROM mysql.user;

برای آزمایش یک اتصال از راه دور (در صورت فعال بودن)، وارد کنید:

mysql -u youruser -p -h your_server_ip

“youruser” را با نام کاربری پایگاه داده خود و “your_server_ip” را با آدرس IP سرور خود جایگزین کنید.

اکنون یک سرور پایگاه داده کاملاً کاربردی دارید. برنامه ها و وب سرورها اکنون می توانند برای ذخیره و دسترسی به داده ها به آن متصل شوند.

نحوه استفاده و مدیریت سرور لینوکس

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

رایج ترین راه برای دسترسی به سرور لینوکس راه دور از طریق SSH (Secure Shell) است.

مرحله ۱: نصب کلاینت و سرور SSH

برای استفاده از SSH، باید پکیج های لازم را هم روی دستگاه کلاینت و هم روی دستگاه سرور نصب کنید. OpenSSH که در بخش قبلی مورد بحث قرار گرفت، شامل هر دو مولفه کلاینت و سرور است.

  • ماشین سرور (همانی که به آن متصل می شوید) به openssh-server نیاز دارد.
  • ماشین کلاینت (همانی که از آن متصل می شوید) به openssh-client نیاز دارد.

اگر OpenSSH نصب نشده است، از دستور مربوطه برای توزیع خود استفاده کنید:

توزیعدستور نصب کلاینت و سرور SSH
Debian/Ubuntusudo apt install openssh-client openssh-server
RHEL/Fedorasudo dnf install openssh-clients openssh-server
Arch Linuxsudo pacman -S openssh
openSUSEsudo zypper install openssh
Alpine Linuxsudo apk add openssh-client openssh

خدمت SSH (sshd) پس از نصب به صورت خودکار شروع می‌شود. برای اطمینان از فعال بودن آن، دستور زیر را وارد کنید:

sudo systemctl status sshd

مرحله ۲: اتصال به سرور از راه دور از طریق SSH

پس از نصب و راه‌اندازی کلاینت و سرور SSH در هر دو دستگاه:

  1. با استفاده از دستور SSH یک اتصال امن از راه دور برقرار کنید:
ssh [username]@[host_ip_address]

نام کاربری [username] را با نام کاربری واقعی لینوکس خود و [host_ip_address] را با آدرس IP سرور راه دور جایگزین کنید. اگر نام کاربری در هر دو دستگاه یکسان است، می‌توانید آن را از دستور حذف کنید:

ssh host_ip_address

۲٫ هنگامی که برای اولین بار به سرور متصل می‌شوید، پیام زیر ظاهر می‌شود:

The authenticity of host '192.168.1.10' can't be established.
ECDSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no)?

۳٫ بله را تایپ کرده و Enter را فشار دهید تا به سرور اعتماد کنید و کلید آن را در سیستم محلی خود ذخیره کنید.

۴٫ هنگام درخواست، گذرواژه را وارد کنید (کاراکترها هنگام تایپ ظاهر نمی‌شوند) و Enter را فشار دهید.

نحوه انتقال فایل به/از سرور لینوکس

Rsync یک ابزار رایگان خط فرمان برای انتقال فایل‌ها و دایرکتوری‌ها هم به صورت محلی و هم بین سیستم‌های محلی و از راه دور است. این ابزار به صورت پیش‌فرض روی اکثر توزیع‌های مدرن لینوکس نصب شده است.

برای تأیید نصب یا نصب rsync، از دستور مربوط به توزیع خود استفاده کنید:

توزیعدستور نصب کلاینت و سرور SSH
Debian/Ubuntusudo apt install rsync
RHEL/Fedorasudo dnf install rsync
Arch Linuxsudo pacman -S rsync
openSUSEsudo zypper install rsync
Alpine Linuxsudo apk add rsync

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

rsync [OPTION] [SOURCE] [USERNAME]@[HOSTNAME_OR_IP]:[DESTINATION]

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

rsync [OPTION] [USERNAME]@[HOSTNAME_OR_IP]:[SOURCE] [DESTINATION]

Rsync یک ابزار همگام‌سازی همه‌کاره است که می‌توان آن را برای موارد استفاده خاص سفارشی کرد. گزینه -a حالت آرشیو را فعال می‌کند (که شامل حفظ لینک‌های نمادین، مجوزها، مُهرهای زمانی و غیره می‌شود) و -v خروجی کامل (verbose) را فعال می‌کند.

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

توضیحاتدستور
یک فایل را به یک سرور راه دور آپلود کنید.rsync -av /home/user/file.txt user@192.168.1.10:/home/user/remote/
یک دایرکتوری را به یک سرور راه دور آپلود کنید.rsync -av /home/user/project user@192.168.1.10:/home/user/remote/
به عنوان یک کاربر دیگر آپلود کنید.rsync -av /home/user/test_project test@192.168.1.10:/home/test/remote/
چندین دایرکتوری محلی را آپلود کنید.rsync -av /dir1 /dir2 user@192.168.1.10:/home/user/remote/
دانلود یک فایل از یک سرور راه دور.rsync -av user@192.168.1.10:/home/user/file.txt /home/user/local/
دانلود یک دایرکتوری از یک سرور راه دور.rsync -av user@192.168.1.10:/home/user/project /home/user/local/
چندین دایرکتوری از راه دور را دانلود کنید.rsync -av user@192.168.1.10:{/dir1,/dir2} /home/user/local/
استفاده از rsync روی SSHrsync -av -e ssh /home/user/file.txt user@192.168.1.10:/home/user/remote/

نحوه زمان‌بندی وظایف در سرور لینوکس

به‌روزرسانی نرم‌افزار، ایجاد پشتیبان (بکاپ) یا پاک کردن کش (حافظه پنهان)، از جمله کارهای ضروری مدیریت سرور هستند. لینوکس یک ابزار داخلی برای خودکارسازی این وظایف به نام “کرون” (cron) ارائه می‌دهد.

ابزار کرون فایل کرون‌تب (crontab یا جدول کرون) را می‌خواند و دستورات یا اسکریپت‌های زمان‌بندی شده را در زمان‌ها و فواصل مشخص اجرا می‌کند. یک خط کار کرون در فایل کرون‌تب باید از این فرمت پیروی کند:

MIN HOUR DOM MON DOW CMD
فیلدتوضیحاتمقدار مثال
MINMinute (0–۵۹)۰
HOURHour (0–۲۳)۹
DOMDay of Month (1–۳۱)۱
MONMonth (1–۱۲)۱ (January)
DOWDay of Week (0–۷, Sun=0)* (any day)
CMDCommand or script to run (script must be executable)/path/to/script.sh

برای مثال، خط زیر Cron را وادار می‌کند که یک اسکریپت را در تاریخ ۱ ژانویه در ساعت ۹ صبح اجرا کند:

۰ ۹ ۱ ۱ * /path/to/your_script.sh

علامت ستاره (*) در فیلد DOW به Cron دستور می‌دهد که کار را بدون در نظر گرفتن روز هفته اجرا کند. برای توضیح دقیق‌تر درباره حروف عام (wildcard) و شیوه زمان‌بندی، به راهنمای کامل ما در مورد عبارات cron مراجعه کنید.

سایر مثال‌ها از کارهای cron عبارتند از:

وظیفهبرنامهخط Crontab
هر روز ساعت ۲ بامداد یک اسکریپت پشتیبان‌گیری اجرا کنیدDaily0 2 * * * /home/user/scripts/backup.sh
هر یکشنبه شب فایل‌های موقت را پاک کنیدWeekly0 23 * * 0 rm -rf /tmp/*
به‌روزرسانی سیستم را در اول هر ماه اجرا کنیدMonthly0 4 1 * * apt update && apt upgrade -y

برای مشاهده کرون جاب‌های زمان‌بندی‌شده کاربر فعلی، وارد کنید:

crontab -l

ویرایش فایل Crontab

crontab -e

این دستور کرون‌تب را در ویرایشگر متن پیش‌فرض سیستم باز می‌کند، جایی که می‌توانید وظایف زمان‌بندی‌شده را اضافه، حذف یا تغییر دهید.

برای حذف کرون‌تب و تمام کارهای زمان‌بندی‌شده خود، وارد کنید:

crontab -r

این دستور را با احتیاط استفاده کنید زیرا تمام وظایف cron را برای کاربر فعلی به طور دائم حذف می‌کند.

می‌توانید cron را با ابزارهای مدیریت نشست مانند Byobu ترکیب کنید تا گزارش‌ها را نظارت کنید یا خروجی اسکریپت را به صورت بی‌درنگ مشاهده کنید.

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

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

چندپخش‌کننده‌های ترمینال مانند Byobu، tmux و screen به شما امکان می‌دهند:

FunctionByobutmuxscreen
یک جلسه را شروع کنید.byobutmuxscreen
یک جلسه را جدا کنید.Ctrl+A, then D
(or byobu detach)
Ctrl+B, then DCtrl+A, then D
یک جلسه را دوباره وصل کنید.byobu attachtmux attachscreen -r
یک پنجره جدید ایجاد کنید.Ctrl+A, then CCtrl+B, then CCtrl+A, then C
پنجره بعدی.Ctrl+A, then NCtrl+B, then NCtrl+A, then N
پنجره قبلی.Ctrl+A, then PCtrl+B, then PCtrl+A, then P
تقسیم افقی.Ctrl+A, then Shift+SCtrl+B, then (double quote)No built-in split support
تقسیم عمودی.Ctrl+A, then ` (backtick)` (backtick)Ctrl+B, then %
بین پنل‌ها جابجا شوید.Ctrl+A, then arrow keysCtrl+B, then arrow keysNot applicable
پنجره/صفحه فعلی را ببندید.exitexit or Ctrl+Dexit or Ctrl+D

Byobu به صورت پیش‌فرض روی اوبونتو سرور نصب شده است. این ابزار بر پایه tmux یا screen ساخته شده و رابط کاربری کمی کاربرپسندتر ارائه می‌دهد.

این یک انتخاب خوب برای مبتدیان است، زیرا کلیدهای میانبر آن تا حدودی ساده‌تر از دو مالتی‌پلکسر دیگر هستند.

دستورات پایه لینوکس

برخی از اولین دستورات لینوکس که شروع به استفاده از آنها خواهید کرد عبارتند از:

دستورتوضیحات
lsفهرست کردن فایل‌ها و دایرکتوری‌ها در مکان فعلی.
cdدایرکتوری فعلی را تغییر دهید.
pwdدایرکتوری کاری فعلی را چاپ می‌کند.
cpکپی کردن فایل‌ها یا دایرکتوری‌ها.
mvانتقال یا تغییر نام یک فایل یا دایرکتوری.
rmفایل‌ها یا دایرکتوری‌ها را حذف کنید.
mkdirیک دایرکتوری جدید ایجاد کنید.
touchیک فایل خالی ایجاد کنید یا مهر زمانی را به‌روزرسانی کنید.
catنمایش محتوای یک فایل.
lessمحتوای فایل را به صورت صفحه به صفحه مشاهده کنید.
headنمایش چند خط اول یک فایل
tailنمایش چند خط آخر یک فایل
echoمتن یا متغیرها را در ترمینال چاپ می‌کند.
grepجستجوی الگوها در متن.
findجستجوی فایل‌ها و دایرکتوری‌ها به صورت بازگشتی.
chmodمجوزهای فایل یا دایرکتوری را تغییر دهید.
chownتغییر مالکیت فایل یا دایرکتوری
dfنمایش فضای استفاده شده دیسک
duنمایش حجم فایل/دایرکتوری
topمشاهده‌ی لحظه‌ای فرآیندهای سیستم و میزان استفاده از منابع.
htopنسخه بهبود یافته تاپ با رابط کاربری آسان
psفهرست کردن فرآیندهای در حال اجرا.
killارسال سیگنال به یک فرآیند (اغلب برای خاتمه دادن به آن).
sudoیک دستور را با امتیازات superuser (admin) اجرا کنید.
aptمدیریت بسته‌ها در سیستم‌های مبتنی بر دبیان
dnfمدیریت بسته‌ها در سیستم‌های RHEL/Fedora
pacmanمدیریت بسته‌ها در سیستم‌های مبتنی بر آرچ.
wgetفایل‌ها را از اینترنت دانلود کنید.
curlانتقال داده‌ها به/از URLها (پشتیبانی از چندین پروتکل).
manنمایش دفترچه راهنمای یک دستور.
historyنمایش دستورات اجرا شده قبلی

شما یک سرور لینوکس را نصب و راه‌اندازی کرده‌اید و رایج‌ترین دستورات لینوکس را برای مدیریت فایل‌ها، کاربران، نرم‌افزارها و خود سیستم یاد گرفته‌اید.

فروشگاه کوکوهوم

نوشته های مشابه

دیدگاهتان را بنویسید

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

همچنین ببینید
بستن
دکمه بازگشت به بالا