در این درس میخوانید
یک سرور چگونه چند خدمت ارائه میکند؟
فرض کنید یک VPS هم وبسایت دارد و هم برای مدیریت، SSH ارائه میکند. آدرس IP به رسیدن بستهها به مقصد شبکه کمک میکند؛ پورت و پروتکل، خدمت موردنظر را مشخص میکنند. برای مثال SSH معمولاً TCP روی 22 و HTTPS معمولاً TCP روی 443 است. عدد واقعی میتواند با تنظیم سرویس فرق کند. رسیدن به یک IP بهمعنای آمادهبودن همهٔ خدمتهای آن نیست.
دامنه و DNS
نام دامنه برای انسان خواناتر از آدرس عددی است. DNS در این مسیر به پیدا کردن اطلاعات نام کمک میکند؛ رکورد A با IPv4 و AAAA با IPv6 مرتبط است. یک نام میتواند چند پاسخ داشته باشد و سرویسهای مختلف هم میتوانند با نامهای جدا ارائه شوند. تغییر رکورد DNS برنامه را نصب یا وبسرور را روشن نمیکند. کش و زمان نگهداری پاسخ نیز میتواند باعث شود تغییر نام بلافاصله در همهجا یکسان دیده نشود.
آدرس عمومی، خصوصی و localhost
- آدرس عمومی در صورت وجود مسیر و مجوزهای لازم میتواند از اینترنت قابل دسترسی باشد.
- آدرس خصوصی برای شبکههای داخلی است و برای دسترسی از اینترنت معمولاً به مسیر یا ترجمهٔ آدرس مناسب نیاز دارد.
- 127.0.0.1 و ::1 آدرسهای loopback همان دستگاه هستند؛ localhost در لپتاپ به VPS شما اشاره نمیکند.
- سرویس متصل به loopback ممکن است فقط از خود سرور دیده شود؛ این وضعیت الزاماً خطا نیست.
فرمانهای مشاهده روی ماشین خود
ip -brief address
ip route
ss -lntفرمان اول خلاصهٔ آدرس رابطها، دومی مسیرها و سومی سوکتهای TCP در حالت گوشدادن را نشان میدهد. آدرس دیدهشده داخل VPS لزوماً همان آدرس عمومی پنل نیست؛ برخی ارائهدهندگان از ترجمهٔ آدرس استفاده میکنند. از خروجی ss هم بهتنهایی نتیجه نگیرید پورت از اینترنت باز است؛ فایروال ماشین و شبکه میتوانند در مسیر باشند.
عیبیابی را از کدام لایه شروع کنیم؟
- نام مقصد: آیا دامنه درست نوشته شده و به مقصد مورد انتظار اشاره میکند؟
- مسیر شبکه: آیا اتصال از مبدأ به مقصد میرسد؟
- پورت و سرویس: آیا خدمت درست روی پورت مورد انتظار گوش میدهد؟
- هویت و مجوز: آیا میزبان معتبر و حساب و روش ورود مجاز هستند؟
- خود برنامه: آیا درخواست به برنامه رسیده ولی برنامه خطا میدهد؟
مثلاً Permission denied در SSH معمولاً شما را به بررسی حساب و کلید هدایت میکند، اما timeout بیشتر به بررسی مسیر و پورت نیاز دارد. ping فقط یک نوع آزمون ICMP است؛ ممکن است بستههای آن مسدود باشند، در حالی که HTTPS کار میکند. خاموشکردن فایروال برای هر خطا، تشخیص علت را بهتر نمیکند.
پشتیبان با کپی روی همان دیسک چه تفاوتی دارد؟
نسخهای در پوشهٔ دیگر همان VPS در برابر خرابی کامل همان دیسک کافی نیست. مشخص کنید چه دادهای، در چه بازهای، با چه زمان نگهداری و در کدام محل جدا ذخیره میشود. Snapshot ارائهدهنده هم بسته به روش و سیاست نگهداری، جای همهٔ انواع پشتیبان را نمیگیرد. برای پایگاه دادهٔ درحالکار، کپی تصادفی فایلها ممکن است سازگار نباشد و روش پشتیبان اختصاصی برنامه لازم شود.
تمرین کوچک ساخت و بازیابی آرشیو
این مثال فقط فایل تمرینی ساختهشده در خانهٔ کاربر را آرشیو میکند و برای پشتیبانگیری کامل سرور نیست. از نام تازهٔ پوشه استفاده کنید تا با فایلهای قبلی تداخل پیدا نکند.
mkdir -p ~/darsavand-backup-lab/source
cd ~/darsavand-backup-lab
printf "%s" "practice note" > source/note.txt
tar -czf practice.tgz source
tar -tzf practice.tgz
mkdir restored
tar -xzf practice.tgz -C restored
cmp source/note.txt restored/source/note.txtگزینهٔ c آرشیو میسازد، t محتوا را فهرست میکند و x استخراج میکند؛ f نام فایل و z فشردهسازی gzip را تعیین میکند. با C محل استخراج جدا انتخاب شده است. cmp در صورت یکسانبودن دو فایل معمولاً متنی چاپ نمیکند و وضعیت موفق برمیگرداند. در تمرین نام فایل را تغییر دهید و نتیجهٔ متفاوت را مشاهده کنید. برای بازیابی، آرشیو نامطمئن را روی مسیرهای سیستم استخراج نکنید.
پاسخ تمرین مفهومی
سایت با IP در دسترس است اما با نام دامنه نیست. بررسی نخست میتواند پاسخ نام و تنظیم دامنه باشد؛ این نشانه بهتنهایی همهٔ علتها را قطعی نمیکند، زیرا وبسرور و TLS هم به نام وابستهاند. در مقابل، ساخت یک فایل tgz بدون آزمایش استخراج فقط موفقیت ساخت آرشیو را نشان میدهد، نه کاملبودن طرح بازیابی سرویس.
پس از این دوره چه چیزی را باید بتوانید توضیح دهید؟
اکنون باید بتوانید فرق VPS و سیستمعامل، ترمینال و کلاینت SSH، کاربر و root، مجوز فایل، بسته و سرویس و نام و پورت را با مثال توضیح دهید. گام بعدی میتواند مدیریت یک ماشین آزمایشی، بهروزرسانی برنامهریزیشده و نوشتن راهنمای بازیابی همان پروژه باشد.
مطالب مرتبط و منابع انگلیسی
سرویس و لاگ: https://www.darsavand.com/resources/ubuntu-apt-systemd-services-logs-basics
سرور مجازی: https://www.darsavand.com/resources/what-is-vps-virtual-private-server
MDN، نام دامنه: https://developer.mozilla.org/en-US/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_domain_name
Ubuntu، برنامهٔ پشتیبان: https://ubuntu.com/server/docs/how-to/backups/
Ubuntu، آرشیو و بازیابی: https://ubuntu.com/server/docs/how-to/backups/back-up-using-shell-scripts/
راهنمای محلی ابزارهای شبکه: man ip و man ss
پیشنیاز و محیط اجرای مثالها
درس 10 از ۱۰ در مسیر مقدماتی لینوکس و مفاهیم سرور. درسهای VPS، ترمینال، SSH و سرویس را مرور کنید. مشاهدهٔ شبکه فقط روی ماشین خود و تمرین فایل فقط داخل پوشهٔ آزمایشی انجام شود؛ تغییر DNS و فایروال لازم نیست.
پیشرفت روی همین مرورگر ذخیره میشود.