GetDNS Kullanım Kılavuzu

Adım adım kurulum ve kullanım rehberi

İpucu: Bu kılavuz, GetDNS hizmetini en verimli şekilde kullanmanız için hazırlanmıştır. Adımları sırayla takip edin.

1. Başlangıç

Ücretsiz Dinamik DNS Hizmeti

Neler Yapabilirsiniz?
  • Ev sunucunuza dışarıdan erişin
  • IP kameranızı uzaktan izleyin
  • VPN bağlantınızı sabit bir adrese taşıyın
  • Oyun sunucunuzu arkadaşlarınıza açın
  • Ev otomasyon sisteminizi yönetin
  • Raspberry Pi'nize her yerden bağlanın
Ne Kadar Sürede?
  • Kayıt: 1 dakika
  • Subdomain oluşturma: 30 saniye
  • API entegrasyonu: 5-10 dakika
  • Otomatik güncelleme: 15 dakika
Ön Gereksinimler
  • Geçerli bir e-posta adresi
  • İnternet bağlantısı olan bir cihaz
  • Temel komut satırı bilgisi (API kullanımı için)

2. Kayıt ve Giriş

1 Hesap Oluşturun

Ana sayfadaki "Kayıt Ol" butonuna tıklayın. Aşağıdaki bilgileri doldurun:

  • Kullanıcı Adı: 3-20 karakter, sadece harf, rakam ve alt çizgi (_)
  • E-posta: Geçerli bir e-posta adresi (şifre sıfırlama için)
  • Şifre: En az 8 karakter, büyük-küçük harf ve rakam içermeli
Geçici email adresleri (tempmail, 10minutemail vb.) ile kayıt kabul edilmemektedir.
2 E-posta Doğrulama

Kayıt olduktan sonra e-posta adresinize bir doğrulama bağlantısı gönderilecektir. (İsteğe bağlı, ayarlara bağlı)

3 Giriş Yapın

Kullanıcı adı/e-posta ve şifrenizle giriş yaparak dashboard'a ulaşın.

Kullanıcı Adı: kullaniciadiniz
Şifre: ********

3. Subdomain Oluşturma

Her kullanıcıya varsayılan olarak 3 subdomain oluşturma hakkı verilir.
1 Dashboard'a Gidin

Giriş yaptıktan sonra otomatik olarak dashboard sayfasına yönlendirileceksiniz.

2 "Yeni Subdomain" Butonuna Tıklayın

Sayfanın sağ üst köşesindeki "Yeni Subdomain" butonuna tıklayın.

3 Bilgileri Doldurun
  • Domain: getdns.me (tek seçenek)
  • Subdomain Adı: Örn: pi5, kamera-ev, oyun-sunucu
  • Hedef IP: Şu anki dış IP adresiniz (örn: 82.123.45.67)
Dış IP adresinizi öğrenmek için whatismyipaddress.com adresini ziyaret edin veya terminalde curl ifconfig.me yazın.
4 Oluştur'a Tıklayın

Formu doldurduktan sonra "Subdomain Oluştur" butonuna tıklayın. Subdomaininiz hemen oluşturulacaktır.

Başarılı!

Artık subdomaininiz.getdns.me adresine girerek cihazınıza ulaşabilirsiniz. (DNS propagasyonu 5-30 dakika sürebilir)

4. API Kullanımı

API, IP adresiniz değiştiğinde otomatik güncelleme yapmanızı sağlar. Dashboard'da her subdomain için hazır CURL komutu bulunur.

Temel API Kullanımı
curl "http://getdns.me/api/update?api_key=ANAHTARINIZ&hostname=subdomaininiz"

Not: IP adresi belirtmenize gerek yok! Sistem, isteğin geldiği IP'yi otomatik olarak algılar.

API Parametreleri
Parametre Zorunlu Açıklama
api_key Evet Dashboard'dan alacağınız API anahtarınız
hostname Evet Güncellemek istediğiniz subdomain adı (örn: pi5 veya pi5.getdns.me)
ip Hayır Belirtilmezse isteğin geldiği IP otomatik kullanılır
API Yanıtları

Başarılı yanıt:

{
    "status": "success",
    "message": "IP adresi otomatik olarak güncellendi",
    "hostname": "pi5.getdns.me",
    "ip": "82.123.45.67",
    "last_updated": "2026-02-17T10:30:00"
}

Hata yanıtı:

