user@linux-tutorials: ~/tutorials/09-linux-networking — linux-tutorials

tutorials / linux / chapter-09.md · utf-8 ⬇ download chapter-09.md

فصل نهم: شبکه در لینوکس

Linux Networking Basics

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

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

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

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

شبکه چیست؟

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

این دستگاه‌ها می‌توانند شامل موارد زیر باشند:

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

هدف اصلی شبکه:

انتقال اطلاعات بین سیستم‌های مختلف است.

مدل ساده ارتباط شبکه

هنگامی که دو سیستم با یکدیگر ارتباط برقرار می‌کنند، اطلاعات از چندین مرحله عبور می‌کند.

ساختار ساده:

Application
     |
     ▼
Transport
     |
     ▼
Network
     |
     ▼
Data Link
     |
     ▼
Physical

هر لایه وظیفه مشخصی دارد و همکاری این لایه‌ها باعث ایجاد ارتباط شبکه‌ای می‌شود.

IP Address چیست؟

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

این آدرس:

IP Address

نام دارد.

IP مانند آدرس یک خانه در دنیای واقعی است.

مثال:

192.168.1.10

با استفاده از IP، سیستم‌ها می‌توانند اطلاعات را به مقصد درست ارسال کنند.

IPv4 چیست؟

IPv4 رایج‌ترین نسخه IP در شبکه‌ها است.

IPv4 از چهار بخش عددی تشکیل شده است.

مثال:

192.168.1.1

هر بخش مقداری بین 0 تا 255 دارد.

به دلیل محدود بودن تعداد آدرس‌های IPv4، نسخه جدیدتری به نام IPv6 ایجاد شد.

IPv6 چیست؟

IPv6 نسل جدید پروتکل IP است که برای حل مشکل کمبود آدرس‌های IPv4 ساخته شده است.

IPv6 فضای آدرس بسیار بزرگ‌تری دارد.

مثال:

2001:db8::1

امروزه بسیاری از شبکه‌ها از IPv6 نیز پشتیبانی می‌کنند.

مشاهده IP در لینوکس

برای مشاهده اطلاعات شبکه:

user@linux-tutorials: ~/ch-09BASH
ip address

یا:

user@linux-tutorials: ~/ch-09BASH
ip addr

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

این دستور اطلاعاتی مانند:

  • آدرس IP
  • کارت شبکه
  • وضعیت اتصال

را نمایش می‌دهد.

Network Interface چیست؟

Network Interface رابطی است که سیستم از طریق آن به شبکه متصل می‌شود.

نمونه‌ها:

کارت شبکه کابلی:

user@linux-tutorials: ~/ch-09BASH
eth0

کارت شبکه بی‌سیم:

user@linux-tutorials: ~/ch-09BASH
wlan0

برای مشاهده رابط‌های شبکه:

user@linux-tutorials: ~/ch-09BASH
ip link

استفاده می‌شود.

MAC Address چیست؟

هر کارت شبکه یک شناسه سخت‌افزاری منحصر به فرد دارد.

این شناسه:

MAC Address

نام دارد.

مثال:

00:1A:2B:3C:4D:5E

MAC در لایه سخت‌افزاری شبکه استفاده می‌شود.

دستور ping

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

user@linux-tutorials: ~/ch-09BASH
ping

است.

مثال:

user@linux-tutorials: ~/ch-09BASH
ping google.com

ping بررسی می‌کند که آیا مقصد قابل دسترسی است یا خیر.

همچنین زمان پاسخ شبکه را نمایش می‌دهد.

DNS چیست؟

انسان‌ها معمولاً نام‌ها را بهتر از اعداد به خاطر می‌سپارند.

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

مثال:

user@linux-tutorials: ~/ch-09BASH
google.com

DNS وظیفه تبدیل نام دامنه به IP Address را بر عهده دارد.

DNS مخفف:

Domain Name System

است.

بررسی DNS

برای مشاهده اطلاعات DNS:

user@linux-tutorials: ~/ch-09BASH
nslookup google.com

استفاده می‌شود.

ابزار حرفه‌ای‌تر:

user@linux-tutorials: ~/ch-09BASH
dig google.com

است.

Port چیست؟

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

Port مشخص می‌کند هر درخواست مربوط به کدام سرویس است.

نمونه‌ها:

HTTP  = 80

HTTPS = 443

SSH   = 22

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

برای مشاهده ارتباطات شبکه:

user@linux-tutorials: ~/ch-09BASH
ss

استفاده می‌شود.

مثال:

user@linux-tutorials: ~/ch-09BASH
ss -tuln

گزینه‌ها:

-t

نمایش TCP

-u

نمایش UDP

-l

نمایش پورت‌های در حال گوش دادن

-n

