در ادامه توسعه Home Lab یکی از اولین مشکلاتی که بهش خوردم مشکل Dynamic بودن IP های ISP بود به این معنا که بعد از 24 ساعت به طور معمول IP شما عوض میشه چه بخاین چه نه. برای تست این کافیه در گوگل سرچ کنید whats my ip یا به این سایت مراجعه کنید و بعد 24 ساعت خواهید دید IP تون عوض میشه.
با مشاهده این بخش تو مودم به ذهن من اومد:
عه Dynamic DNS دیگه چیه؟!
بعد از تحقیق معلوم شد که این یه دامنه میده بهتون مثلا test.dyndns.org بعد یه App هم سمت سیستمتون اجرا میشه که اپدیت میکنه DNS رو که دامین شما همیشه اشاره کنه به IP خودتون.
من تنها شرکتی که پیدا کردم و رایگانه noip بود که یه App ویندوزی داشت که تست نکردم ولی App لینوکسش واقعا بد بود و هر ماه باید تایید میکردین هنوز دامین رو میخاین 1 سال با این داستان من سر کردم ولی خیلی حال نکردم چرا که خیلی وقتا App اش کار نمی کرد و IP اپدیت نبود?♂️
این بود که 10 تومن رو بدیم و Static IP رو بخریم:
البته فقط قیمت نبود کلی شرط شروط هم داره که خیلی چیز جالبی نیست. این رو گذاشتم اگه راه حل دیگه به ذهنم نرسید.
البته اینم بگم واسه دوستانی که نمی دونن IP Static یعنی اینکه دیگه IP شما دیگه تغییر نمی کنه و این باعث کمی کاهش امنیت و Privacy شما نیز میشه
خب من دامنه mollasalehi.ir رو دارم و از Cloudflare هم برای خیلی از کارها استفاده میکنم از جمله DNS:
چی میشد اگه یه رکورد مثلا test داشتیم و این هعی به روز میشد یعنی test.mollasalehi.ir همیشه اشاره کنه به IP خونه کنه. خب این شدنیه چون Cloudflare API هم داره و با وصل کردن API به یه کد ساده پایتون و تماااام
خب بریم یه توضیح ساده بدم رو لینوکس:
$mkdir updateCloud $cd updateCloud/ $vim main.py $chmod +x main.py
اول یه پوشه میسازید حالا من به اسم updateCloud ساختم بعد با ید کد رو بزاریم اونجا خب کد رو هم میتونین تو گیت ببینین چرا که خیلی خوب میشه کد گذاشت تو ویرگول ?♂️
بعدش دیگه اسونه باید قبل از اجرای کد یه رکورد A ایجاد کنید و با اجرای اول رکورد ID رو پیدا کنید و در RECORD_ID کد قرار بدید و با هر اجرای کد رکورد اپدیت میشه. دیگه کافیه بزاریم این کد رو تو Cornjob ها تا هر ساعت اجرا شه.
کافیه crontab -e رو ران کنید و خط زیر رو اضافه کنید:
@hourly /root/updateCloud/main.py
من فعلا دارم از همین راه حل اخری استفاده میکنم و اوکیه اگه مشکلی پیش اومد خبرتون میکنم ??