تصویر مفهومی آموزش Access و Tunnel در فضای آکادمی ویونیکس

WIUNIX ACADEMY

آموزش Cloudflare Tunnel و Access برای وب‌اپ داخلی در Ubuntu و Debian

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

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

آموزش متناسب با محیط تو

کجا اجرا می‌کنی؟

سیستم‌عامل و نسخه را انتخاب کن تا مراحل، دستورها و راه‌حل‌ها برای همان محیط نمایش داده شوند.

Debian 13بررسی‌شده با مستندات رسمی ·

آموزش متناسب با مقادیر تو

تنظیمات این آموزش

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

آی‌پی، دامنه یا پورت مثال‌ها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای به‌روز‌شده را کپی کن.

تنظیم مقادیر برای محیط من8 مقدار قابل‌تغییر

از اینجا شروع کن

در پایان چه چیزی خواهی داشت؟

وب‌اپی با origin محلی، توکن محافظت‌شده و دسترسی اثبات‌شده برای هویت مجاز و غیرمجاز.

01HTTPS · app.example.comمرورگر کاربر
02Cloudflare Accessسیاست هویت → تونل خروجی
03127.0.0.1:8080origin همان سرور
سیستم‌عامل‌ها و نسخه‌های پوشش‌داده‌شده

بازبینی ۲۰۲۶-۱۰-۲۰؛ مسیرهای سیستم‌عامل مستندمحورند و نصب کامل انجام نشده است. پاسخ دقیق origin لوپ‌بک، دریافت اعتبارنامهٔ خصوصی با systemd و کاربر بدون امتیاز، و برابری بایت‌های بکاپ و بازیابی در محیط جدا با kernel6.8 و systemd255 واقعاً بررسی شد. حساب Cloudflare، تونل لبه، QUIC، انتشار DNS، MFA و پذیرش یا رد هویت‌ها آزمایش نشده‌اند؛ این‌ها گام‌های تأیید استقرار شما هستند. سرویس تولید، فایروال و بستهٔ میزبان تغییر نکرد.

قبل از شروع

  • سرور تازهٔ amd64 یا arm64 با systemd و دسترسی sudo و کنسول مستقل.
  • دامنهٔ فعال در Cloudflare، نام میزبان استفاده‌نشده و امکان ساخت Access و تونل.
  • هویت آزمایشی مجاز و غیرمجاز، DNS و خروجی شبکهٔ موردتأیید، مخزن امن توکن.

دسترسی به وب‌اپ داخلی، پس از احراز هویت

قرار است یک وب‌سرویس آزمایشی روی همان سرور کانکتور بسازید و آن را با نام app.example.com فقط در اختیار کاربران مجاز قرار دهید. این راهنما برای مدیر سروری است که با DNS، سرویس‌های لینوکس و سامانهٔ هویت آشناست. حدود ۵۰ دقیقه زمان، به‌علاوهٔ انتظار برای DNS و گواهی در نظر بگیرید. تونل مسیر ارتباط را می‌سازد؛ تعیین مجوز ورود بر عهدهٔ Access است. مجوزهای خود برنامه و بکاپ همچنان لازم‌اند.

سه مرز متفاوت در مسیر درخواست

مرورگر از HTTPS به لبهٔ Cloudflare وصل می‌شود. پس از بررسی هویت و سیاست دسترسی، درخواست از تونل رمزگذاری‌شده به کانکتور می‌رسد. آخرین بخش مسیر، HTTP روی لوپ‌بک همان سرور و پورت 8080 است؛ نه پورت‌فوروارد روتر لازم است و نه شنوندهٔ عمومی روی origin. دادهٔ برنامه و اطلاعات هویت از Cloudflare می‌گذرد؛ شرایط سرویس، دسترس‌پذیری و الزامات نگهداری داده را پیش از استفاده بررسی کنید. این آموزش راه‌اندازی VPN عمومی، شبکهٔ خصوصی، SSH یا WARP نیست.

مقادیر عمومی را پیش از کپی تنظیم کنید

