תיעוד 151
תחילת העבודה
צרו Cloudflare Tunnel ופרסמו את היישום הראשון שלכם תוך פחות מ-5 דקות.
#דרישות מוקדמות
- חשבון Cloudflare
- דומיין ב-Cloudflare (נדרש כדי לפרסם יישומים)
- שרת או מכונה וירטואלית עם גישה לאינטרנט, שעליהם תתקינו את
cloudflared
טיפ
אם השרת שלכם נמצא מאחורי חומת אש מגבילה, ודאו שהוא יכול להגיע ל-Cloudflare בפורט 7844 לפני שממשיכים. ראו שגיאות חיבור.
#יצירת מנהרה
כדי ליצור Cloudflare Tunnel חדש:
- בלוח הבקרה של Cloudflare, עברו אל Networking > Tunnels. מעבר אל Tunnels
- בחרו Create Tunnel.
- הזינו שם למנהרה (לדוגמה,
production-webאוstaging-api). - בחרו Create Tunnel.
- תחת Setup Environment, בחרו את מערכת ההפעלה ואת הארכיטקטורה של השרת.
- העתיקו את פקודות ההתקנה שמופיעות תחת Install and Run והריצו אותן במסוף בשרת.
- אחרי שהמנהרה מתחברת, בחרו Continue.
המנהרה אמורה להופיע בדף Tunnels עם סטטוס Healthy.
צרו אסימון API עם ההרשאות הבאות:
סוג פריט הרשאה Account Cloudflare Tunnel Edit Zone DNS Edit צרו מנהרה:
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Create a Cloudflare Tunnel
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "api-tunnel", "config_src": "cloudflare" }'העתיקו את הערכים
idו-tokenמהתשובה. תצטרכו אותם כדי להגדיר ולהריץ את המנהרה.
#פרסום יישום
כדי להנגיש יישום מהאינטרנט, הוסיפו למנהרה נתיב של יישום מפורסם. נתיב המנהרה ממפה שם מארח ציבורי לשירות מקומי.
אם המקור כבר מגיש HTTPS או מפנה מ-HTTP אל HTTPS, ראו פתרון בעיות במקורות HTTPS כדי לבחור את Service URL ואת הגדרות המקור.
בלוח הבקרה של Cloudflare, עברו אל Networking > Tunnels ובחרו את המנהרה שלכם. מעבר אל Tunnels
תחת Routes, בחרו Add route.
בחרו Published application.
תחת Hostname, הזינו תת-דומיין ובחרו דומיין מהתפריט הנפתח.
עבור Service URL, הזינו את הכתובת המקומית ואת הפורט של היישום.
לדוגמה, אם שרת האינטרנט רץ על אותה מכונה כמו
cloudflared:- HTTP בפורט
80:http://localhost:80 - HTTPS בפורט
443:https://localhost:443
אם שרת האינטרנט רץ על מכונה אחרת:
http://192.0.2.1:80אם אישור המקור מכסה את שם המארח הציבורי ולא את כתובת השירות, הגדירו את Origin Server Name לשם המארח של האישור והשאירו את Disable TLS certificate verification כבוי. ראו פתרון בעיות במקורות HTTPS להגדרה המלאה.
- HTTP בפורט
בחרו Add route.
הגדירו את כללי ה-ingress של המנהרה:
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Update Tunnel configuration
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/configurations" \ --request PUT \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "config": { "ingress": [ { "hostname": "app.example.com", "service": "http://localhost:80", "originRequest": {} }, { "service": "http_status:404" } ] } }'כללי ה-ingress חייבים לכלול כלל catch-all בסוף. בדוגמה זו,
cloudflaredיגיב בקוד סטטוס 404 כאשר הבקשה לא תואמת לאף שם מארח.צרו רשומת DNS ליישום:
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
DNS Write
Create DNS Record
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "type": "CNAME", "proxied": true, "name": "app.example.com", "content": "<TUNNEL_ID>.cfargotunnel.com" }'התקינו את
cloudflaredבשרת והריצו את המנהרה באמצעות ה-tokenשהתקבל ביצירת מנהרה:הורידו והתקינו את
cloudflared.הריצו את הפקודה הבאה:
sudo cloudflared service install <TUNNEL_TOKEN>הורידו והתקינו את
cloudflared.פתחו את Command Prompt כמנהל.
הריצו את הפקודה הבאה:
cloudflared.exe service install <TUNNEL_TOKEN>הורידו והתקינו את
cloudflared.פתחו חלון מסוף והריצו את הפקודה הבאה:
sudo cloudflared service install <TUNNEL_TOKEN>פתחו חלון מסוף.
הריצו את הפקודה הבאה:
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <TUNNEL_TOKEN>
היישום שלכם פעיל עכשיו בשם המארח שהגדרתם. Cloudflare מעבירה את התעבורה דרך הרשת שלה באופן אוטומטי, ומחילה מטמון CDN, WAF והגנת DDoS.
הערה
שירותים שאינם HTTP (SSH, TCP, RDP) דורשים cloudflared בצד הלקוח. ראו את הפניה לפרוטוקולים לפרטים.
#Quick Tunnels (פיתוח)
Quick Tunnels חושפים שירות HTTP מקומי דרך כתובת trycloudflare.com זמנית. אפשר ליצור כתובת ציבורית או להגביל גישה לפי דוא"ל בלי חשבון Cloudflare.
כדי לשתף שירות מקומי, ראו Quick Tunnels.
#השלבים הבאים
- ניתוב: הגדרת רשומות DNS, מאזני עומסים ותמיכה בפרוטוקולים.
- הגדרה: פריסת עותקים, ניהול אסימונים וכיוון ביצועים.
- מדריכים: פריסה ב-Kubernetes, ב-AWS, ב-GCP, ב-Terraform ועוד.
- פתרון בעיות: פתרון שגיאות נפוצות ובעיות קישוריות.