Dynamic DNS dengan GoDNS sebagai Alternative ddclient di FreeBSD
· 2 min read · Label UnixBSDGoDNS merupakan alat klien DNS dinamis (DDNS). GoDNS ditulis dalam bahasa Go Lang dan merupakan proyek DynDNS sumber terbuka. GoDNS mendukung berbagai penyedia domain dan memungkinkan pembuatan notifikasi saat terjadi perubahan melalui email (SMTP) atau menggunakan layanan seperti Discord, Pushover, Slack, dan Telegram.
GoDNS mendukung banyak platform seperti Linux, FreeBSD, MacOS, Windows, dan lainnya. Keberadaan aplikasi ini terbukti sangat tangguh, stabil, dan ringan. Bahkan, GoDNS dapat menggantikan ddclient yang telah lama menguasai aplikasi Dynamic DNS (DDNS).
Sama seperti aplikasi ddclient, GoDNS juga mendukung beberapa penyedia DNS. Gambar di bawah ini merupakan penyedia DNS yang didukung oleh GoDNS.
Dalam tutorial ini, kita akan mempelajari cara menginstal dan mengonfigurasi Dynamic DNS (DDNS) pada server FreeBSD melalui GoDNS dan HE.net.
Untuk menggunakan GoDNS di FreeBSD, kita asumsikan:
- Aplikasi GO telah diinstal di FreeBSD.
- Anda telah mendaftarkan (sekarang memiliki) sebuah domain.
- Domain telah didelegasikan ke penyedia DNS yang didukung, seperti HE.net atau cloudflare.
- Jika Anda belum memiliki domain, Anda juga dapat masuk ke DuckDNS (dengan akun sosial) dan mendapatkan subdomain di domain duckdns.org secara gratis.
Spesifikasi Sistem
OS: FreeBSD 13.2domain: datainchi.com
Hostname: ns7
IP Address: 192.168.5.2
Land Card: nfe0
Provider DDNS: HE.net
A. Cara Instal GoDNS di FreeBSD
Sebelum kita memulai proses instalasi, Anda harus membaca artikel tentang cara menginstal dan mengonfigurasi GO di FreeBSD.Karena GoDNS ditulis dalam Bahasa Go, pastikan FreeBSD Anda telah menginstal GO. Di FreeBSD, repositori GoDNS tersedia di port sistem, tetapi saya lebih suka menginstalnya dengan paket biner. Anda dapat mengemas seluruh pustaka di situs GitHub resmi dan menjalankannya dalam bahasa Go. Metode ini memastikan bahwa itu adalah versi terbaru.
Setelah mengkloning godns dari repositori Github, lanjutkan dengan perintah "go build" dan "go install".
B. Cara Konfigurasi GoDNS
Sebelum mengonfigurasi, mari kita lihat panduan untuk menggunakan GoDNS.Buat file config.json dan letakkan di folder "/usr/local/etc/godns".
Berikut adalah contoh skrip dari file "/usr/local/etc/godns/godns-config.json".
{
"provider": "HE",
"password": "maCpVY9JnjEXJCi1",
"email": "kanakarobih",
"domains": [
{
"domain_name": "datainchi.com",
"sub_domains": ["www"]
}
],
"ip_urls": [
"https://dns.he.net"
],
"ipv6_urls": ["https://ipify.org"],
"ip_type": "IPv4",
"interval": 300,
"resolver": "8.8.8.8",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36",
"ip_interface": "nfe0",
"socks5_proxy": "",
"use_proxy": false,
"debug_info": true,
"proxied": false,
"notify": {
"telegram": {
"enabled": false,
"bot_api_key": "",
"chat_id": "",
"message_template": ""
},
"mail": {
"enabled": false,
"smtp_server": "",
"smtp_username": "",
"smtp_password": "",
"smtp_port": 25,
"send_from": "",
"send_to": ""
}
},
"webhook": {
"enabled": false,
"url": "http://localhost:5000/api/v1/send",
"request_body": "{ \"domain\": \"{{.Domain}}\", \"ip\": \"{{.CurrentIP}}\", \"ip_type\": \"{{.IPType}}\" }"
}
}
Jalankan GoDNS,
Buat file godns rc.d di folder /usr/local/etc/rc.d.
Kemudian pada file "/etc/rc.conf", tambahkan skrip berikut.
Semua fitur yang tersedia di GoDNS tidak kalah dengan aplikasi sejenis, yaitu ddclient. Anda harus mencobanya agar dapat merasakan manfaat dari GoDNS. Kami telah mencobanya, dan hasilnya sangat memuaskan.
Anda telah berhasil menjalankan GoDNS di server FreeBSD. Namun sayangnya daemon DoDNS tidak berjalan secara otomatis. Oke, sekarang kita akan membuat daemon GoDNS berjalan secara otomatis menggunakan skrip rc.d.
Buat file godns rc.d di folder /usr/local/etc/rc.d.
Pada file "/usr/local/etc/rc.d/godns" tulis skrip di bawah ini.
#!/bin/sh # PROVIDE: godns # REQUIRE: DAEMON LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable godns: # godns_enable (bool): Set to "NO" by default. # Set it to "YES" to enable godns. # godns_flags (str): Custom additional arguments to be passed # to godns (default empty). # godns_conf_dir (str): Directory where ${name} configuration # data is stored. . /etc/rc.subr name="godns" rcvar=godns_enable load_rc_config ${name} : ${godns_enable:="NO"} : ${godns_user:="nobody"} : ${godns_group:="nogroup"} : ${godns_conf_dir="/usr/local/etc"} start_precmd=godns_precmd stop_postcmd=godns_stop_postcmd procname="/usr/local/bin/${name}" pidfile="/var/run/${name}/${name}.pid" logfile="/var/log/${name}/${name}.log" required_files="${godns_conf_dir}/${name}-config.json" command="/usr/sbin/daemon" command_args="-f -t ${name} -o ${logfile} -p ${pidfile} ${procname} -c ${required_files} ${godns_args}" godns_precmd() { local rundir=${pidfile%/*} if [ ! -d $rundir ] ; then install -d -m 0755 -o ${godns_user} -g ${godns_group} $rundir fi local logdir=${logfile%/*} install -d -m 0750 -o ${godns_user} -g ${godns_group} $logdir } godns_stop_postcmd() { rm -f "$rundir" } run_rc_command "$1"
Langkah terakhir adalah menjalankan GoDNS, apakah dapat berjalan otomatis di server FreeBSD.
Dengan skrip rc.d, GoDNS Anda dapat berjalan secara otomatis. Anda tidak perlu lagi menjalankannya secara manual.
Semua fitur yang tersedia di GoDNS tidak kalah dengan aplikasi sejenis, yaitu ddclient. Anda harus mencobanya agar dapat merasakan manfaat dari GoDNS. Kami telah mencobanya, dan hasilnya sangat memuaskan.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar