00❗ Muammo
MikroTik ruterlarida dinamik DNS xizmatidan foydalanish uchun o'z DNS serverini sozlash muammosi.
01🎯 Yechim
O'z DNS serverini sozlash uchun MikroTik ruter, Bind, Apache va Shell skriptdan foydalanish mumkin.
02🛠 Sozlash bosqichlari
1️⃣ Web server sozlash
Web serverni sozlash uchun Apache yoki boshqa web serverdan foydalanishingiz mumkin.
<?php
$ip=$_SERVER[REMOTE_ADDR];
if ($_GET['hash']='ae2b1fca515949e5d54fb22b8ed95575') {
file_put_contents('deviceupdate.log','DATE: '.date('Y-m-d H:i:s').' IP: '.$ip.'n',FILE_APPEND | LOCK_EX);
file_put_contents('homeip.log',$ip,LOCK_EX);
print 'DATE: '.date('Y-m-d H:i:s').' IP: '.$ip;
}
?>2️⃣ Mikrotik skeduler sozlash
MikroTik skedulerni sozlash uchun /tool fetch buyrug'idan foydalanishingiz mumkin.
/tool fetch keep-result=no mode=http url='http://www.my-dns-servers-web-server.com/mikrotik/deviceupdate.php?hash=ae2b1fca515949e5d54fb22b8ed95575'
3️⃣ Shell skript sozlash
Shell skriptni sozlash uchun dyndns.sh faylini yarating va quyidagi kodni joylashtiring:
#!/bin/bash newip=$(cat /var/www/homeip.log) md5old=$(cat /var/www/homeip.md5) md5new=$(md5sum /var/www/homeip.log) echo '$(date) - No change' >> /var/log/dyndns.log if test '$md5old' = '$md5new' then echo '$(date) - No change' >> /var/log/dyndns.log else sed -i 's/^home.*/home IN A $newip/' /etc/bind/db.somedomain.com rndc reload somedomain.com md5sum /var/www/homeip.log > /var/www/homeip.md5 echo '$(date) - Updated ip $newip' >> /var/log/dyndns.log fi
03⚠️ Diqqat
- Versiya farqi bo'lsa, MikroTik RouterOS 6 va 7 versiyalari uchun maxsus sozlashlar talab etiladi.
04✅ Xulosa
O'z DNS serverini sozlash uchun MikroTik ruter, Bind, Apache va Shell skriptdan foydalanishingiz mumkin.
Izohlar
Hali izoh yo‘q — birinchi bo‘lib fikr bildiring.