Титла: Ddns в опростен вариант, как да? Публикувано от: Radev в Feb 11, 2007, 13:44 Една машина, която с свързва с интернет чрез ADSL получва динамичен IP адрес.
Как най-просто да я накарам след стартирането автоматично да ме уведомява за текущия си адрес? Четох малко за ddns (между другото define:ddns в Google не връща нищо на Английски да не говорим за Български ), но не бих искал да инсталирам някакви програми и да се регистрирам в някакви си доставчици на подобни услуги, а по-скоро си мисля за някакъв скрипт, но идея си нямам как да го направя. Предварително благодаря на отзовалите се! Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Feb 11, 2007, 15:14 Зависи по какъв начин искаш да те уведомява. Ето един пример как ще те уведоми с sms
#!/bin/bash file_with_ip=/path/to/the/file/file inet_card=eth0 from=nqkakyv@email.adres to=359880000000@sms.mtel.net echo `/sbin/ifconfig $inet_card | /bin/sed -n 's/\(.*\)inet addr:\(.*\)B.*$/\2/p'`>$file_with_ip mail -a "From: $from" -t $to < "$file_with_ip" Слагаш това в един изпълним файл, създаваш един празен файл някъде, в който ще се записва IP-то, редактираш първите 4 реда от скрипта и задаваш скрипта да се изпълнява при boot. В момента се сещам за два начина: 1. правиш shortcut-и на файла в /etc/rc*.d папките 2. слагаш ред от вида /path/to/the/script/script.sh в rc.local (респективно boot.local при SuSE) Ако скрипта се изпълнява, но sms-а не се изпраща, то се сещам за четири варианта за причината: 1.номера ти няма активирана услуга mail2sms 2.нямаш качен mail exchanger (например mailx, exim и т.н.) - пробвай командата mail извън скрипта дали я има 3.командата mail не работи с тези опции - махни -t пред $to, пробвай да махнеш и кавичките на "$file_with_ip" или комбинация от тези двете 4.firewall - виж да не би да ти е забранен 25-и порт А ако искаш друг вид известяване, кажи какво да бъде и ще ти драсна скрипта или, ако искаш, сам си поиграй. Само трябва да знаеш, че командата /sbin/ifconfig $inet_card | /bin/sed -n 's/\(.*\)inet addr:\(.*\)B.*$/\2/p' е тази, която извлича IP адреса ти Титла: Ddns в опростен вариант, как да? Публикувано от: Йордан в Feb 11, 2007, 15:15 bash + mail2sms
Титла: Ddns в опростен вариант, как да? Публикувано от: redcure в Feb 11, 2007, 15:15 Аз съм на pppoe и използвам това:
EXTIF=ppp0 EXTIP=`/sbin/ifconfig $EXTIF | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'` echo "$EXTIP" Титла: Ddns в опростен вариант, как да? Публикувано от: Йордан в Feb 11, 2007, 15:16 @neter много си бърз и активен днеска. Поздравления!
Титла: Ddns в опростен вариант, как да? Публикувано от: redcure в Feb 11, 2007, 15:17 4 отговора за 2 мин.
Титла: Ddns в опростен вариант, как да? Публикувано от: Йордан в Feb 11, 2007, 15:20 А ако имаш ДНС сървър за потрошване и знаеш, няма кой да ти го млати може да си направиш един хубав запис + днсклиент. Така на mirizlivo.dupe.com винаги ще отговаря тази машина
Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Feb 11, 2007, 15:33 Хахаха, GigaVolt, мерси, ама мисля, че това ми е едва 2-рия или 3-тия пост за днес. Важното е да помогнем максимално точно и полезно на човека, затова ми се ще да каже какво точно иска да е известяването. Ще му спомена други примери като създаване на файл на десктопа, промяна на тапета, изскачащ прозорец, съобщение по време на boot и т.н. Може и комбинация
Титла: Ddns в опростен вариант, как да? Публикувано от: Radev в Feb 12, 2007, 09:30 Благодаря Ви!
Идеята е наистина да ме известява на отдалечен компютър, а ако успея да измисля как директно да актулизира таблицата на bind за моята си зона още по-добре. Проблема е, че сегиз тогиз ми се налага да се закачам на тази (а може и на друга) машина с ssh и да свършвам туй-онуй и най-тъпото решение което ми хрумна е да накарам някой на машината да се закачи за мен (аз обикновенно съм със статично IP и конфигуриран dns сочещ към него), след което с iptraf да видя кой последно се е закачил и да пробва с това IP. Съгласете се, че идеята ми е тъпа и неудобна, но пък работи. Та сега да си осигурим някакъв комфорт. Достатъчно е да ми изпрати e-mail защото в повечето случаи се вижда от къде е изпратен, но това означава да знам как се конфигурира mail сървър, а аз не знам . Не че Debian не се справя (Редакция: много бързо пиша и греша клавишите ) сам, но в случая не става, защото въпросната дистрибуция е Тиликс 1.0.1, и ако се опитам да я актуализирам, което ще ми се наложи да да инсталирам exim с apt-get е меко казано нежелателно. (в друга тема има описани патила ) Другия проблем е, че adsl модема дава на машината IP 192.168.1.2 и съответно нямам какво да откривам с ifconfig. Още веднъж благодаря! Ще опитам да измисля как да си пращам поща. Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Feb 12, 2007, 11:05 Ето как ще изглежда скрипта за sms известяването, така че да ти дава външния адрес на модема
Код Т.е. заместваш ifconfig с wget. По този начин ще изтеглиш един index.html файл, единственото съдържание на който ще е твоя IP адрес. Трябва да използваш този index.html като стойност на променливата file_with_ip. Да ти напомня обаче, че това IP ще ти върши работа отвън до adsl модема, няма да можеш да го ползваш, за да се логнеш в машината си например, освен ако не пренасочиш портове, незнам дали има такава опция в adsl модемите. Не разбрах, нямаш ли команда mail? А и какъв е проблема да качиш exim? Лесно е. Още по-лесно е да качиш mailutils. Това не е същински пощенски сървър, просто инструмент за трансфер на съобщения. Титла: Ddns в опростен вариант, как да? Публикувано от: Radev в Feb 12, 2007, 11:15 БТК прелагат пренасочване на портове от модема към вътрешната мрежа (пише го в общите условия и като се обадиш след седмица-две до месец го активират ), а аз вече имам пренасочване.
За съжаление не знам дали имам mail или трябва да се обадя да ми кажат IP-то по вече описания метод или трябва да отида до там, а "там" е на около 50 км. и ще ида в сряда . А иначе този скрипт ми изглежда супер и най-късно в сряда ще пробвам и ще кажа дали всичко е наред. Благодаря! Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 10, 2008, 01:31 Цитат Ето как ще изглежда скрипта за sms известяването, така че да ти дава външния адрес на модемаПърво здравей.При мен нещо не тегли index.html файла (с wget -q http://whatismyip.org ).На мен освен IP адрес-а ми трабва да извлече и да прати ,ако машината е down/up ; down/up link и ,ако има пълен хард диск.Преди 3 месеца си играх със скрип за известие при запълване на хард диска ,но като сменях машините го бастисах ,а сега много малко време ми остава да седна и да довърша нещо. Титла: Ddns в опростен вариант, как да? Публикувано от: bulg в Aug 10, 2008, 04:44
Титла: Ddns в опростен вариант, как да? Публикувано от: VladSun в Aug 10, 2008, 12:49 Ако вторият ти компютър е със статичен ИП адрес (както казваш), тогава би могъл да си изграждаш тунел м/у двата, като този със динамичния ИП адрес го създава при boot.
Титла: Ddns в опростен вариант, как да? Публикувано от: bnight в Aug 10, 2008, 19:18 Ето един лесен скрипт на баш Който прави динамичен днс с байнд естествено трябва да прочетете малко повече за как точно се генерират ключовете за зоне трансфер че вече съм забравил къде съм го чел. Реализирано е и работи добре поне според мен.
Мисля че ще ти свърши работа. Поздрави. Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 11, 2008, 00:38
Ако ползвам този линк ще свали файл с ненужни неща.->
С www.whatismyip.org го закрепих като резултатът е следния: file:index.html contents:87.43.29.29 До скоро и очаквам помощ за скрипт-а Титла: Ddns в опростен вариант, как да? Публикувано от: bulg в Aug 11, 2008, 02:43 Toва сработва:
Титла: Ddns в опростен вариант, как да? Публикувано от: foxb в Aug 11, 2008, 04:10 А няма ли да е по-лесно да се ползва:
http://whatismyip.com/automation.asp Там има линк на който получаваш само IP адреса. Колкото до другата информация може би снмп клопка snmp trap или електронна поща. Титла: Ddns в опростен вариант, как да? Публикувано от: satir в Aug 11, 2008, 04:38 хм...... не ги разбирам много тия работи... ма я виж тва: danasoft
Титла: Ddns в опростен вариант, как да? Публикувано от: bnight в Aug 11, 2008, 11:21
да този скрип който ти дадох го ползвам в реална среда и си работи супер . Поздрави. Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 17, 2008, 01:49 1. apt-get install mailutils OK
2. Вие вече сте регистрирани за услугата mail2sms. Услугата в момента е със статус активен. OK 3.
4. [root@stoyanov:~]$ sh ip.sh Null message body; hope that's ok Done! IP Adress: Send 5.[root@stoyanov:~]$ pico index.html < там е IP ADDRESS OK 6.iptables --list < OK Казва ,че няма съобщения ,но защо да се надявам че е добре? След това няма смс няма нищо естествено. Има проблем ,но явно не го виждам. Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 17, 2008, 10:08 Я!? Кога сте извадили тази тема от архива? Пропуснал съм да я видя
h7d8, относно последния ти пост: 1. За това, че ти изписва "Null message body; hope that's ok". В скрипта си забил статичен път, където да се търси index.html (демек това, че променливата $store_ip e равна на /root/index.html), а при изпълнението на wget не указваш къде да се свали файлът index.html (в този случай трябва да се зададе да се сваля в /root) и така файлът се сваля там, откъдето изпълняваш скрипта. Виж в коя папка се намираш, когато изпълняваш скрипта. Трябва да се намираш в папка /root или просто махни това "/root/" от $store_ip. Между другото, редът "[root@stoyanov:~]$" изглежда странно. Как така в момента си влязъл с потребител root и уж се намираш в домашната му папка ("~" в случая трябва да значи /root), а накрая ти е изписан $, а не #? Ти с каква дистрибуция или ОС си? И правил ли си някакви промени относно това? 2. За неизпратения sms. Сигурен ли си, че при ръчно изпълнен mail, sms-ът се изпраща? Ако се изпраща, виж дали използваш един и същи потребител, когато изпълняваш скрипта и когато изпълняваш mail ръчно. Пробвай да изпълниш скрипта под root, ако още не си го направил (както казах, онзи ред там изглежда странно). 3. Защо в 6-та точка пише "iptables --list", а не си ни показал изхода от тази команда? Защо тогава я изпълняваш? edit0: А, забравих да вметна. Ако имаш инсталиран curl, можеш да си опростиш малко изпълнението на скрипта като не теглиш някакъв файл, който да остава на машината, а просто си вземеш IP-то в променлива, а именно
Обърни внимание на кавичките, които съм използвал. Това е единичната кавичка, която се намира на клавиша с вълничката (~), горе вляво. След това можеш да си подредиш mail командата в скрипта и така
edit1: Оп, още един проблем видях в твоя скрипт - загради стойностите на променливите $from и $to в кавички. Т.е.
Титла: Ddns в опростен вариант, как да? Публикувано от: n00b в Aug 17, 2008, 11:13 http://whatismyip.org/ <- Това е линка!
Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 17, 2008, 15:27
Тези неща ги изпълнявам ,но пак ми казва ,че няма месидж.Когато пробвам с curl ми показва следното: [root@stoyanov:~]$ sh ip.sh ip.sh: line 7: 87.126.72.28: No such file or directory Изпълнявам с роот и съм в роот дир-а.По-горе реда в който съм писал за iptables..само проверявам дали всичко е наред.Ако пробваме да го опростим с curl дали ще може да вмъкнем в скрипта да извлича ,ако харда е пълен и ако има голямо натоварване на CPU.Относно странното [root@stoyanov:~]$ то изглежда така:
Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 17, 2008, 17:10 Нормално е да ти гърми с така използвания curl - не си си преправил mail командата по начина, по който ти показах. Ето как трябва да изглежда скриптът
Така скриптът трябва да работи. Има обаче една подробност - в момента явно има някаква нестабилност в услугата mail2sms на MTel В момента, когато пиша този пост, и аз не мога да изпратя sms нито ръчно, нито със скриптовете ми, които от години си ми пращат sms-и за разни неща. Цял ден не бях пред компютъра и се чудех защо не съм получил нито един sms за това време. Така че, изпиши си скрипта така, както ти го дадох и чакай услугата да се стабилизира. P.S.: За протокола. Командата mail има две разновидности. При теб си е тази, за която говорим, но има и друга, при която опциите са други, а този ред при нея трябва да се формира по същия начин, но без -t. Т.е.
Но, както казах, това е само за протокола, така че ти не го вземай предвид. edit: Забравих да ти обясня защо в момента скриптът ти гърми с грешката "ip.sh: line 7: 87.126.72.28: No such file or directory". Тъй като си променил задаването на променливата $store_ip така, както ти казах, но не си променил реда с командата mail, то при изпълнението на скрипта след заменяне на променливите с реалните стойности се е получил такъв ред
Както сам виждаш, получава се, че текстът на писмото трябва да се извлече от файла 87.126.72.28, а такъв файл няма. При реда с командата mail, който ти давам аз, нямаме извличане на текста на писмото от външен файл, а текстът на писмото се получава от съдържанието на echo, което седи преди mail командата Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 17, 2008, 18:46
Прав си ,мерси за корекциите сега остава да почакаме да оправят от мтел услугата.
Ръчно какъв е точно синтаксиса на едната команда?С mail --help немога да го наредя. Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 17, 2008, 18:59
Синтаксисът е същият, както в скрипта. Само замени променливите с техните стойности
Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 17, 2008, 19:23
Синтаксисът е същият, както в скрипта. Само замени променливите с техните стойности
Говоря за майл както му е реда.От,тема,копие,съдържание.М/у другото още не са оправили mail2sms.Така съставения скрипт обаче ,ще праща IP само при рестарт на машината.Ако pppoe пропадне при следващото закачане няма да прати смс с новия адрес.На бтк съм.. и аз по някъв начин се боря с динамичните адреси. Ако вмъкнем това което ползва redcure ;
Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 18, 2008, 01:18 //offtopic
Проблемът с услугата mail2sms май ще излезе от съвсем друго естество. Забелязах, че от техния сайт може да се изпрати sms без проблем, но от всички други сървъри, от които пробвах, не може. Явно са блокирали услугата поради някаква причина и (мое предположение) най-вероятно става дума за пари, но засега не откривам никаква информация по въпроса. Язък, ако направят услугата платена, но... каквото, такова //ontopic Аз пак не разбрах какво точно искаш да ти обясня около mail командата и писмото. Дай някакъв пример, че да хвана идеята ти. А относно изпращането на писмо (да използваме общата дума писмо, защото не се знае какво ще става с услугата mail2sms) при всяка смяна на IP-то, в момента се сещам само за едно предложение, което да ти дам - преправи скрипта да изглежда така
Създай файла "/някакъв/път/файл_в_който_да_се_пази_IPто" предварително. След като си готов със скрипта, сложи го за изпълнение в cron на всеки 5 минути например (да не е съвсем начесто, тъй като whatismyip.org са сложили ограничения и, ако е много начесто, в много моменти скриптът няма да може да получи информация от там). Така, при всяко изпълнение на скрипта от cron-а ще се взема настоящото ти IP, ще се сравнява с това, което се пази във файла "/някакъв/път/файл_в_който_да_се_пази_IPто" и, ако са различни, ще ти изпраща писмо с новото IP и ще обновява записа във файла "/някакъв/път/файл_в_който_да_се_пази_IPто". Редът на redcure не ти върши работа, тъй като въпросното IP не се задава в твоята система, а в модема на БТК. Има хипотетична вероятност в настройките на модема да може да се зададе да изпълнява нещо при подновяване на връзката, но ти май нямаш достъп до неговите настройки. Ако имаш желание, може да врътнеш една шайба до поддръжката на БТК и да ги питаш за информация или съдействие, но малко се съмнявам, че ще получиш това, което ти е нужно. Иначе, ако това IP се намираше на твоята машина, редът на redcure върши работа и можеше да го сложиш за изпълнение при задаването на $store_ip променливата на мястото на curl командата. Това, което прави редът на redcure, е да изпълни ifconfig и да изреже само нужното IP от изхода на командата. P.S.: Какъв е смисълът да записваш във /var/log/messages някакви ни в клин, ни в ръкав редове "Done! IP Adress: Send"? Сложи го да бъде поне така
за да знаеш поне кога точно се е случило това. Допълнително, файлът /var/log/messages не е много удачно решение за файл, в който да пазиш този лог. Направи си някакъв файл, в който да си пълниш само тази информация, за да не се ровиш из купчината друга информация във /var/log/messages. Виж и дали можеш да си измислиш още нещо по-информативно, което да си пазиш в този лог и, ако не се справяш с изписването му в скрипта, ще помагаме. Всяко действие в скрипта трябва да е с някаква практична цел, иначе става излишно Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 18, 2008, 16:19 Цитат //offtopic<span style='color:purple'>Дано не се окаже ,че това е излишно.Ако мтел спрът тази услуга ще е много лошо.До модема имам достъп, <!--emo&:)--><img src="http://www.linux-bg.org/iB_html/non-cgi/emoticons/smile.gif" border="0" valign="absmiddle" alt=':)'><!--endemo--> и в момента съм го пуснал бридж и на машината съм пуснал pppoe.Така можеби се оптимизира и няма проблеми с недостик на рам и прочие.Ако има какво да направя още ,бих могъл.За логването си много прав понеже посления път като рових ми мина деня.</span> <!--emo&:ok:--><img src="http://www.linux-bg.org/iB_html/non-cgi/emoticons/thumbs-up.gif" border="0" valign="absmiddle" alt=':ok:'><!--endemo--> Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 18, 2008, 17:24 От днес на обяд услугата вече е активна, така че можеш да си продължиш действията със скрипта А щом pppoe връзката е при теб, тогава не използвай предложението с cron-а, което ти дадох, а ползвай реда на redcure, с който скриптът ще изглежда така
Както виждаш, давам ти предложение в лога да си записваш и кое е IP-то, което е изпратено, може да ти свърши работа edit: Опа, забравих да ти кажа какво да го правиш този скрипт Не го слагай да се изпълнява самостоятелно при стартиране на системата, а си направи един изпълним файл, в този файл си сложи последователно първо командата за вдигане на pppoe връзката и след нея си сложи твоя скрипт. Махни и самостоятелното изпълнение на командата за вдигане на pppoe връзката при зареждане на системата. Използвай новосъздадения изпълним файл за вдигане на pppoe връзката както при зареждане на системата, така и при последвало ново свързване. Така, след всяко вдигане на pppoe интерфейса, твоят скрипт ще се изпълнява и ще ти изпраща настоящия IP адрес. Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 18, 2008, 20:00
Забелязвам ,че и по стария начин не тръгва т.е не праща смс.Сега нов проблем.
Като спра изпълнението ,то трябва този файл да сложа в rcconf ,но дали при нормална работа и само прекъсване на pppoe ще се закачи само и ще прати смс. Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 24, 2008, 21:24 Сега пробвах да пратя от пощата си към 35988ЬЬЬЬЬЬЬ@sms.mtel.net и се получи,значи работи услугата. само скрипта иска обработка.
Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 25, 2008, 23:29 Я пробвай следните две команди и ми кажи с коя от двете си успял да си пратиш sms
Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 26, 2008, 16:19
По двата начина не получих смс ,но явно и другаде има проблем.Веднага от абв си пратих писмо на 35988ЬЬЬЬЬЬЬ@sms.mtel.net и го получих моментално. Титла: Ddns в опростен вариант, как да? Публикувано от: neter в Aug 26, 2008, 16:49 Нямаш активен MTA (mail transfer agent) в системата. Инсталирай си exim и го пусни. Не е нужно да го настройваш. Веднага след пускането му ще можеш да пращаш sms-и. Виж коя от двете команди ще сработи при теб и ползвай нея в скрипта, а ако сработят и двете, използвай тази, синтаксисът на която ти харесва повече
Титла: Ddns в опростен вариант, как да? Публикувано от: h7d8 в Aug 27, 2008, 01:17 Цитат Нямаш активен MTA (mail transfer agent) в системата. Инсталирай си exim и го пусни. Не е нужно да го настройваш. Веднага след пускането му ще можеш да пращаш sms-и. Виж коя от двете команди ще сработи при теб и ползвай нея в скрипта, а ако сработят и двете, използвай тази, синтаксисът на която ти харесва повече ;)Exim ,бях го сложил ,но ми даде да го конфигурирам за да го пусне.Не помня със сигурност ,но много много май не четох с подробности кое за какво е.Ако има нещо специфично ще пробвам с eximconfig ,а ако има конф направо мога и него да сложа.Можеби нещо съм го омацал като ми даде да го конфигурирам. |