نامی تازه و استفاده‌نشده، با یک زیردامنه در دامنهٔ تحت مدیریت Cloudflare انتخاب کنید. تغییر نام میزبان، پورت‌ها و پوشه‌ها باید از همین تنظیمات انجام شود تا متن و فایل‌ها هماهنگ بمانند. آدرس لوپ‌بک و پورت ارتباطی ۷۸۴۴ ثابت‌اند. پورت‌های 8080 و 20241 باید آزاد و متفاوت باشند. پوشه‌های /srv/academy-origin، /etc/cloudflared-academy و /var/backups/academy-tunnel باید تازه، مستقل و بیرون از پوشهٔ برنامه‌های دیگر باشند. مقادیر و پیشرفت سفارشی فقط در sessionStorage همین تب، زبان و محیط می‌مانند؛ پیشرفت مثال پیش‌فرض در localStorage ذخیره می‌شود. لینک اشتراک‌گذاری تنظیمات شما را نمی‌فرستد. این تغییرات به معنی آزموده‌بودن استقرار شما نیست. توکن و رمز را اینجا وارد نکنید. مسیر پوشه‌ها باید مطلق و با / شروع شود، نه میان‌بر پوشهٔ خانگی. مسیر تودرتوی نشانه زیر ریشهٔ اختصاصی ساخته می‌شود و نباید با نام یک پوشه برخورد کند.

01

قدم بعدی

سرور تازه و پورت‌های آزاد را بررسی کنید

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

Bash

محل اجرا در توضیح همین گام

cat /etc/os-release
dpkg --print-architecture
timedatectl status
systemctl list-unit-files 'cloudflared*' 'academy-origin*'
sudo ss -lntup
sudo ls -ld '/srv/academy-origin' '/etc/cloudflared-academy' '/var/backups/academy-tunnel'
از کجا بدانم درست انجام شد؟

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

02

قدم بعدی

اول Access را بسازید، بعد مسیر عمومی را

در Cloudflare One، تیم و روش ورود سازمان خود را آماده کنید. از Access controls و Applications، گزینهٔ Create new application و سپس Self-hosted and private و Add public hostname را انتخاب کنید. نام برنامه را Academy private web، زمان نشست را یک ساعت و میزبان را app.example.com بگذارید؛ تمام میزبان باید پوشش داده شود، بدون شرط مسیر. یک سیاست Allow فقط برای هویت یا گروه آزمایشی مشخص ذخیره کنید. اگر سرویس هویت سازمان MFA دارد، آن را همان‌جا الزام کنید. کد یک‌بارمصرف ایمیلی فقط دسترسی به صندوق را ثابت می‌کند و به‌تنهایی ادعای MFA نیست. Everyone، Bypass و Service Auth برای این تمرین انسانی مناسب نیستند. یک کاربر مجاز و یک کاربر خارج از فهرست لازم دارید؛ محدودیت و هزینهٔ پلن فعلی را هم پیشاپیش ببینید.

از کجا بدانم درست انجام شد؟

برنامهٔ Access ذخیره شده و تمام app.example.com را پوشش می‌دهد؛ مجوز فقط به گروه مشخص داده شده است.

03

قدم بعدی

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

در داشبورد Cloudflare از Networking و Tunnels، تونل academy-web را با کانکتور cloudflared بسازید. فعلاً مسیر عمومی به آن ندهید. بخش Add a replica فرمان اتصال و توکن را نشان می‌دهد؛ فرمان پیشنهادیِ حاوی توکن را اجرا نکنید. فقط مقدار توکن را در مخزن امن اعتبارنامه نگه دارید تا بعداً در ویرایشگر محافظت‌شده وارد شود. این توکن اجازهٔ اضافه‌شدن کانکتور به تونل است، نه مجوز عبور کاربر از Access. در این روش، گواهی login، کلید API حساب یا فایل اعتبارنامهٔ تونل محلی لازم ندارید.

از کجا بدانم درست انجام شد؟

تونل academy-web بدون مسیر عمومی ساخته شده و توکن در تاریخچهٔ ترمینال نیست.

همهٔ آموزش‌های آکادمی ↗