← شروع آموزش

WIUNIX ACADEMY

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

صفحهٔ 4 از 5؛ مراحل قبلی و پیش‌نیازها را پیش از ادامه مرور کن.

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

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

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

Ubuntu 26.04 LTSبررسی‌شده با مستندات رسمی ·

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

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

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

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

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

قدم بعدی

مانیتورینگ را عمومی نکنید

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

Bash

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

curl --fail --silent --show-error --noproxy '*' http://127.0.0.1:20241/metrics
sudo ss -lntp 'sport = :20241'
از کجا بدانم درست انجام شد؟

متریک فقط محلی و روی 127.0.0.1:20241 است و مسیر عمومی ندارد.

عیب را در همان لایه پیدا کنید

عیب‌یابی را از پاسخ محلی به کانکتور، مسیر عمومی و سپس هویت ادامه دهید. اگر کنترل امنیتی شکست خورد، مسیر را بسته نگه دارید. حذف Access راه‌حل ۵۰۲ نیست و Everyone راه‌حل کاربر ردشده نیست. پنل‌های بعدی فقط برای مشاهده‌اند؛ خروجی ممکن است جزئیات خصوصی عملیات داشته باشد.

کانکتور سالم است اما ۵۰۲ دارید

روی سرور، پاسخ و شنوندهٔ محلی را با Service URL داشبورد تطبیق دهید. Connection refused معمولاً از پورت یا آدرس اشتباه یا توقف origin است. لوپ‌بک کانتینر با میزبان یکی نیست؛ در این آموزش هر دو پردازه سرویس میزبان‌اند. برای origin واقعی HTTPS، گواهی مورداعتماد و نام و CA صحیح لازم است؛ بررسی گواهی را خاموش نکنید. پیش از جایگزینی نمونه، مستند رسمی redirect و Host header را بخوانید.

Bash
sudo systemctl is-active academy-origin.service
curl --fail --silent --show-error --noproxy '*' http://127.0.0.1:8080/health.txt
sudo ss -lntp 'sport = :8080'

خطای ۱۰۳۳ یا کانکتور قطع‌شده

DNS، ساعت و لاگ کانکتور را ببینید. خطای ۱۰۳۳ یعنی کانکتور سالمی برای مسیر وجود ندارد؛ با ۵۰۲ origin متفاوت است. فهرست مقصدهای رسمی را با مسئول شبکه بررسی کنید. نتیجهٔ مثبت netcat در UDP، برقراری QUIC را ثابت نمی‌کند. پورت ورودی باز نکنید و فایروال را خاموش نکنید. مسدودی صرف UDP ممکن است با auto و HTTP/2 روی TCP۷۸۴۴ جبران شود؛ با بسته‌بودن هر دو مسیر، تونل کار نمی‌کند.

Bash
getent ahostsv4 region1.v2.argotunnel.com
dig SRV _v2-origintunneld._tcp.argotunnel.com
timedatectl status
sudo journalctl -u cloudflared-academy.service --since "10 minutes ago" --no-pager

حلقهٔ ورود، رد کاربر یا نمایش عمومی نشانه

پروفایل تمیز مرورگر، نام میزبان ذخیره‌شده، تیم و AUD، عضویت گروه و رویداد تصمیم Access را بررسی کنید. ورود معتبر الزاماً به معنی عضویت در گروه مجاز نیست. در خطای JWT ساعت و دسترسی HTTPS به تیم را ببینید؛ کوکی و توکن را لاگ نکنید. نشست قدیمی نتیجه را گمراه می‌کند. اگر کاربر خارج‌شده نشانه را می‌بیند، اول مسیر عمومی را حذف کنید؛ پنهان‌کردن لینک ورود کافی نیست. در طول اصلاح، origin لوپ‌بک و برنامهٔ Access باقی می‌مانند.

Bash
curl --silent --show-error --max-time 20 --dump-header - 'https://app.example.com/health.txt'
timedatectl status

سرویس به فایل اعتبارنامه دسترسی ندارد

بدون نمایش محتوا، فقط مشخصات فایل و وضعیت سرویس را ببینید. LoadCredential باید فایل انتخابی را بخواند و ExecStart از پوشهٔ خصوصی اعتبارنامه استفاده کند، نه مسیر اصلی که فقط root می‌خواند. دسترسی خواندن عمومی ندهید و توکن را به متن سرویس نبرید. اگر systemd محیط شما تغییرکرده یا این قابلیت را ندارد، با طراحی بررسی‌شدهٔ مدیریت راز تطبیق دهید؛ مجوز فایل را ضعیف نکنید.

Bash
sudo test -s '/etc/cloudflared-academy/token'
sudo stat -c '%a %U %G' '/etc/cloudflared-academy/token'
sudo systemctl status cloudflared-academy.service --no-pager
همهٔ آموزش‌های آکادمی ↗