Eski Android ve iPhone ile Evde Sunucu Kurulumu: Adım Adım Rehber 2026
Eski Bir Telefon, Aslında Küçük Bir Bilgisayar
Çekmeceye kaldırdığın o eski telefon aslında işlevini yitirmedi. İçinde bir işlemci var, RAM var, depolama alanı var ve en önemlisi internete bağlanabiliyor. Yani teknik olarak bakıldığında elinde küçük ama gerçek bir bilgisayar duruyor.
Büyük şirketlerin sunucuları da özünde aynı mantıkla çalışır: sürekli açık, internete bağlı, istek bekleyen bir cihaz. Ölçek farkı var elbette ama temel fikir aynı.
Bu yazıda o eski telefonu gerçek bir sunucuya dönüştüreceğiz. Mesajlaşma sunucusu, dosya sunucusu, web sunucusu... Bunların hepsinin temeli aynı adımlardan geçiyor.
Başlamadan Önce Yapılacaklar
1. Arka Plan Uygulama Erişimini Azalt
Sunucu dışındaki uygulamaların arka planda gereksiz kaynak tüketmesini engellemek için kullanmadığın uygulamaların arka plan erişimini kısıtlayabilirsin.
Ayarlar → Uygulamalar → ilgili uygulama → Pil → Arka Plan Etkinliği → Kısıtla
2. Pil Optimizasyonunu Kapat (Yalnızca Termux için)
Ayarlar → Pil → Termux uygulaması için pil optimizasyonunu kapat
Bu ayar Termux'un arka planda sistem tarafından dondurulmasını engeller. Ekran kilitliyken sunucu arka planda çok az pil tüketir. 3000 mAh bataryalı bir telefon bile bu kullanımda 1 günü, 5000 mAh ve üzeri ise 2 günü veya daha fazlasını rahatlıkla götürebilir.
3. Güç Tasarrufunu Kapat
Bazı telefonlarda güç tasarrufu modu Wi-Fi bağlantısını kesiyor. Sunucunun kesintisiz çalışması için bunu kapalı tut.
Ayarlar → Pil → Güç Tasarrufu → Kapalı
Termux Nedir?
Termux, Android üzerinde çalışan bir terminal emülatörüdür. Terminal (komut satırı — fareyle değil, yazarak bilgisayara komut verdiğin ekran) emülatörü demek, telefonu sanki bir Linux bilgisayarıymış gibi kullanmana izin veren uygulama demek.
Normalde Android'de her şey uygulama üzerinden yönetilir. Termux bu duvarı aşar ve telefona doğrudan komut yazarak paket kurabilir, servis başlatabilir, dosya yönetebilirsin. Kısaca Termux sayesinde telefonun küçük bir Linux sunucusuna dönüşür.
Nereden İndirilir?
Üç farklı kaynaktan indirilebilir ancak hepsi aynı değil:
F-Droid → Önerilen yol. F-Droid (açık kaynaklı uygulamaların toplandığı özgür uygulama mağazası) üzerindeki Termux her zaman güncel ve tam sürümdür.
👉 f-droid.org
GitHub → F-Droid ile aynı sürüm, doğrudan APK (Android uygulama kurulum dosyası) olarak indirilebilir. Teknik kullanıcılar için uygundur.
👉 github.com/termux/termux-app
Play Store → Play Store sürümü de kullanılabilir, güncellemelerini almaya devam ediyor. Ancak Termux geliştiricileri yine de F-Droid veya GitHub üzerinden indirmeyi öneriyor çünkü Play Store politikaları zaman zaman bazı özellikleri kısıtlayabiliyor.
Termux ile Sunucuya Hazırlık
1. Paket Listesini Güncelle
Termux'u ilk açtığında yüklü gelen paketler eski olabilir. İlk iş olarak şunu yaz:
pkg update && pkg upgrade
Onay istediğinde Y yazıp Enter'a bas.
2. Temel Araçları Kur
pkg install openssh curl wget git nano
- openssh → Telefona başka bir cihazdan bağlanmak için
- curl / wget → İnternetten dosya çekmek için
- git → Kod depolarından indirme yapmak için
- nano → Terminal içinde dosya düzenlemek için kullanılan basit metin editörü
3. Depolama İznini Ver
termux-setup-storage
Telefon izin isteyecek, İzin Ver de.
Modem Ayarları ve Port Yönlendirme
Public IP Nedir?
Evindeki tüm cihazlar internete tek bir kapıdan çıkar, bu kapının adresi public IP (genel IP — seni internette tanımlayan adres). Bir mektup gönderirken nasıl ev adresin gerekiyorsa, dışarıdan senin sunucuna bağlanabilmek için de bu adres gerekiyor.
Public IP'ni öğrenmek için herhangi bir tarayıcıdan şu siteye gir:
whatismyip.com
Karşına çıkan numara senin public IP'ndir. Örnek: 88.243.12.45
Yerel IP Nedir?
Modem evindeki cihazlara ayrıca bir yerel IP (local IP — sadece ev ağı içinde geçerli adres) verir. Telefonun yerel IP'sini öğrenmek için Termux'a şunu yaz:
ip a
Çıkan listede wlan0 altındaki inet yazan satırdaki numara telefonun yerel IP'sidir. Örnek: 192.168.1.105
Statik IP Nedir ve Neden Lazım?
Modem her yeniden başladığında cihazlara farklı yerel IP verebilir. Telefona her seferinde farklı IP düşerse port yönlendirme ayarın bozulur. Bunu önlemek için telefona statik IP (sabit IP — her zaman aynı kalan yerel adres) tanımlamalısın.
Bunun için modem arayüzüne girmen gerekiyor. Tarayıcına şunu yaz:
192.168.1.1
Bu adres çoğu modemin yönetim panelidir. Kullanıcı adı ve şifre genellikle modemin altındaki etikette yazar.
Girdikten sonra: DHCP Ayarları → Statik IP / Address Reservation (isim modeme göre değişir) → Telefonun MAC adresini (cihazın ağ kimliği) gir ve sabit bir IP ata. Örnek: 192.168.1.105
Port Nedir ve Nasıl Yapılandırılır?
Port (kapı numarası — bir cihazda hangi servise hangi kapıdan ulaşılacağını belirtir). Bir binayı düşün, binanın adresi IP'dir, katların her biri ise farklı bir porttur. Her servis kendi katından hizmet verir.
Yaygın kullanılan portlar şunlardır:
| Servis | Port |
|---|---|
| XMPP (mesajlaşma) | 5222 |
| Web sitesi (HTTP) | 80 |
| Web sitesi (HTTPS) | 443 |
| SSH (uzak bağlantı) | 22 |
| FTP (dosya transferi) | 21 |
Bu portlar evrensel olarak belirlenmiş standartlardır. Örneğin bir XMPP istemcisi varsayılan olarak 5222'ye bağlanmaya çalışır çünkü sektörde bu standart olarak kabul görmüştür.
Farklı Port Belirleyebilir misin?
Evet. 5222 yerine 9999 gibi farklı bir port da açabilirsin. Tek fark şu: istemciye bağlanırken portu elle belirtmen gerekir. Conversations uygulamasında sunucu adresi girerken:
sunucuadresi:9999
şeklinde yazarsan bağlantı sorunsuz kurulur. Yani standart dışı port kullanmak mümkün, sadece bağlanan herkesin bu portu bilmesi gerekiyor.
Modem Arayüzünde Port Yönlendirme
Modem arayüzünde Port Forwarding / Sanal Sunucu bölümüne gir ve şu şekilde tanımla:
| Alan | Değer |
|---|---|
| Servis adı | XMPP |
| Dış port | 5222 (veya belirlediğin port) |
| İç port | 5222 (veya belirlediğin port) |
| İç IP | 192.168.1.105 |
| Protokol | TCP |
Kaydet ve modemi yeniden başlat.
XMPP Sunucusu Kurulumu: Prosody
Prosody Nedir?
Prosody, hafif ve kurulumu kolay bir XMPP sunucusudur. Az kaynak tükettiği için eski telefonlar için daha iyi. Termux üzerinde doğrudan çalışır.
Kurulum
Termux'a şunu yaz:
pkg install prosody
Kurulum tamamlandıktan sonra yapılandırma dosyasını açıyoruz:
nano /data/data/com.termux/files/usr/etc/prosody/prosody.cfg.lua
Bu dosya Prosody'nin tüm ayarlarının bulunduğu yerdir. İçinde şu satırı bul:
VirtualHost "localhost"
Bunu kendi sunucu adınla değiştir. Örneğin:
VirtualHost "evim.local"
Bu isim dışarıdan erişim olmayacaksa (sadece ev ağında kullanılacaksa) serbest seçilebilir. Dışarıdan erişim için bir sonraki bölümde ele alacağız.
Kaydetmek için: Ctrl + X → Y → Enter
Prosody'yi Başlat
prosodyctl start
Çalışıp çalışmadığını kontrol etmek için:
prosodyctl status
Prosody is running yazısını görürsen sunucu ayaktadır.
Kullanıcı Oluşturma
Her aile üyesi için ayrı hesap oluşturuyorsun:
prosodyctl adduser ali@evim.localprosodyctl adduser anne@evim.localprosodyctl adduser baba@evim.local
Her komuttan sonra şifre isteyecek, giriyorsun. Ekranda görünmemesi normal.
Prosody'de Şifreleme (TLS)
TLS (Transport Layer Security — sunucu ile istemci arasındaki trafiği şifreleyen protokol). Şifreleme olmadan sunucuna bağlanan herkesin mesajları ağ üzerinde dinlenebilir. TLS bunu engeller.
Sadece Ev Ağında Kullanım (Self-Signed Certificate)
Termux'ta şifreleme için gerekli paketi kur:
pkg install openssl
Sertifika klasörünü oluştur:
mkdir -p /data/data/com.termux/files/usr/etc/prosody/certs
Sertifikayı oluştur:
openssl req -x509 -newkey rsa:4096 -keyout
/data/data/com.termux/files/usr/etc/prosody/certs/evim.local.key -out
/data/data/com.termux/files/usr/etc/prosody/certs/evim.local.crt -days
365 -nodes
Sorular soracak, hepsine Enter basabilirsin. Ardından prosody.cfg.lua dosyasını aç:
nano /data/data/com.termux/files/usr/etc/prosody/prosody.cfg.lua
Şu satırları ekle:
ssl = {
key = "/data/data/com.termux/files/usr/etc/prosody/certs/evim.local.key";
certificate = "/data/data/com.termux/files/usr/etc/prosody/certs/evim.local.crt";
}
Prosody'yi yeniden başlat:
prosodyctl restart
Dışarıya Açık Sunucu (Let's Encrypt)
Certbot (Let's Encrypt sertifikası almanı sağlayan araç) kur:
pkg install certbot
Sertifikayı al:
certbot certonly --standalone -d evim.duckdns.org
Bu komut çalışırken 80 portunun açık olması gerekiyor. Sertifika alındıktan sonra prosody.cfg.lua dosyasına ekle:
ssl = {
key = "/etc/letsencrypt/live/evim.duckdns.org/privkey.pem";
certificate = "/etc/letsencrypt/live/evim.duckdns.org/fullchain.pem";
}
Let's Encrypt sertifikaları 90 günde bir yenilenmesi gerekiyor. Bunu otomatikleştirmek için:
crontab -e
Şunu ekle:
0 0 1 * * certbot renew
Her ay 1'inde otomatik olarak yeniler. Prosody'yi yeniden başlat:
prosodyctl restart
Conversations'a Bağlanmak
Herkes telefonuna Conversations (F-Droid veya Play Store'dan indirilebilir) kuruyor. Açınca Kendi sağlayıcımı kullan seçiliyor ve şu bilgiler giriliyor:
| Alan | Değer |
|---|---|
| Kullanıcı adı | ali@evim.local |
| Şifre | belirlenen şifre |
| Sunucu | 192.168.1.105 |
| Port | 5222 |
Dinamik IP Sorunu
Public IP'n aslında çoğu zaman günlerce hatta haftalarca değişmez. Değişme ihtimali olan durumlar şunlardır: uzun süreli elektrik kesintisi, modemin sıfırlanması veya internet servis sağlayıcının altyapı değişikliği. Normal kullanımda kendiliğinden gitmez.
Yine de IP değiştiğinde tek tek herkese yeni adresi bildirmek yerine bunu otomatik yöneten bir sisteme sahip olmak çok daha pratiktir. İşte bu noktada DDNS devreye girer.
DDNS ile Çözüm
DDNS (Dynamic DNS — değişen IP adresini sabit bir domain ismine bağlayan servis) bu sorunu çözer. IP değişse bile herkes aynı domain adıyla sunucuya ulaşmaya devam eder.
Ücretsiz DDNS servisleri:
- No-IP → noip.com
- DuckDNS → duckdns.org
Örneğin DuckDNS'te kayıt olup evim.duckdns.org gibi bir adres alabilirsin. Bunun için önce Termux'ta cron servisini kur:
pkg install croniecrond
Ardından crontab'ı düzenle:
crontab -e
Açılan dosyaya şunu ekle:
*/5 * * * * curl "https://www.duckdns.org/update?domains=evim&token=TOKEN&ip="
TOKEN kısmına DuckDNS hesabından aldığın kodu yazıyorsun. Artık IP değişse bile evim.duckdns.org adresi her 5 dakikada bir otomatik güncellenir.
Sunucuya Ev Dışından Erişim
Aile üyeleri Conversations'a bağlanırken sunucu adresi olarak artık public IP yerine bu domain adını girerler:
| Alan | Değer |
|---|---|
| Kullanıcı adı | ali@evim.duckdns.org |
| Şifre | belirlenen şifre |
| Sunucu | evim.duckdns.org |
| Port | 5222 |
Domain adı sabit kaldığı sürece IP değişse bile bağlantı kopmaz. Bağlantı kopuyorsa büyük ihtimalle DDNS güncellemesi henüz gerçekleşmemiştir, birkaç dakika bekleyip tekrar denenebilir.
Artık Telefonunuz Bir Sunucu
Tüm bu adımlar tamamlandığında eski telefonunuz ekran kilitli olsa dahi arka planda XMPP sunucusu olarak çalışmaya devam eder. Bundan sonra yapmanız gereken tek şey aile üyelerinin telefonlarına Conversations (veya herhangi bir XMPP istemcisi) kurmak ve yukarıdaki bilgilerle giriş yapmak. WhatsApp'a gerek kalmadan kendi sunucunuz üzerinden güvenli şekilde haberleşebilirsiniz.
Mobil Veri ve Tünel ile Sunucu
Eğer evin modem bağlantısı yoksa veya port yönlendirme yapamıyorsan (bazı internet sağlayıcıları bunu engeller) bu senaryo senin için. Mobil veri üzerinden de sunucu kurulabilir ancak burada farklı bir yöntem kullanmak gerekiyor.
Sorun Ne?
Mobil veri kullanırken operatör sana doğrudan bir public IP vermez. Onlarca kullanıcı aynı IP'yi paylaşır, bu yüzden dışarıdan doğrudan senin telefonuna ulaşmak mümkün olmaz. Port yönlendirme de yapılamaz çünkü ortada senin kontrolünde bir modem yok.
Çözüm: Tünel
Tünel (tunnel — senin cihazınla dış dünya arasında şifreli bir köprü kuran servis) bu sorunu çözer. Tünel servisi internette sabit bir adrese sahiptir, senin telefonun bu adrese bağlanır ve dışarıdan gelen tüm istekler bu köprü üzerinden sana iletilir. Yani dışarıdan bakan biri tünel servisinin adresine bağlanır, tünel bunu senin telefonuna yönlendirir. Ortada sanki bir modem varmış gibi çalışır.
Cloudflare Tunnel Kurulumu
Cloudflare Tunnel ücretsiz ve güvenilir bir tünel servisidir.
1. Cloudflared'ı indir
pkg install cloudflared
2. Cloudflare hesabına giriş yap
cloudflared tunnel login
Bu komut sana bir link verecek, tarayıcıda açıp Cloudflare hesabınla giriş yap.
3. Tünel oluştur
cloudflared tunnel create evim
evim yerine istediğin ismi yazabilirsin. Bu komut sana bir tünel kimliği (tunnel ID) verecek, bunu not al.
4. Tüneli yapılandır
nano ~/.cloudflared/config.yml
İçine şunu yaz:
tunnel: TUNNEL_ID
credentials-file: /data/data/com.termux/files/home/.cloudflared/TUNNEL_ID.json
ingress:
- hostname: evim.ornekdomain.com
service: tcp://localhost:5222
- service: http_status:404
TUNNEL_ID yazan yere az önce aldığın kimliği yaz.
5. Tüneli başlat
cloudflared tunnel run evim
Ngrok Alternatifi
Cloudflare yerine Ngrok da kullanılabilir. Kurulumu daha basittir ancak ücretsiz planda domain adı her yeniden başlatmada değişir. Kalıcı kullanım için Cloudflare daha uygundur.
pkg install ngrokngrok tcp 5222
Ngrok çalışınca sana sabit bir adres verir, bu adresi Conversations'a girersin.
Conversations'a Bağlanmak
Tünel kurulduktan sonra aile üyeleri Conversations'a bağlanırken tünel adresini kullanır:
| Alan | Değer |
|---|---|
| Kullanıcı adı | ali@evim.ornekdomain.com |
| Şifre | belirlenen şifre |
| Sunucu | evim.ornekdomain.com |
| Port | 5222 |
Farklı Amaçlar İçin Kullanım
Bu yazıda örnek olarak XMPP sunucusu kurduk ancak aynı telefon farklı amaçlarla da sunucu olarak kullanılabilir. Temel adımlar hep aynı, sadece kurulan yazılım ve açılan port değişiyor.
Web sunucusu olarak kullanmak istiyorsan:
pkg install nginxnginx
Nginx (web sunucusu yazılımı) kurulup başlatıldıktan sonra modem arayüzünden port yönlendirmeyi şu şekilde yapıyorsun:
| Alan | Değer |
|---|---|
| Servis adı | Web |
| Dış port | 80 |
| İç port | 80 |
| Protokol | TCP |
HTTPS (şifreli web bağlantısı) için aynısını 443 portu için de tekrarlıyorsun.
Bundan sonra public IP'ni veya DDNS adresini tarayıcıya yazan herkes senin telefonundaki web sitesine ulaşır.
iOS: Jailbreak'siz
Android'den Farkı Ne?
Android'de Termux sayesinde neredeyse tam bir Linux ortamı kurabiliyorduk. iOS'ta Apple bu özgürlüğü kısıtlar. Ancak iSH (App Store'dan indirilebilen, iOS üzerinde Linux ortamı sağlayan uygulama) sayesinde benzer şeyler yapılabiliyor.
Tek önemli fark şu: iSH'in arka planda çalışmaya devam edebilmesi için ekranın açık kalması gerekiyor. Ekran kapanırsa uygulama donuyor ve sunucu duruyor. Bunu aşmanın yolu ekran zaman aşımını kapatmak ve telefonu prize takılı bırakmak.
Ayarlar → Ekran ve Parlaklık → Otomatik Kilit → Hiçbir Zaman
iSH Kurulumu
App Store'dan iSH Shell uygulamasını indir. Ücretsizdir.
İlk açılışta seni bir terminal karşılar. iSH, Alpine Linux (hafif ve az kaynak tüketen bir Linux dağıtımı) kullanır. Paket yöneticisi Termux'taki pkg yerine apk'dır.
Paket listesini güncelle:
apk update && apk upgrade
Temel araçları kur:
apk add openssh curl wget nano
Modem Üzerinden Sunucu
Buradan sonrası Android'deki ile birebir aynıdır: telefonun yerel IP'sini öğren, modeme statik IP tanımla, port yönlendirmeyi yap, Prosody'yi kur ve kullanıcıları oluştur.
Prosody kurulumu için:
apk add prosody
Başlatmak için:
prosodyctl start
Kullanıcı oluşturmak için:
prosodyctl adduser ali@evim.local
iOS: Ev Ağında Şifreleme (Self-Signed Certificate)
apk add openssl
Sertifikayı oluştur:
openssl req -x509 -newkey rsa:4096 -keyout
/etc/prosody/certs/evim.local.key -out /etc/prosody/certs/evim.local.crt
-days 365 -nodes
prosody.cfg.lua dosyasına ekle:
ssl = {
key = "/etc/prosody/certs/evim.local.key";
certificate = "/etc/prosody/certs/evim.local.crt";
}
Prosody'yi yeniden başlat:
prosodyctl restart
iOS: Dışarıya Açık Sunucu (Let's Encrypt)
apk add certbotcertbot certonly --standalone -d evim.duckdns.org
prosody.cfg.lua dosyasına ekle:
ssl = {
key = "/etc/letsencrypt/live/evim.duckdns.org/privkey.pem";
certificate = "/etc/letsencrypt/live/evim.duckdns.org/fullchain.pem";
}
Otomatik yenileme için:
crontab -e
Şunu ekle:
0 0 1 * * certbot renew
Prosody'yi yeniden başlat:
prosodyctl restart
Mobil Veri Üzerinden Tünel ile Sunucu
Android'deki ile aynı mantık geçerli. Cloudflare Tunnel kurulumu için:
apk add curlcurl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-386 -o cloudflaredchmod +x cloudflared./cloudflared tunnel login
Buradan sonrası Android bölümündeki adımların aynısı.
Jailbreak'li iOS
Jailbreak'li cihazlarda ekranın açık kalması zorunluluğu ortadan kalkar. Servisler gerçek anlamda arka planda çalışır. Jailbreak ortamında Sileo veya Cydia (jailbreak'li cihazlar için uygulama mağazaları) üzerinden gerekli paketler kurulur ve adımlar Android ile neredeyse birebir aynıdır.
Sıkça Yapılan Hatalar
1. Port yönlendirmeyi yapıp modemi yeniden başlatmamak
Port yönlendirme ayarı kaydedildikten sonra modem yeniden başlatılmazsa
ayar aktif olmayabilir. Kaydet ve mutlaka yeniden başlat.
2. Telefona statik IP atamamak
Modem yeniden başladığında telefona farklı bir yerel IP atayabilir. Bu
durumda port yönlendirme ayarındaki IP geçersiz kalır ve sunucuya
dışarıdan ulaşılamaz. Telefona mutlaka statik IP tanımla.
3. Pil optimizasyonunu kapatmamak
Termux veya iSH için pil optimizasyonu kapatılmazsa sistem uygulamayı
arka planda dondurabilir. Sunucu çalışıyor görünür ama bağlantı
kurulamaz. En sık karşılaşılan sorunlardan biridir.
4. Güç tasarrufunu açık bırakmak
Güç tasarrufu modu Wi-Fi bağlantısını kesiyor. Sunucu ayakta olsa bile dışarıdan ulaşılamaz hale gelir.
5. DDNS güncellemesini kurmamak
IP değiştiğinde DDNS otomatik güncellenmezse sunucuya erişim kesilir. DuckDNS için crontab ayarını mutlaka yap.
6. Prosody'yi her açılışta başlatmamak
Telefon yeniden başladığında Prosody otomatik olarak başlamaz. Termux açılınca şunu çalıştırman gerekir:
prosodyctl start
Bunu otomatikleştirmek için:
nano ~/.bashrc
Dosyanın sonuna şunu ekle:
prosodyctl start
Artık Termux her açıldığında Prosody otomatik başlar.
7. Yanlış port girmek
Modemde 5222 açtın ama Conversations'a farklı bir port girdin ya da tam
tersi. Modemdeki port ile istemcideki port mutlaka eşleşmeli.
8. iOS'ta ekranın kapanmasına izin vermek
iSH ekran kapandığında donuyor. Otomatik kilidi kapatmayı unutan
kullanıcılar sunucunun neden çalışmadığını anlayamıyor. iOS
kullanıyorsan ekran açık kalmalı.
Sonuç
Gördüğün gibi çekmecede unutulmuş eski bir telefon aslında oldukça işlevsel bir sunucuya dönüşebiliyor. Pahalı donanımlara veya ücretli servislere gerek yok. Birkaç uygulama, doğru ayarlar ve bu yazıdaki adımlar yeterli.
Kurulum sırasında bir şeyler ters giderse sıkça yapılan hatalar bölümüne dön, büyük ihtimalle cevabı oradadır. Bundan sonrası tamamen sana kalmış. XMPP ile başladıysan ilerleyen zamanlarda aynı telefona web sunucusu, dosya sunucusu gibi farklı servisler de ekleyebilirsin. Temel mantığı kavradın, gerisini kendin keşfedebilirsin.
Bu yazıyı beğendiyseniz, diğer çalışmalarımı da beğenebilirsiniz:

Yorumlar
Yorum Gönder