{
    "error": "Geçersiz API anahtarı",
    "status": "error"
}
API Test Endpoint'i
curl "http://getdns.me/api"
Subdomain Listeleme API'si
curl "http://getdns.me/api/list?api_key=ANAHTARINIZ"

5. Otomatik Güncelleme

IP adresiniz değiştiğinde otomatik güncelleme yapması için cihazınıza bir zamanlanmış görev eklemeniz gerekir.

Linux (Cron Job)

Crontab dosyasını düzenleyin:

crontab -e

Her 30 dakikada bir güncelleme yapmak için şu satırı ekleyin:

*/30 * * * * curl "http://getdns.me/api/update?api_key=ANAHTARINIZ&hostname=subdomaininiz" > /dev/null 2>&1
Linux (Systemd Servisi)

Daha profesyonel bir çözüm için systemd servisi oluşturabilirsiniz:

sudo nano /etc/systemd/system/ozgurhome-ddns.service
[Unit]
Description=GetDNS DDNS Updater
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/curl "http://getdns.me/api/update?api_key=ANAHTARINIZ&hostname=subdomaininiz"
Restart=on-failure
RestartSec=1800

[Install]
WantedBy=multi-user.target
sudo systemctl enable ozgurhome-ddns.service
sudo systemctl start ozgurhome-ddns.service
Windows (Görev Zamanlayıcı)
  1. Başlat menüsünde "Görev Zamanlayıcı"yı açın
  2. "Yeni Görev Oluştur"a tıklayın
  3. Tetikleyiciler sekmesinde "Yeni"ye tıklayın, "Günlük" seçin ve "Her 30 dakikada bir tekrarla"yı işaretleyin
  4. Eylemler sekmesinde "Yeni"ye tıklayın:
    • Eylem: Program başlat
    • Program: C:\Windows\System32\curl.exe
    • Argümanlar: "http://getdns.me/api/update?api_key=ANAHTARINIZ&hostname=subdomaininiz"
Windows (PowerShell Script)
# ddns-update.ps1
$apiKey = "ANAHTARINIZ"
$hostname = "subdomaininiz"
$domain = "getdns.me"
$url = "http://$domain/api/update?api_key=$apiKey&hostname=$hostname"

while ($true) {
    try {
        Invoke-WebRequest -Uri $url -UseBasicParsing
        Write-Host "$(Get-Date) - Güncelleme yapıldı"
    } catch {
        Write-Host "$(Get-Date) - Hata: $_"
    }
    Start-Sleep -Seconds 1800
}
macOS (Launchd)

Bir plist dosyası oluşturun:

nano ~/Library/LaunchAgents/com.ozgurhome.ddns.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.ozgurhome.ddns</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/curl</string>
        <string>http://getdns.me/api/update?api_key=ANAHTARINIZ&hostname=subdomaininiz</string>
    </array>
    <key>StartInterval</key>
    <integer>1800</integer> <!-- 30 dakika -->
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.ozgurhome.ddns.plist

6. Yönlendirici (Router) Ayarları

Birçok modern yönlendirici, DDNS desteğine sahiptir. Yönlendiricinizin arayüzünden DDNS ayarlarını yapabilirsiniz.