نمایش عددی اطلاعات

TCP چیست؟

TCP یک پروتکل ارتباطی قابل اعتماد است.

ویژگی‌ها:

  • بررسی دریافت اطلاعات
  • ارسال مرتب داده‌ها
  • مناسب ارتباط‌های حساس

استفاده‌ها:

  • وب
  • SSH
  • ایمیل

UDP چیست؟

UDP یک پروتکل سریع‌تر اما بدون تضمین دریافت است.

ویژگی‌ها:

  • سرعت بالا
  • تأخیر کمتر
  • مناسب ارتباط‌های لحظه‌ای

استفاده‌ها:

  • بازی آنلاین
  • تماس صوتی
  • پخش زنده

HTTP و HTTPS

HTTP پروتکل انتقال اطلاعات در وب است.

پورت:

80

HTTPS نسخه امن HTTP است.

پورت:

443

HTTPS با استفاده از رمزنگاری، امنیت ارتباط را افزایش می‌دهد.

SSH چیست؟

SSH مخفف:

Secure Shell

است.

SSH یکی از مهم‌ترین ابزارهای مدیریت سیستم‌های لینوکسی است.

با SSH می‌توان:

  • به سرورهای راه دور متصل شد.
  • دستورات اجرا کرد.
  • فایل انتقال داد.
  • سیستم را مدیریت کرد.

مثال:

user@linux-tutorials: ~/ch-09BASH
ssh username@server-ip

انتقال فایل با SCP

برای انتقال فایل از طریق SSH:

user@linux-tutorials: ~/ch-09BASH
scp

استفاده می‌شود.

مثال:

user@linux-tutorials: ~/ch-09BASH
scp file.txt user@server:/home/user

Traceroute چیست؟

Traceroute مسیر عبور بسته‌های شبکه را نمایش می‌دهد.

دستور:

user@linux-tutorials: ~/ch-09BASH
traceroute domain.com

این ابزار برای بررسی مشکلات شبکه بسیار کاربردی است.

Firewall چیست؟

Firewall یک سیستم امنیتی برای کنترل ارتباطات شبکه است.

وظایف Firewall:

  • اجازه دادن به ارتباطات مجاز
  • جلوگیری از ارتباطات غیرمجاز
  • افزایش امنیت سیستم

UFW چیست؟

UFW مخفف:

Uncomplicated Firewall

است.

این ابزار مدیریت Firewall را ساده‌تر می‌کند.

مشاهده وضعیت Firewall

user@linux-tutorials: ~/ch-09BASH
sudo ufw status

فعال کردن Firewall

user@linux-tutorials: ~/ch-09BASH
sudo ufw enable

باز کردن یک پورت

مثال:

user@linux-tutorials: ~/ch-09BASH
sudo ufw allow 22

این دستور اجازه اتصال SSH را فعال می‌کند.

مثال واقعی شبکه در لینوکس

فرض کنید یک وب‌سرور لینوکسی دارید.

مراحل ارتباط:

  1. کاربر دامنه را وارد می‌کند.
  2. DNS دامنه را به IP تبدیل می‌کند.
  3. درخواست به سرور ارسال می‌شود.
  4. Firewall درخواست را بررسی می‌کند.
  5. سرویس وب روی پورت 80 یا 443 پاسخ می‌دهد.
  6. اطلاعات به کاربر بازگردانده می‌شود.

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

شبکه پایه بسیاری از مهارت‌های حرفه‌ای است.

بدون شناخت شبکه، یادگیری موضوعاتی مانند:

  • مدیریت سرور
  • امنیت سایبری
  • DevOps
  • Cloud
  • زیرساخت

کامل نخواهد بود.

تمرین‌های فصل نهم

[01]مشاهده IP سیستم

user@linux-tutorials: ~/ch-09BASH
ip addr

[02]بررسی اتصال شبکه

user@linux-tutorials: ~/ch-09BASH
ping google.com

[03]مشاهده پورت‌های فعال

user@linux-tutorials: ~/ch-09BASH
ss -tuln

[04]بررسی DNS

user@linux-tutorials: ~/ch-09BASH
nslookup google.com

[05]بررسی Firewall

user@linux-tutorials: ~/ch-09BASH
sudo ufw status

جمع‌بندی فصل نهم

در این فصل یاد گرفتیم:

  • شبکه چیست.
  • IP چگونه کار می‌کند.
  • تفاوت IPv4 و IPv6 چیست.
  • DNS چه وظیفه‌ای دارد.
  • Port چیست.
  • TCP و UDP چه تفاوتی دارند.
  • SSH چگونه کار می‌کند.
  • چگونه وضعیت شبکه را بررسی کنیم.
  • چگونه Firewall را مدیریت کنیم.

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