Bu rehberde OpenWRT yüklü modem/router üzerinde Cloudflare Argo Tunnel (cloudflared) kurulumunu ve cihaz yeniden başlasa bile bağlantının kopmamasını sağlayan yapılandırmayı ele alıyoruz.
Amaç basit:
Router yeniden başladığında ya da internet kesilip geldiğinde Cloudflare Tunnel’in otomatik olarak tekrar ayağa kalkması ve uzaktan erişimin kesilmemesi.
Ayrıca
Cloudflare hesabınızın olması ve bir domain eklemiş olmanız gerekir. Domain ekleme işlemi Cloudflare paneli üzerinden yapılır.
OpenWRT cihazınıza erişim için SSH bağlantısı gereklidir. Bunun için PuTTY veya WinSCP kullanılabilir.
WinSCP indir: https://winscp.net/eng/download.php
Cloudflared için örnek konfigürasyon dosyası gerekiyorsa:
https://github.com/frudotz/openwrt-cloudflare-tunnel/releases/download/Cloudflared/cloudflared.md
System > Software bölümüne girin.
“Update Lists” ile paket listesini güncelleyin.
Arama kısmına cloudflared yazın ve paketi yükleyin.
Kurulum yaklaşık birkaç MB’dır.
Kurulum tamamlandıktan sonra SSH bağlantısı açın ve servisin çalışıp çalışmadığını kontrol etmek için:
komutunu çalıştırın.
Ekranda log akışı görünecektir. Bir süre sonra CTRL + C ile çıkabilirsiniz.
Bu adım, binary’nin doğru çalıştığını doğrulamak içindir.
Zero Trust paneline gidin
Access > Tunnels bölümünü açın
“Create a tunnel” seçeneğini kullanarak yeni bir tunnel oluşturun.
Tunnel oluşturduktan sonra size bir token verilecektir. Bu token, cihazın Cloudflare’e bağlanmasını sağlar.
OpenWRT cihazınıza WinSCP ile bağlanın ve şu dizine gidin:
Burada cloudflared servis dosyasını düzenlemeniz gerekiyor.
Mevcut içeriği temizleyip Cloudflare’in verdiği yapılandırmayı yapıştırın.
Önemli nokta:
YOUR_TUNNEL_TOKEN kısmına kendi tunnel token’ınızı eklemelisiniz.
Değişiklikten sonra SSH üzerinden servisi yeniden başlatın:
Birkaç dakika içinde Cloudflare panelinde cihazınız “Active” olarak görünecektir.
Cloudflare panelinde:
Public Hostname bölümüne girin.
Burada dış dünyaya açmak istediğiniz domaini tanımlayın.
Örnek:
Örnek:
İsterseniz farklı servisler için port ekleyerek çoklu yayın yapabilirsiniz.
Cloudflare arayüzünde:
Configure > Public Hostname > Add a Public Hostname
Buradan yeni bir alt alan adı ekleyerek farklı cihazlara yönlendirme yapılabilir.
Örnek:
Eğer servis doğru şekilde init script ile entegre edilmezse:
Kaynak: Github - frudotz
Amaç basit:
Router yeniden başladığında ya da internet kesilip geldiğinde Cloudflare Tunnel’in otomatik olarak tekrar ayağa kalkması ve uzaktan erişimin kesilmemesi.
Önemli Not (Güncel Durum)
Güncelcloudflared sürümlerinde eski konfigürasyon uyumsuzluklarının büyük kısmı giderilmiştir.Ayrıca
luci-app-cloudflared paketi ile OpenWRT arayüzünden yönetim de mümkün hale gelmiştir.Gereksinimler ve Hazırlık
Başlamadan önce:Cloudflare hesabınızın olması ve bir domain eklemiş olmanız gerekir. Domain ekleme işlemi Cloudflare paneli üzerinden yapılır.
OpenWRT cihazınıza erişim için SSH bağlantısı gereklidir. Bunun için PuTTY veya WinSCP kullanılabilir.
WinSCP indir: https://winscp.net/eng/download.php
Cloudflared için örnek konfigürasyon dosyası gerekiyorsa:
https://github.com/frudotz/openwrt-cloudflare-tunnel/releases/download/Cloudflared/cloudflared.md
OpenWRT Üzerine cloudflared Kurulumu
OpenWRT arayüzünden:System > Software bölümüne girin.
“Update Lists” ile paket listesini güncelleyin.
Arama kısmına cloudflared yazın ve paketi yükleyin.
Kurulum yaklaşık birkaç MB’dır.
Kurulum tamamlandıktan sonra SSH bağlantısı açın ve servisin çalışıp çalışmadığını kontrol etmek için:
cloudflaredkomutunu çalıştırın.
Ekranda log akışı görünecektir. Bir süre sonra CTRL + C ile çıkabilirsiniz.
Bu adım, binary’nin doğru çalıştığını doğrulamak içindir.
Cloudflare Zero Trust Üzerinde Tunnel Oluşturma
Cloudflare paneline giriş yapın:Zero Trust paneline gidin
Access > Tunnels bölümünü açın
“Create a tunnel” seçeneğini kullanarak yeni bir tunnel oluşturun.
Tunnel oluşturduktan sonra size bir token verilecektir. Bu token, cihazın Cloudflare’e bağlanmasını sağlar.
cloudflared Connector (Bağlantı) Kurulumu
Tunnel oluşturma ekranında verilen kurulum komutunu alın.OpenWRT cihazınıza WinSCP ile bağlanın ve şu dizine gidin:
/etc/init.d/Burada cloudflared servis dosyasını düzenlemeniz gerekiyor.
Mevcut içeriği temizleyip Cloudflare’in verdiği yapılandırmayı yapıştırın.
Önemli nokta:
YOUR_TUNNEL_TOKEN kısmına kendi tunnel token’ınızı eklemelisiniz.
Değişiklikten sonra SSH üzerinden servisi yeniden başlatın:
service cloudflared restartBirkaç dakika içinde Cloudflare panelinde cihazınız “Active” olarak görünecektir.
Tunnel Route (Yönlendirme) Ayarları
Tunnel aktif olduktan sonra yönlendirme kısmına geçebilirsiniz.Cloudflare panelinde:
Public Hostname bölümüne girin.
Burada dış dünyaya açmak istediğiniz domaini tanımlayın.
Örnek:
- main.domain.com → modem arayüzü
- router.domain.com → router yönetim paneli
Örnek:
http://192.168.1.1:80İsterseniz farklı servisler için port ekleyerek çoklu yayın yapabilirsiniz.
Birden Fazla Cihazı Yayına Alma
Tunnel içine birden fazla hostname ekleyebilirsiniz.Cloudflare arayüzünde:
Configure > Public Hostname > Add a Public Hostname
Buradan yeni bir alt alan adı ekleyerek farklı cihazlara yönlendirme yapılabilir.
Örnek:
- router.domain.com → modem
- nas.domain.com → NAS cihazı
- kamera.domain.com → güvenlik sistemi
Sistem Yeniden Başlatıldığında Çalışma Problemi
Bu kurulumun kritik noktası burasıdır.Eğer servis doğru şekilde init script ile entegre edilmezse:
- Router reboot sonrası tunnel kapanır
- Cloudflare bağlantısı düşer
- Uzaktan erişim kaybolur
- cloudflared servisi init.d altında doğru tanımlanmalı
- restart komutu çalışmalı
- boot sırasında otomatik başlatma aktif olmalı
Kaynak: Github - frudotz