Saya mungkin bukan orang pertama yang melakukan hal ini, namun saya perlu menggunakan layanan DNS dinamis NO-IP sehingga saya dapat dengan mudah mengonfigurasi perangkat dan komputer untuk mengakses sumber daya di LAN saya saat saya pergi. Bagi mereka yang kurang paham dengan NO-IP, ini adalah layanan DNS dinamis gratis. Sebagian besar koneksi rumah dan kantor kecil ke Internet memiliki IP dinamis, yang berarti alamat IP paling banyak berubah setiap kali koneksi dari router dibuat. Biasanya, nama domain memerlukan alamat IP statis agar dapat berfungsi. DNS Dinamis memungkinkan nama domain (yaitu subdomain.example.com) menggunakan IP dinamis dengan memperbarui NO-IP dengan alamat IP baru ketika alamat IP berubah. NO-IP kemudian mengaitkan IP tersebut dengan nama domain sehingga layanan dapat diatur terhadap domain tersebut, bukan pada IP yang diubah. Ini membuat konfigurasi menjadi lebih mudah.
Banyak router yang memiliki klien NO-IP bawaan, namun router saya tidak mendukung NO-IP, dan karena alasan apa pun, saya tidak akan pernah bisa mendapatkan klien yang direkomendasikan NO-IP agar host Linux dapat berfungsi. Saya mengunduh sumbernya dan mengompilasinya dengan mengikuti instruksi, dan tampaknya sumber tersebut berjalan, tetapi tidak pernah memperbarui alamat IP saya. Tidak ada output ke konsol atau file log untuk mendiagnosis masalah yang dapat saya temukan, jadi saya memutuskan untuk menulis sendiri, yang sebenarnya tidak terlalu sulit untuk dilakukan menggunakan skrip bash dan beberapa utilitas sederhana di kotak Linux saya. Berikut adalah panduan cara dan dokumentasi saya untuk menyiapkannya. Saya menjalankan server Ubuntu jadi saya menggunakan apt dan nano, tetapi ini dapat bekerja pada apa pun yang berbasis POSIX seperti Mac OS X, BSD, semua jenis Linux -- bahkan Raspberry Pi.
Skrip dapat dijalankan sebagai satu instance dengan parameter baris perintah, sebagai daemon, menggunakan crontab (utilitas untuk menjalankan program sesuai jadwal) atau sebagai layanan Linux.
Skrip ini memiliki satu ketergantungan, yaitu wget. Ini biasanya diinstal secara default di sebagian besar distro Linux dan BSD, tetapi jika tidak gunakan manajer paket Anda untuk menginstalnya.
sudo apt-get install wget
-atau-
sudo yum install wget
no-ip.sh -u=username -p=password -h=host.sample.com -d=true -l=/path/to/logfile.log
Parameter:
-u, --username
Nama pengguna untuk masuk ke no-ip.com.
-p, --password
Kata sandi untuk masuk ke no-ip.com.
-h, --hostname
Nama domain yang akan diperbarui.
-d, --detectip
Memberitahu skrip untuk mendeteksi alamat IP eksternal Anda. Ini lebih diutamakan daripada -i.
-i, --ip
Secara manual mengatur alamat IP yang akan diperbarui. Jika -d atau -i tidak ditentukan, no-ip akan menggunakan alamat IP yang terdeteksi.
-n, --interval
Saat menjalankan skrip sebagai daemon/layanan (lihat Instalasi), ini akan memperbarui no-ip setiap n menit.
-l, --logfile
Menetapkan jalur ke file log. File ini harus dapat ditulis.
-c, --config
Menetapkan jalur ke file konfigurasi. File ini harus dapat dibaca. Parameter file konfigurasi lebih diutamakan daripada parameter baris perintah.
no-ip.sh
Menjalankan skrip dengan pengaturan di file konfigurasi di lokasi default /etc/no-ip/no-ip.conf
no-ip.sh -u=username -p=password -h=host.sample.com -d=true -l=/path/to/logfile.log
Melakukan pembaruan satu kali, mendeteksi UP dan mencatat hasilnya
no-ip.sh -c=/home/username/no-ip.conf
Jalankan skrip dengan pengaturan di file konfigurasi.
no-ip.sh /dev/null 2>&1 &
Menjalankan skrip sebagai daemon dengan pengaturan di file konfigurasi di lokasi default /etc/no-ip/no-ip.conf.
File konfigurasi menggunakan sintaks sederhana untuk menentukan parameter. Parameter baris perintah apa pun (kecuali --config) juga dapat ditentukan dalam file konfigurasi. Aturan yang sama berlaku untuk parameter file konfigurasi seperti parameter baris caommand (mis. "detectip" menimpa "ip" jika keduanya ditentukan).
Contoh:
user=username
password=password
hostname=hostname.example.com
logfile=/var/log/no-ip.log
interval=10
detectip=true
Sebelum menginstal skrip, unduh dan ekstrak file ke mesin lokal Anda. Petunjuknya menganggap Anda berada di folder no-ip-master.
cd ~
wget https://github.com/theonemule/no-ip/archive/master.zip
unzip master.zip
cd no-ip-master
Metode 1: crontab
Crontabs memungkinkan Anda menentukan jadwal untuk menjalankan skrip dan juga akan menjalankan skrip sesuai pengguna yang dikonfigurasikan crontab. Pastikan pengguna telah menjalankan izin pada skrip, izin membaca pada file konfigurasi, dan izin menulis ke file log. Crontabs akan menjalankan skrip secara terjadwal sehingga tidak perlu menentukan interval.
Berikut cara menjalankan skrip sebagai root.
1.) Buat folder di dll.
sudo mkdir /etc/no-ip
2.) Buat file konfigurasi.
sudo touch /etc/no-ip/no-ip.conf
3.) Atur parameter dengan editor favorit Anda. Saya menggunakan nano. Lihat bagian File Konfigurasi di atas untuk detailnya.
sudo nano /etc/no-ip/no-ip.conf
user=username
password=password
hostname=hostname.example.com
logfile=/var/log/no-ip.log
detectip=true
4.) Salin no-ip.sh ke /usr/sbin
sudo cp no-ip.sh /usr/sbin/no-ip.sh
5.) Jadikan skrip dapat dieksekusi
sudo chmod +x /usr/sbin/no-ip.sh
6.) Masuk sebagai root
sudo -i
7.) Edit crontab root
crontab -e
8.) Tambahkan entri ke bawah. */10 memberitahu crontab untuk menjalankan skrip setiap kali waktu saat ini habis dibagi 10, atau setiap 10 menit dan menyimpan crontab.
*/10 * * * * /usr/sbin/no-ip.sh
Metode 2: Layanan Linux (ditulis untuk distro berbasis Debian. Ini akan berbeda-beda untuk distro lain)
Pastikan root telah menjalankan izin pada skrip, izin membaca pada file konfigurasi, dan izin menulis ke file log.
1.) Buat folder di /etc.
sudo mkdir /etc/no-ip
2.) Buat file konfigurasi.
sudo touch /etc/no-ip/no-ip.conf
3.) Atur parameter dengan editor favorit Anda. Saya menggunakan nano. Lihat bagian File Konfigurasi di atas untuk detailnya.
sudo nano /etc/no-ip/no-ip.conf
user=username
password=password
hostname=hostname.example.com
logfile=/var/log/no-ip.log
interval=10
detectip=true
4.) Salin no-ip.sh ke /usr/sbin
sudo cp no-ip.sh /usr/sbin/no-ip.sh
5.) Jadikan skrip dapat dieksekusi
sudo chmod +x /usr/sbin/no-ip.sh
6.) Salin layanan no-ip ke init.d
sudo cp no-ip-service /etc/init.d/no-ip-service
7.) Jadikan layanan no-ip dapat dieksekusi
sudo chmod +x /etc/init.d/no-ip-service
8.) Mulai layanan
sudo service no-ip-service start
9.) Tambahkan layanan untuk memulai saat boot.
update-rc.d no-ip-service defaults