CloudFlare Tunnel ile Evde Server Kurma
CloudFlare Tunnel ile Raspberry PI5 evde server nasıl kurulur onu sizlere göstereceğim. Bize gerekli olanlar şunlardır:
- Raspberry PI5 Kartı
- Domain Adresi
Domain adresini satın alıp CloudFlare’a kaydetmeniz gerekmektedir. Ben domain ismimi natro.com’dan aldım ve daha sonra dns ayarlarını CloudFlare DNS’leri olacak şekilde ayarladım. Sizin de bu yazıdakileri yapabilmeniz için domain isminizi satın alıp CloudFlare’a kaydetmeniz gerekmektedir.
İlk olarak Raspberry PI5 kartına işletim sistemi kurulması gerekmektedir. Bu işlem yapıldıktan sonra aşağıdaki talimatlarımı takip ediniz.
Bu yazımdaki talimatları yaparken yabancı kaynaklardan yardım alarak yaptım. pimylifeup’ın bu yazısına giderek orjinal talimatlara bakabilirsiniz.
Tailscale ile Raspberry PI Bağlantısı
SSH ile Raspberry PI Bağlantısı
Eğer evinizdeki modemin arayüzüne girip pi5’in hangi ip adresine sahip olduğunu bulabiliyorsanız SHH ile bağlanıp gerekli talimatları takip edebilirsiniz.
Raspberry PI5 kartını yerel ağda statik bir IP vermeniz sizin için rahatlık olacaktır.
ssh <pi_isminiz>@192.168.x.x
- pi_isminiz: Raspberry PI5 kartını kurarken verdiğiniz isim
- 192.168.x.x: Raspberry PI5 kartının IP adresi
Bu komut ile beraber uzaktan terminal üzerinden Raspberry PI5 kartına bağlanabilirsiniz.
Tailscale ile Raspberry PI Bağlantısı
Eğer uzaktan da Raspberry PI5 kartına bağlanmak istiyorsanız Tailscale kurulumunu yapmalısınız.
İlk olarak bilgisayarınızdan Tailscale kurulumunu yapınız. Tailscale adresinden bilgisayarınıza indirip kurmalısınız.
Kayıt olup giriş yaptıktan sonra Raspberry PI5 kartınızda da kurulum yapmanız lazım.
sudo apt-get install tailscale
sudo tailscale up
Bu komutları girdikten sonra size bir link ile bağlantı yapmanızı isteyecektir. Raspberry PI ile de giriş yaptıktan sonra Tailscale’in size vermiş olduğu public ip adresi ile bağlantı kurabilirsiniz.
ssh <pi_isminiz>@<public_ip_adresi>
Böylece evinizde PI kartınızı açık bırakıp, işlemlerinizi uzaktan yapabilirsiniz.
CloudFlare Kurulumu
Raspberyy PI’a bağlanma kısmını halletiğimize göre artık işlemlerimize geçebiliriz.
- Raspberyy PI Güncelleme:
İlk olarak Raspberry PI5 kartını güncelleyelim, adettendir.
sudo apt update && sudo apt upgrade -y
- curl ve lsb_release kurulumu:
sudo apt install curl lsb-release -y
Bu komut ile şunları yapmış oluruz:
- curl: URL üzerinden veri tranferi yapmamızı sağlayan komut satırı aracı. Sunucudan veri almayı veya sunucuya veri göndermeyi sağlar.
- lsb_release: Linux dağıtımını ve sürümünü belirlemeyi sağlayan komut satırı aracı.
- CloudFlare Deposunu Ekleme:
curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
Bu komut ile Cloudflare deposunun GPG güvenlik anahtarını indirip kaydederiz.
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
Bu komut ile Cloudflare deposunun adresini kaydederiz.
Artık adetten olan update işlemini yaparak depoyu güncelleriz.
sudo apt update
- CloudFlare Kurulumu:
sudo apt install cloudflared -y
Bu komut ile Cloudflare CLI’yı kurmuş oluruz. Cloudflare CLI, Cloudflare Tunnel’ı kurmak için kullanılır.
- CloudFlare Tunnel Kurulumu:
sudo cloudflared tunnel login
Bu komut ile Cloudflare Tunnel’ı kurmuş oluruz.
Please open the following URL and log in with your Cloudflare account:
https://dash.cloudflare.com/argotunnel........
Leave cloudflared running to download the cert automatically.
Burda Cloudflare’a giriş yapmalısınız.
Eğer girişi başarılı bir şekilde yaparsanız terminalde şu şekil bir çıktı alacaksınız:
You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to:
/home/<pi_isminiz>/.cloudflared/cert.pem
- CloudFlare Tunnel Kurulumu:
sudo cloudflared tunnel create TUNNEL_ISMINIZ
Bu komut ile Cloudflare Tunnel’ı kurmuş oluruz.
Daha sonra size terminalden ID verecektir, bunu saklayın. Daha sonra bunu kullanacağız.
Şimdi tünele DNS kaydı eklemeliyiz:
cloudflared tunnel route dns TUNNEL_ISMINIZ DOMAIN_ISMINIZ
Eğer komut doğru bir şekilde çalışırsa şunun gibi bir çıktı alacaksınız:
2022-10-18T04:54:54Z INF Added CNAME DOMAIN_ISMINIZ which will route to this tunnel tunnelID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Buradaki tunnelID kısmını da kaydetmeniz gerekmektedir.
Şu anda domain ismimizi Raspberry PI5 kartımıza yönlendirme yapmış olduk.
Geriye tünelin, Raspberry PI kartının yönlendirmeye cevap verecek servisine gitmesi gerekmektedir.
cloudflared tunnel run --url localhost:80 TUNNEL_ISMINIZ
Bu komut tüneli belirtilen porta yönlendirir.
- Tüneli Servis Olarak Başlatma:
Tünelin Raspberry PI açıldığında otomatik olarak başlamasını sağlamamız lazım.
sudo nano ~/.cloudflared/config.yml
config dosyasına açtıktan sonra şunları yazmamız gereklidir:
tunnel: TUNNEL_ISMINIZ
credentials-file: /home/<pi_isminiz>/.cloudflared/<UUID>.json
ingress:
- hostname: <domain_isminiz>
service: http://localhost:80
- service: http_status:404
- TUNNEL_ISMINIZ: tünelin ismi
- UUID: tuneli oluşturduktan sonra size verilen UUID’dir
- <pi_isminiz>: Raspberry PI5 kartının ismi
- DOMAIN_ISMINIZ: domain ismi
CTRL + X ile kaydedin.
Config ayarını kullanarak Cloudflared’i bir sistem servisi olarak kaydetmek için aşağıdaki komutu kullanmalısınız:
sudo cloudflared --config ~/.cloudflared/config.yml service install
Servis kaydedildikten sonra otomatik başlamasını istiyorsanız aşağıdaki komutu kullanmalısınız:
sudo systemctl enable cloudflared
Servisi başlatmak için:
sudo systemctl start cloudflared
Hayırlı olsun, artık Raspberry PI5 kartınızda Cloudflare Tunnel’ı otomatik olarak başlayacak şekilde kurulumu tamamladınız.
İsterseniz artık 80 portuna WEB Host işlemlerini yaparak kendi web server’ınızı kurabilirsiniz.
Raspberry PI 5 Nginx ile Web Host yazıma tıklayarak Nginx ile web host nasıl yapılır bakabilirsiniz.
Sonraki yazımda görüşene dek, sağlıcakla kalın!