ASUS Router
  1. Yönlendirici arayüzüne girin (http://192.168.1.1)
  2. Gelişmiş Ayarlar → WAN → DDNS sekmesine gidin
  3. "Özel" veya "Custom" seçeneğini seçin
  4. Sunucu: getdns.me
  5. Kullanıcı adı: API anahtarınız
  6. Şifre: (boş bırakın)
  7. Hostname: subdomaininiz
TP-Link Router
  1. Yönlendirici arayüzüne girin
  2. Gelişmiş → Ağ → DDNS'ye gidin
  3. "Özel DDNS" seçeneğini seçin
  4. Servis Sağlayıcı: ozgurhome
  5. Kullanıcı adı: API anahtarınız
  6. Hostname: subdomaininiz.getdns.me
MikroTik Router
/tool dns-update
set name=subdomaininiz.getdns.me address=0.0.0.0 key=API_ANAHTARINIZ
DD-WRT Router
nvram set ddns_enable=1
nvram set ddns_service=custom
nvram set ddns_custom="http://getdns.me/api/update?api_key=API_ANAHTARINIZ&hostname=subdomaininiz"
nvram commit

7. Linux Kurulumu (Python Script)

Linux sunucunuzda otomatik güncelleme yapacak bir Python script'i oluşturalım.

Adım 1: Script'i Oluşturun
nano /usr/local/bin/ozgurhome-ddns.py
Adım 2: Script İçeriği
#!/usr/bin/env python3
import requests
import time
import socket
import os

# KONFİGÜRASYON - Ortam değişkenlerinden al (daha güvenli)
API_KEY = os.environ.get('OZGURHOME_API_KEY', 'API_ANAHTARINIZ')
HOSTNAME = os.environ.get('OZGURHOME_HOSTNAME', 'subdomaininiz')
DOMAIN = os.environ.get('OZGURHOME_DOMAIN', 'getdns.me')
CHECK_INTERVAL = int(os.environ.get('OZGURHOME_INTERVAL', 1800))  # 30 dakika

def get_current_ip():
    """Güncel dış IP adresini al"""
    try:
        response = requests.get('https://api.ipify.org', timeout=10)
        return response.text.strip()
    except Exception as e:
        print(f"IP alınamadı: {e}")
        return None

def update_ddns(ip):
    """DDNS kaydını güncelle"""
    url = f"http://{DOMAIN}/api/update"
    params = {
        'api_key': API_KEY,
        'hostname': HOSTNAME
    }
    try:
        response = requests.get(url, params=params, timeout=10)
        data = response.json()
        if data.get('status') == 'success':
            print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] IP güncellendi: {ip}")
            return True
        else:
            print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] Hata: {data.get('error')}")
            return False
    except Exception as e:
        print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] Bağlantı hatası: {e}")
        return False

def main():
    print(f"🚀 GetDNS DDNS İzleyici Başlatıldı")
    print(f"📡 Hostname: {HOSTNAME}.{DOMAIN}")
    print(f"⏱️  Kontrol aralığı: {CHECK_INTERVAL} saniye")
    
    last_ip = None
    while True:
        current_ip = get_current_ip()
        if current_ip and current_ip != last_ip:
            print(f"🔄 IP değişti: {last_ip} -> {current_ip}")
            if update_ddns(current_ip):
                last_ip = current_ip
        elif not current_ip:
            print("❌ IP alınamadı, tekrar deneniyor...")
        
        time.sleep(CHECK_INTERVAL)

if __name__ == "__main__":
    main()
Adım 3: Script'i Çalıştırılabilir Yapın
chmod +x /usr/local/bin/ozgurhome-ddns.py
Adım 4: Servis Olarak Çalıştırın

Systemd servisi oluşturun:

sudo nano /etc/systemd/system/ozgurhome-ddns.service
[Unit]
Description=GetDNS DDNS Updater
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/ozgurhome-ddns.py
Restart=always
RestartSec=10
Environment="OZGURHOME_API_KEY=API_ANAHTARINIZ"
Environment="OZGURHOME_HOSTNAME=subdomaininiz"

[Install]
WantedBy=multi-user.target
sudo systemctl enable ozgurhome-ddns
sudo systemctl start ozgurhome-ddns
sudo systemctl status ozgurhome-ddns

8. Windows Kurulumu (PowerShell Script)

Windows için PowerShell script'i oluşturalım.

Adım 1: Script'i Oluşturun
notepad C:\ozgurhome-ddns.ps1
Adım 2: Script İçeriği
# ozgurhome DDNS Güncelleme Script'i
$apiKey = "API_ANAHTARINIZ"
$hostname = "subdomaininiz"
$domain = "getdns.me"

function Get-PublicIP {
    try {
        $ip = (Invoke-WebRequest -Uri "https://api.ipify.org" -UseBasicParsing).Content.Trim()
        return $ip
    } catch {
        return $null
    }
}

function Update-DDNS {
    param($ip)
    $url = "http://$domain/api/update?api_key=$apiKey&hostname=$hostname"
    try {
        $response = Invoke-WebRequest -Uri $url -UseBasicParsing
        $data = $response.Content | ConvertFrom-Json
        if ($data.status -eq "success") {
            Write-Host "$(Get-Date) IP güncellendi: $ip"
            return $true
        } else {
            Write-Host "$(Get-Date) Hata: $($data.error)"
            return $false
        }
    } catch {
        Write-Host "$(Get-Date) Bağlantı hatası: $_"
        return $false
    }
}

