Saya mencoba mengkonfigurasi Dynamic DNS client pada router saya dengan firmware dd-wrt (v24-sp2) sehingga secara dinamis akan mengubah alamat IP di salah satu catatan DNS. Sayangnya saya mengalami masalah ... Berikut ini contoh permintaan dari konfigurasi ddclient mereka :
https://www.cloudflare.com/api.html?a=DIUP&u=<my_login>&tkn=<my_token>&ip=<my_ip>&hosts=<my_record>
Ini berfungsi jika saya menggunakannya di browser, tetapi di dd-wrt saya mendapatkan output ini:
Tue Jan 24 00:36:47 2012: INADYN: Started 'INADYN Advanced version 1.96-ADV' - dynamic DNS updater.
Tue Jan 24 00:36:47 2012: I:INADYN: IP address for alias '<my_record>' needs update to '<my_ip>'
Tue Jan 24 00:36:48 2012: W:INADYN: Error validating DYNDNS svr answer. Check usr,pass,hostname! (HTTP/1.1 303 See Other
Server: cloudflare-nginx
Date: Mon, 23 Jan 2012 14:36:48 GMT
Content-Type: text/plain
Connection: close
Expires: Sun, 25 Jan 1981 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: https://www.cloudflare.com/api.html?a=DIUP&u=<my_login>&tkn=<my_token>&ip=<my_ip>&hosts=<my_record>
Vary: Accept-Encoding
Set-Cookie: __cfduid=<id>; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.cloudflare.com
Set-Cookie: __cfduid=<id>; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.cloudflare.com
You must include an `a' paramiter, with a value of DIUP|wl|chl|nul|ban|comm_news|devmode|sec_lvl|ipv46|ob|cache_lvl|fpurge_ts|async|pre_purge|minify|stats|direct|zone_check|zone_ips|zone_errors|zone_agg|zone_search|zone_time|zone_grab|app|rec_se
URL dari "Lokasi" berfungsi dengan baik dan parameter "a" disertakan. Apa masalahnya?
router
ddns
cloudflare
Roma
sumber
sumber
Jawaban:
Saya tidak berpikir Anda dapat mengaturnya di mana DD-WRT memanggil CloudFlare secara langsung. Cara saya mengonfigurasinya adalah meminta DD-WRT memanggil skrip PHP pada server web jarak jauh, yang kemudian mendeteksi IP klien dan mengirimkan permintaan pembaruan ke CloudFlare melalui API mereka.
Pengaturan DD-WRT DDNS
cloudflare_update.php
Alih-alih menggunakan HTTP auth basic, saya hanya menggunakan kunci acak.
Pastikan Anda membuat entri DNS untuk nama domain yang ingin Anda perbarui di CloudFlare; parameter tindakan DIUP hanya akan memperbarui IP untuk entri yang sudah ada.
sumber
Jika Anda ingin menjalankan pembaruan dari router Anda, maka tidak ada cara untuk mengatasi kenyataan bahwa Anda memerlukan sedikit 'sesuatu' di tengah untuk mengubah panggilan Anda ke dalam format CloudFlare (jika hanya DNS-O-Matic yang akan menambahkannya ke layanan yang didukung mereka ...). Daripada harus meng-host skrip perantara sendiri, Anda bisa menggunakan Google AppEngine (gratis) untuk melakukan posting ulang untuk Anda. Saya menggunakan ini:
https://cloudflare-updater.appspot.com/
Oke, Anda masih harus memanggil sesuatu selain CloudFlare untuk mengeluarkan pembaruan tetapi setidaknya Anda tidak perlu menjalankan host tambahan atau VPS dll untuk melakukannya sendiri. Ini benar-benar transparan - satu-satunya masalah adalah Anda tidak mendapatkan kesalahan dikembalikan sehingga Anda perlu memeriksa itu berfungsi sendiri. Setelah berfungsi, ia harus dijalankan dan dijalankan.
sumber
Memperhatikan ini sudah usang dan sekarang membutuhkan kode api v4 untuk bekerja.
diuji di atas gagal - pengguna buruk, lulus, info xxxx.
meninjau metode ini https://github.com/ScottHelme/CloudFlareDDNS
sumber
Berhasil membuatnya berfungsi menggunakan ini: https://github.com/dcerisano/Cloudflare-dynamic-dns
Setelah pengaturan akun Cloudflare Anda, info yang diperlukan mudah ditemukan:
Anda membutuhkan: ID Zona
Kunci otorisasi (alias Kunci api global)
ID A-record untuk domain Anda (ini diperoleh dengan menjalankan skrip cloudflare-dns-id.sh) Saya harus sedikit memangkas skrip untuk membuatnya berfungsi ..
curl -X DAPATKAN " https://api.cloudflare.com/client/v4/zones/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/dns_records?type=A&name=dynamic " \ -H "X-Auth-Email: [email protected]" \ -H "X-Auth-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Tipe-Konten: application / json"
Saya menyimpan kedua skrip di / jffs yang membuatnya dapat dieksekusi.
Dalam hal sisi Cloudflare, saya mengatur sesuai panduan ini hanya untuk catatan domain Cloudflare:
https://support.opendns.com/hc/en-us/community/posts/115000937008-Bagaimana- untuk-set-up-DNS-O-MATIC-for-Cloudflare-and-the-other-way-around- dan-a-FritzBox
Di Cloudflare Anda harus mengatur catatan berikut:
Jenis: A | Nama: dynamic | Nilai: "IP WAN Anda" ***
Ketik: CNAME | Nama: "domainAnda.xyz" | Nilai: dinamis. "Yourdomain.xyz"
Ketik: CNAME | Nama: www | Nilai: "domainAnda.xyz"
Saya menyiapkan tugas cron untuk menjalankan cloudflare-ddns.sh setiap 5 menit untuk memeriksa perubahan IP.
Router DD-WRT saya sekarang secara otomatis memperbarui Cloudflare setiap kali IP WAN diubah ...
Pengaturan di atas membutuhkan waktu sekitar 10 menit.
sumber