Cloudflare Tunnel, yerel sunucularınızı internete güvenli bir şekilde açmanın modern bir yoludur.
Cloudflare Tunnel, yerel sunucularınızı internete güvenli bir şekilde açmanın modern bir yoludur. Geleneksel port yönlendirme veya VPN’lere alternatif olarak, Cloudflare’in global ağı üzerinden outbound-only bağlantılar kurar ve inbound trafiği engelleyerek sunucunuzu doğrudan maruz bırakmaz. Bu yöntem, özellikle geliştiriciler, sistem yöneticileri ve küçük ekipler için idealdir; çünkü dinamik IP’ler, firewall kısıtlamaları veya NAT traversali gibi sorunları ortadan kaldırır. Argo Tunnel olarak da bilinen bu özellik, Zero Trust prensipleriyle entegre çalışır ve DDoS koruması, WAF gibi Cloudflare servislerini otomatik olarak devreye sokar. Bu makalede, adım adım kurulum, yapılandırma ve en iyi uygulamaları ele alarak yerel bir web sunucusunu nasıl erişilebilir hale getireceğinizi anlatacağız.
Cloudflare Tunnel, cloudflared adlı hafif bir daemon aracılığıyla çalışır. Bu daemon, sunucunuzdan Cloudflare’e kalıcı bir outbound tünel oluşturur ve gelen trafiği bu tünel üzerinden yönlendirir. Inbound port açmaya gerek kalmadan, subdomain’ler üzerinden erişim sağlar. Avantajları arasında sıfır konfigürasyonlu DDoS koruması, otomatik SSL/TLS sonlandırma ve global edge caching yer alır. Örneğin, bir geliştirme ortamında localhost:3000’i tunnel.example.com olarak expose etmek, üretim benzeri bir deneyim sunar.
Kurumsal ortamlarda, bu çözüm erişim kontrollerini Zero Trust ile entegre eder. Kullanıcı kimlik doğrulaması, IP kısıtlamaları veya cihaz duruşu kontrolleri ekleyerek yalnızca yetkili erişime izin verir. Maliyet açısından da verimlidir; ücretsiz planda sınırsız tünel desteklenir, ancak gelişmiş özellikler için Teams veya Enterprise planı gerekebilir. Pratikte, bu yöntem bulut geçişlerinde veya hibrit altyapılarda sıkça tercih edilir, çünkü sunucu IP’sini gizler ve atak yüzeyini minimize eder.
Kurulum sürecine başlamadan önce, bir Cloudflare hesabı oluşturun ve domain’inizi ekleyin. Dashboard üzerinden Zero Trust bölümüne gidin ve Access > Tunnels sekmesini seçin. İlk olarak, cloudflared’i indirin: Linux için wget ile https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 ve chmod +x ile çalıştırılabilir hale getirin. Windows veya macOS için de benzer şekilde binary indirin.
Cloudflare dashboard’unda domain’inizi ekledikten sonra, DNS ayarlarını proxy moduna (turuncu bulut) alın. Zero Trust > Networks > Tunnels’a tıklayın ve “Create a tunnel” butonuna basın. Tunnel bir isim verin, örneğin “local-dev-server”. Bu adımda, cloudflared’in authentication token’ını otomatik oluşturur. Token’ı kopyalayın; bu, daemon’un Cloudflare ile güvenli bağlanması için zorunludur. Domain’inizin public hostname’ini ekleyin, örneğin dev.example.com ve hedef service’i http://localhost:8080 olarak belirtin. Bu konfigürasyon, trafiğin tünel üzerinden yönlendirilmesini sağlar ve otomatik SSL uygular.
Sunucunuzda cloudflared binary’sini /usr/local/bin’e taşıyın. Authentication için cloudflared tunnel login komutunu çalıştırın veya dashboard’dan aldığınız token ile cloudflared tunnel run –token emrini kullanın. Kalıcı çalıştırma için systemd service oluşturun: /etc/systemd/system/cloudflared.service dosyasına [Unit], [Service] ve [Install] bölümlerini ekleyin; ExecStart=/usr/local/bin/cloudflared tunnel –config /etc/cloudflared/config.yml run local-dev-server şeklinde tanımlayın. systemctl enable cloudflared ile başlatın. Log’ları journalctl -u cloudflared ile izleyin; başarılı bağlantıda “Registered tunnel connection” mesajını göreceksiniz.
/etc/cloudflared/config.yml dosyasını oluşturun. İçeriğe tunnel: local-dev-server, credentials-file: /etc/cloudflared/.json ve ingress kurallarını ekleyin: – hostname: dev.example.com, service: http://localhost:8080; – service: http_status:404. Bu YAML, trafiği doğru yönlendirir ve fallback sağlar. Değişiklik sonrası cloudflared service restart yapın. Çoklu servis için birden fazla ingress kuralı tanımlayın, örneğin SSH için stream protokolüyle tcp://localhost:22 ekleyin.
Güvenlik için Zero Trust Access politikaları uygulayın: Dashboard’da Access > Applications > Add an application > Self-hosted ile tünel hostname’ini seçin. Politikalar ekleyin, örneğin yalnızca belirli email domain’lerinden erişim veya MFA zorunluluğu. WAF kurallarını etkinleştirerek SQL injection veya XSS ataklarını bloklayın. Logları Cloudflare dashboard’undan izleyin; analytics sekmesinde trafik paternlerini analiz edin. En iyi uygulama olarak, tünelleri named tunnel’lar halinde gruplayın ve config.yml’de no-autoupdate: false ile otomatik güncellemeleri etkinleştirin.
Sorun gidermede, bağlantı hataları için cloudflared tunnel info ile durum kontrol edin. “Connection refused” durumunda firewall’u kontrol edin (ufw allow out 443/tcp gibi). DNS propagation gecikmeleri için 5-10 dakika bekleyin. Performans sorunlarında Argo Smart Routing’i etkinleştirin; bu, global ağı optimize eder. Hata loglarında “QUIC” protokolü önerileri varsa, config.yml’e protocol: quic ekleyin. Bu adımlar, %99.9 uptime sağlar ve kesintileri minimize eder.
Cloudflare Tunnel ile yerel sunucunuzu internete açmak, güvenli ve ölçeklenebilir bir çözüm sunar. Bu rehberi takip ederek dakikalar içinde üretim hazır bir erişim sağlayabilirsiniz. Düzenli güncellemeler ve monitoring ile altyapınızı güçlendirin; böylece geliştirme süreçlerinizi hızlandırın ve riskleri azaltın.