# Sonsuz döngü
while ($true) {
    $currentIP = Get-PublicIP
    if ($currentIP) {
        Update-DDNS -ip $currentIP
    }
    Start-Sleep -Seconds 1800  # 30 dakika
}
Adım 3: Görev Zamanlayıcı'ya Ekleyin

Script'i her 30 dakikada bir çalışacak şekilde ayarlayın.

9. Docker Kurulumu

Docker ile kolay kurulum.

docker-compose.yml
version: '3'
services:
  ddns:
    image: alpine:latest
    container_name: ozgurhome-ddns
    restart: unless-stopped
    environment:
      - API_KEY=API_ANAHTARINIZ
      - HOSTNAME=subdomaininiz
      - DOMAIN=getdns.me
    command: |
      sh -c "
      apk add --no-cache curl
      while true; do
        curl -s \"http://$DOMAIN/api/update?api_key=$API_KEY&hostname=$HOSTNAME\"
        sleep 1800
      done
      "

Çalıştırın:

docker-compose up -d
Dockerfile ile
FROM alpine:latest
RUN apk add --no-cache curl
ENV API_KEY="API_ANAHTARINIZ"
ENV HOSTNAME="subdomaininiz"
ENV DOMAIN="getdns.me"
ENV INTERVAL=1800

CMD while true; do \
    curl -s "http://$DOMAIN/api/update?api_key=$API_KEY&hostname=$HOSTNAME"; \
    sleep $INTERVAL; \
done

10. Sorun Giderme

  1. Dashboard'da subdomaininizin durumunu kontrol edin (engellenmiş olabilir).
  2. API ile manuel güncelleme yapın: curl "http://getdns.me/api/update?api_key=...&hostname=..."
  3. DNS propagasyonunu bekleyin (5-30 dakika).
  4. Farklı bir ağdan (mobil veri) erişmeyi deneyin.
  5. Yönlendiricinizde port yönlendirme ayarlarını kontrol edin.
  6. ping subdomaininiz.getdns.me ile çözümlenip çözümlenmediğini kontrol edin.

  • API anahtarınızın doğru olduğundan emin olun
  • Hostname parametresini kontrol edin (subdomain adı veya tam domain)
  • İnternet bağlantınızı kontrol edin
  • Güvenlik duvarı ayarlarınızı kontrol edin
  • Hata mesajını okuyun ve ona göre işlem yapın

  • API çağrılarınızın düzenli yapıldığından emin olun
  • Dashboard'da güncel IP'nin doğru olduğunu kontrol edin
  • API anahtarınızın geçerli olduğunu kontrol edin
  • Çok sık API çağrısı yapıyorsanız, rate limiting'e takılmış olabilirsiniz

  1. Dashboard'da API anahtarınızı kontrol edin
  2. Yakın zamanda anahtar yenilediyseniz, eski anahtarı kullanıyor olabilirsiniz
  3. Yeni bir API anahtarı oluşturup deneyin
  4. API anahtarınızda fazladan boşluk veya karakter olmadığından emin olun

DNS propagasyonu genellikle 5-30 dakika arasında tamamlanır. Ancak:

  • TTL değerine bağlı olarak 24 saate kadar uzayabilir
  • Farklı DNS sağlayıcıları farklı hızlarda güncellenir
  • Coğrafi konuma göre değişiklik gösterebilir
  • whatsmydns.net gibi sitelerle kontrol edebilirsiniz

11. İpuçları ve Püf Noktaları

Güvenlik
  • API anahtarınızı düzenli olarak değiştirin (ayda bir)
  • Anahtarınızı asla GitHub'da paylaşmayın
  • Güçlü şifreler kullanın
  • 2FA kullanın (yakında)
Performans
  • API çağrılarını 30 dakikada bir yapın
  • Çok sık çağrı rate limiting'e takılmanıza neden olabilir
  • DNS TTL değerini düşük tutun (60 saniye)
Kullanım
  • Subdomain adlarınızı anlamlı seçin (pi5, kamera, vpn)
  • Limitinizi doldurduysanız, kullanmadıklarınızı silin
  • Hedef IP ile güncel IP farklıysa güncelleme yapın
Yardım
  • SSS sayfasını okuyun
  • Destek talebi oluşturun
  • E-posta ile iletişime geçin: destek@getdns.me

Bu kılavuz size yardımcı oldu mu? Geri bildirim gönderin

Son güncelleme: 17 Şubat 2026