Welcome to Sysnet Board คู่มือ การใช้งานอุปกรณ์ Network. Please log in or sign up.
สมาชิกทั้งหมด
17,676
กระทู้ทั้งหมด
9,931
หัวข้อทั้งหมด
4,628

  • ขอความช่วยเหลือด้วยครับ เคสนี้ซีเรียสจริงๆ
    เริ่มโดย mobilesuit
    Read 7,611 times
0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

 

 
ผมควรจะทำอะไรเพิ่มครับ เพื่อให้ระบบ DDNS มันทำงานได้ ทุกวันนี้ต้องโทรไปขอ ip จาก TOT วันละหลายครั้ง แล้วมาอัพเดท dns ด้วยมือ ถึงจะทำให้เจ้าของอาคารดูกล้องผ่านเน็ตได้ นั่งลองนู่นลองนี่ทุกวัน แต่ก็ไม่ได้ผลครับ พอจะช่วยรีโมทเข้ามาดูให้ได้ไหมครับ ว่าผมทำอะไรผิดไป Mikrotik ถึงไม่ส่งค่าไปให้เว็บ ddns อัพเดท IP  :'(



ภาพด้านล่าง มีอะไรผิดปกติไหมครับ ผมลองกดที่แถบ Environment แล้วเห็นค่าในช่อง Value เป็น False


1. script ก็อปในเวปบอร์ดครับ ส่วนที่ไม่รัน น่าจะคำสั่งจาก Scheduler ผิดครับ คุณตั้งชื่อไว้ เป็นตัวใหญ่ แต่เรียกเป็นตัวเล็ก ใน script ชื่อเป็น dynDNS  แต่เวลาที่คุณเรียกใช้ ใน Scheduler จะเป็น dynDnsครับ ลองเปลี่ยนดูก่อน จากเดิม /systen script run dynDns  เปลี่ยนเป็น /systen script run dynDNS ครับ
2. ถ้าจะดู IP Wan ให้เข้าไปที่เมนู IP เลือก Address ครับ จะได้ไม่ต้องโทรไปขอกับทาง TOT
3. ให้ดู Log ครับ ว่าขึ้นอะไรบ้าง เพราะ scritp ใน webboard ของคุณยอดใช้ได้ปกติครับ

ลองใช้สคริปนี้ดูครับ



Script

/system script
add name=DynDns policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    source=":global ddnsuser \"userDYNDNS\"\r\
    \n:global ddnspass \"passDYNDNS\"\r\
    \n:global theinterface \"pppoe-out1\"\r\
    \n:global ddnshost DYNDNS.dyndns.org\r\
    \n:global ipddns [:resolve \$ddnshost];\r\
    \n:global ipfresh [ /ip address get [/ip address find interface=\$theinterf\
    ace ] address ]\r\
    \n:if ([ :typeof \$ipfresh ] = nil ) do={\r\
    \n   :log info (\"DynDNS: No ip address on \$theinterface .\")\r\
    \n} else={\r\
    \n   :for i from=( [:len \$ipfresh] - 1) to=0 do={ \r\
    \n      :if ( [:pick \$ipfresh \$i] = \"/\") do={ \r\
    \n    :set ipfresh [:pick \$ipfresh 0 \$i];\r\
    \n      } \r\
    \n}\r\
    \n \r\
    \n:if (\$ipddns != \$ipfresh) do={\r\
    \n    :log info (\"DynDNS: IP-DynDNS = \$ipddns\")\r\
    \n    :log info (\"DynDNS: IP-Fresh = \$ipfresh\")\r\
    \n   :log info \"DynDNS: Update IP needed, Sending UPDATE...!\"\r\
    \n   :global str \"/nic/update\\\?hostname=\$ddnshost&myip=\$ipfresh&wildca\
    rd=NOCHG&mx=NOCHG&backmx=NOCHG\"\r\
    \n   /tool fetch address=members.dyndns.org src-path=\$str mode=http user=\
    \$ddnsuser \\\r\
    \n         password=\$ddnspass dst-path=(\"/DynDNS.\".\$ddnshost)\r\
    \n    :delay 1\r\
    \n    :global str [/file find name=\"DynDNS.\$ddnshost\"];\r\
    \n    /file remove \$str\r\
    \n    :global ipddns \$ipfresh\r\
    \n  :log info \"DynDNS: IP updated to \$ipfresh!\"\r\
    \n    } else={\r\
    \n     :log info \"DynDNS: dont need changes\";\r\
    \n    }\r\
    \n} "

/system scheduler
add interval=10m name=DynDns on-event=DynDns policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-time=\
    startup


#3
ขอบคุณมากครับ สำหรับความช่วยเหลือ ตอนนี้ผมลองเปลี่ยนคำว่า DNS ให้เป็นตัวพิมพ์ใหญ่ตามที่คุณ yuttapong คอมเม้นท์มา ต้องรอดูว่าพรุ่งนี้ DNS จะอัพเดทเป็นปกติหรือไม่ ส่วนที่คุณ yuttapong แนะนำให้ไปดู IP WAN ใน Address นั้น พอดีผมรีโมทเข้าไปไม่ได้น่ะครับ แล้วไม่ได้อยู่ที่หน้าระบบด้วย ก็เลยต้องโทรถาม TOT น่ะครับ แหะๆ  :P

อย่างไรถ้า สคริปต์ใช้ไม่ได้จริงๆ จะลองสคริปต์ที่คุณ tOn— โพสมานะครับ

ขอบคุณทุกท่านมากๆ ครับ

ป.ล. ผมว่า สคริปต์ ยังไงๆ มันก็ Work แหละครับ แต่มันผิดที่ผมเอง ที่ไม่รู้ไปทำอะไรเข้า ถึงได้ผิดพลาด แล้วไม่ยอมรันทุกๆ หนึ่งนาที


ได้แล้วครับ อัพเดททุกๆ วัน ผมสังเกตมาหลายวันแล้ว เป็นไปตามที่คุณ yuttapong บอกไว้เป๊ะเลยครับ ใน Schedule ตัวอักษรเล็ก-ใหญ่มีผล ผมทำผิด ก็เลยไม่มีการเช็คอัพเดท

ขอบคุณมากๆ ครับ  :)