สองวิธีในการตั้งค่า DDNS บน router MikroTik
FastDDNS มีการตั้งค่า hostname สำเร็จรูปให้เลือกสองแบบ RouterOS สำเร็จรูปสองแบบ วิธีที่ 1 คือบรรทัดเดียวที่คุณวางลงในเทอร์มินัล: ระบบจะดาวน์โหลดสคริปต์ที่สร้างขึ้นสำหรับ hostname ของคุณ จากนั้นสร้าง /system scriptสคริปต์/system scheduler และรายการตัวกำหนดเวลาให้คุณ วิธีที่ 2 คือการป้อนคำสั่งอัปเดตเดียวกันด้วยมือลงในตัวกำหนดเวลาSystem > Scheduler ทั้งสองวิธีจะเรียก URL อัปเดตของ FastDDNS ทุกสองนาที
ใช้วิธีที่ 1 เว้นแต่คุณมีเหตุผลที่จะไม่ใช้ ใช้วิธีที่ 2 หากคุณต้องการใช้ WinBox มากกว่าเทอร์มินัล หากเราเตอร์ของคุณบล็อกการดาวน์โหลด หรือหากคุณต้องการตัวกำหนดเวลาภายใต้ชื่อที่คุณเลือก
| วิธีที่ 1 — สคริปต์อัตโนมัติ | วิธีที่ 2 — ตัวกำหนดเวลาด้วยมือ | |
|---|---|---|
| ตำแหน่งที่ทำงาน | เทอร์มินัล (WinBox หรือ SSH) | System > Scheduler ใน WinBox / WebFig |
| สิ่งที่คุณวาง | หนึ่งบรรทัด | สามช่องและคำสั่งหนึ่งคำสั่ง |
| ชื่อตัวกำหนดเวลาที่สร้างขึ้น | FastDDNS.net (คงที่) | ชื่อใดก็ได้ที่คุณพิมพ์ — แผงควบคุมจะแนะนำ fastddns |
| ช่วงเวลาการอัปเดต | 120 วินาที | 00:02:00 |
| การอัปเดตครั้งแรก | ทำงานหนึ่งครั้งทันทีหลังติดตั้ง | ทำงานหลังจากช่วงเวลาแรก |
| จำกัดเวลา | ลิงก์ดาวน์โหลดจะหมดอายุ 1 ชั่วโมงหลังจากที่แผงควบคุมสร้างลิงก์ | ไม่มี |
ก่อนเริ่มต้น
มีสี่สิ่งที่ต้องเตรียม และสองสิ่งในนั้นเป็นตัวตัดสินว่าการเข้าถึงระยะไกลจะใช้งานได้หรือไม่
- ชื่อโฮสต์ FastDDNS สร้างได้ฟรีที่ FastDDNS จากนั้นเปิด hostname นั้นแล้วเลื่อนลงไปที่ DDNS Configuration Parameters > MikroTik Routers
- สิทธิ์ผู้ดูแลระบบใน RouterOS ผ่าน WinBox, WebFig, หรือ SSH.
- IP สาธารณะจริงบนอินเทอร์เฟซ WAN หาก ISP ของคุณให้คุณอยู่หลัง Carrier-Grade NAT, DDNS จะช่วยไม่ได้ — hostname จะชี้ไปยังที่อยู่ที่ไม่มีใครภายนอก ISP เข้าถึงได้ เรียกใช้ CGNAT Checker ใน แอป FastDDNS บนมือถือ ก่อนเสียเวลาไปกับ router
- การเปิดพอร์ตสำหรับสิ่งที่คุณต้องการเข้าถึง DDNS ทำหน้าที่เพียงรักษาให้ชื่อชี้ไปยังที่อยู่ที่ถูกต้อง คุณยังต้องตั้งค่ากฎ firewall และ NAT ที่ตรงกันบน router และสามารถตรวจสอบได้ภายหลังด้วย Port Check
หากต้องการดูว่า router ของคุณมีที่อยู่ใดอยู่จริง ให้แสดงรายการที่อยู่ทั้งหมด แล้วดูแถวที่อินเทอร์เฟซเป็นลิงก์ WAN ของคุณ — ลิงก์ที่ใช้เส้นทางเริ่มต้น:
/ip address print
/ip route print where dst-address=0.0.0.0/0หากที่อยู่ WAN นั้นอยู่ใน 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 หรือ 100.64.0.0/10 router จะไม่มี IP สาธารณะ และมีอุปกรณ์บางอย่าง upstream กำลังทำ NAT อยู่ ช่วง 100.64.0.0/10 โดยเฉพาะคือช่วงที่สงวนไว้สำหรับ Carrier-Grade NAT
วิธีที่ 1 — สคริปต์ติดตั้งอัตโนมัติแบบบรรทัดเดียว
ขั้นตอนที่ 1 — คัดลอกบรรทัดจากแผง hostname
เปิด hostname ของคุณแล้วเลื่อนลงไปที่ส่วน DDNS Configuration Parameters ด้านล่างของหน้า อุปกรณ์ทุกตระกูลที่รองรับจะมีแผงอยู่ที่นั่น แผงที่คุณต้องการคือ MikroTik Routers

เปิดแผงนั้นแล้วคัดลอกกล่องใต้ วิธีที่ 1 เป็นบรรทัดยาวบรรทัดเดียวที่ลงท้ายด้วย token ซึ่งเป็นของบัญชีคุณ:

:do { /tool fetch check-certificate=no url="https://fastddns.net/th/member/download/YOUR-DOWNLOAD-TOKEN" dst-path=fastddns.txt; import fastddns.txt} on-error={ [:terminal style error]; :put "ERROR"; }คัดลอกบรรทัดจริงจากแผงควบคุม แทนการพิมพ์บรรทัดนี้ใหม่ — token ใช้ระบุ hostname ของคุณ
ขั้นตอนที่ 2 — วางลงในเทอร์มินัล
ใน WinBox ให้เปิด New Terminal หรือเชื่อมต่อผ่าน SSH จากนั้นวางบรรทัดดังกล่าวแล้วกด Enter /tool fetch จะดาวน์โหลดสคริปต์เฉพาะของคุณไปไว้ในรายการ Files ของเราเตอร์เป็น fastddns.txt จากนั้น import จะเรียกใช้สคริปต์นั้น
สำหรับ check-certificate=no: ค่านี้บอกให้ fetch ข้ามการตรวจสอบ trust chain ของใบรับรอง TLS โดย RouterOS ตั้งค่าเริ่มต้นสำหรับตัวเลือกนี้เป็น no อยู่แล้ว และแผงควบคุมระบุค่านี้ไว้อย่างชัดเจน เพื่อให้การดาวน์โหลดทำงานได้แม้ router จะไม่มีใบรับรองใน certificate store หรือเวลายังไม่ซิงค์ หากต้องการตรวจสอบใบรับรอง ให้เปลี่ยนเป็น check-certificate=yes — ซึ่งจะทำงานได้ก็ต่อเมื่อ router นำเข้า CA store แล้วและเวลาถูกต้อง โปรดทราบว่าการเปลี่ยนค่านี้มีผลเฉพาะการดาวน์โหลดครั้งเดียวนี้เท่านั้น สคริปต์ที่ router ติดตั้งภายหลังมี check-certificate=no ของตัวเองสำหรับการอัปเดตแต่ละครั้ง และคำสั่งของวิธีที่ 2 ก็เช่นกัน
ขั้นตอนที่ 3 — สคริปต์สร้างอะไรขึ้นบ้าง
ไฟล์ที่นำเข้าไม่ใช่กล่องดำ ไฟล์นี้จะแสดง hostname, username และ key ของคุณ จากนั้นทำสี่อย่างต่อไปนี้:
- ลบสคริปต์และ scheduler ที่มีอยู่ซึ่งชื่อ FastDDNS.net ออก เพื่อให้การเรียกใช้ซ้ำไม่ทิ้งรายการซ้ำไว้
- เพิ่ม /system script ชื่อ FastDDNS.net ซึ่งมีคำสั่งอัปเดต
- เพิ่ม /system scheduler ชื่อ FastDDNS.net พร้อมด้วย
interval=120sและstart-time=startup - รันสคริปต์ทันทีครั้งเดียว แทนการรอรันตามตารางครั้งแรก
การติดตั้งที่เสร็จสมบูรณ์จะมีลักษณะดังนี้ในเทอร์มินัล:
ADD new Script: Complete.
ADD new Scheduler: Complete.
Complete add FastDDNS.อ่านสามบรรทัดนี้ตามที่เป็นจริง: ตอนนี้มีสคริปต์และ scheduler แล้ว สิ่งเหล่านี้ไม่ได้ยืนยันว่า hostname ได้รับการอัปเดต — ตัวติดตั้งจะแสดง Complete add FastDDNS. แม้ว่าการรันครั้งแรกจะถูกปฏิเสธก็ตาม ตรวจสอบการอัปเดตจริงด้วยวิธีตรวจสอบด้านล่าง
ขั้นตอนที่ 4 — ลิงก์ดาวน์โหลดจะหมดอายุหลังผ่านไปหนึ่งชั่วโมง
token ในบรรทัดนั้นสร้างขึ้นเมื่อหน้าแผงควบคุมถูกแสดงผล และจะหยุดทำงานหลังจาก 3600 วินาที หากวางสำเนาเก่า router จะแสดง ERROR เนื่องจากเซิร์ฟเวอร์ตอบกลับเป็น 410 # Download token expired. แทนที่จะเป็นสคริปต์ วิธีแก้คือง่าย ๆ เพียงโหลดหน้า hostname ของคุณใหม่ แล้วคัดลอกบรรทัดนั้นอีกครั้ง
วิดีโอแนะนำด้านล่างเป็นการบันทึกเก่า แผงควบคุมได้รับการออกแบบใหม่ตั้งแต่นั้น จึงไม่ตรงกับภาพหน้าจอด้านบน — แต่ขั้นตอนและคำสั่งยังเหมือนเดิม
วิธีที่ 2 — ตั้งค่า scheduler ด้วยตนเอง
วิธีนี้ให้ผลลัพธ์เหมือนกับวิธีที่ 1 แต่คุณเป็นผู้กรอกข้อมูลเอง และไม่มีการดาวน์โหลดสิ่งใดไปยัง router
ขั้นตอนที่ 1 — สร้างรายการ scheduler
ใน WinBox ไปที่ System > Scheduler แล้วเพิ่มรายการใหม่ด้วยค่าทั้งสามนี้ ซึ่งแผงควบคุมจะแสดงอยู่ถัดจากสคริปต์ พร้อมปุ่มคัดลอกสำหรับแต่ละค่า:

| ช่อง | ค่า | หน้าที่ |
|---|---|---|
| Name | fastddns |
ใช้ชื่อใดก็ได้ ชื่อนี้ช่วยให้เห็นได้ชัดเจนในรายการ |
| Start Time | startup |
กำหนดให้ตารางเวลายึดกับเวลาเริ่มระบบแทนเวลาตามนาฬิกา — ดูหมายเหตุใต้ตารางนี้ |
| Interval | 00:02:00 |
ทำซ้ำทุกสองนาที |
รายละเอียดหนึ่งของ RouterOS ที่ควรรู้: start-time=startup จะทำงานเสมือนว่าเวลาเริ่มต้นคือสามวินาทีหลังจากคอนโซลเริ่มทำงาน แต่เอกสารของ MikroTik ระบุว่ารายการที่มีช่วงเวลาไม่เป็นศูนย์ จะไม่ทำงานเมื่อเริ่มต้นระบบ ดังนั้นการทำงานครั้งแรกจะเกิดขึ้นหลังจากผ่านไปหนึ่งช่วงเวลา ไม่ใช่ทันทีที่บูต หลังจากรีบูต hostname ของคุณจะได้รับการรีเฟรชหลังประมาณสองนาที ไม่ใช่ทันที
ขั้นตอนที่ 2 — วางคำสั่งอัปเดตลงใน On Event
คัดลอกช่อง On Event จากแผงควบคุม รูปแบบจะเป็นดังนี้:
:do {/tool fetch check-certificate=no url="https://client.fastddns.net/?hostname=myhome.fastddns.net&user_name=YOUR-USERNAME&user_pass=YOUR-UPDATE-PASSWORD" dst-path=fastddns.ip; :local statusip [:pick [/file get fastddns.ip contents] 0 3]; if ($statusip = "noc" || $statusip = "goo") do={[/terminal style ambiguous];:put "Updated IP address";}; } on-error={[:terminal style error];:put "Can not connect to server FastDDNS.net.";:error "exit";};ไม่ต้องแทนที่ค่าใดด้วยตนเอง — แผงควบคุมกรอก hostname ชื่อผู้ใช้ และรหัสผ่านอัปเดตของคุณไว้แล้ว ตัวยึดตำแหน่งทั้งสามด้านบนเป็นเพียงตัวแทนค่าที่เป็นข้อมูลส่วนตัวของบัญชีคุณ
ขั้นตอนที่ 3 — วิธีที่สคริปต์ตรวจสอบว่าการอัปเดตสำเร็จ
การ fetch จะบันทึกคำตอบของเซิร์ฟเวอร์ลงใน fastddns.ip และ :pick … 0 3 จะอ่านอักขระสามตัวแรกของไฟล์ FastDDNS ตอบกลับด้วยรูปแบบมาตรฐานของ DynDNS ดังนั้นอักขระสามตัวนี้จึงเพียงพอที่จะบอกผลลัพธ์แต่ละแบบได้:
| การตอบกลับ | สามตัวอักษรแรก | ความหมาย |
|---|---|---|
good |
goo |
ชื่อโฮสต์ถูกอัปเดตเป็นที่อยู่ใหม่ |
nochg |
noc |
address ไม่ได้เปลี่ยนแปลง — ไม่ต้องทำอะไร |
badauth |
bad |
username หรือรหัสผ่านสำหรับการอัปเดตไม่ถูกต้อง |
สคริปต์จะตรวจสอบเฉพาะ goo และ noc และพิมพ์ Updated IP address สำหรับทั้งสองกรณี ส่วนผลลัพธ์อื่น ๆ — รวมถึง badauth — จะถูกข้ามไปโดยไม่มีข้อความใด ๆ: การ fetch สำเร็จ ดังนั้น on-error จะไม่ทำงานและไม่มีอะไรถูกพิมพ์ออกมา การไม่มีข้อความไม่ได้หมายความว่าสำเร็จ อ่าน fastddns.ip หากไม่แน่ใจ โปรโตคอลนี้มีเอกสารอธิบายไว้บน หน้าของ FastDDNS client API หากคุณต้องการเขียนสคริปต์ของตัวเอง
วิธีตั้งค่าด้วยตนเองในวิดีโอ — อีกครั้ง วิดีโอนี้เป็นการบันทึกหน้าพาเนลเวอร์ชันเก่า แต่ยังใช้ค่าทั้งสี่รายการเดิม
ตรวจสอบว่า hostname กำลังอัปเดตจริงหรือไม่
ตรวจสอบบน router สามรายการ และตรวจสอบนอก router อีกหนึ่งรายการ สำหรับการตรวจสอบบน router:
/system scheduler print
/file print
:put [/file get fastddns.ip contents]รายการกำหนดเวลามีคอลัมน์ run-count ซึ่งเพิ่มขึ้นทุกสองนาที แสดงว่ารายการกำลังทำงานอยู่ — แต่ไม่ได้บอกว่าการอัปเดตสำเร็จ เพราะ scheduler ที่รันคำสั่งซึ่งล้มเหลวก็ยังนับเพิ่มได้ หลักฐานอยู่ที่ไฟล์: fastddns.ip ต้องมีอยู่ และเนื้อหาต้องขึ้นต้นด้วย
good หรือ nochg — เซิร์ฟเวอร์อาจเติม address ที่บันทึกไว้ต่อท้าย
นอก router ให้ตรวจสอบ hostname จากเครื่องใดก็ได้ แล้วเปรียบเทียบกับที่อยู่สาธารณะปัจจุบันของคุณ:
nslookup myhome.fastddns.netแผงโฮสต์เนมของคุณยังแสดง Last Updated เวลาที่เปลี่ยนแปลงนับจาก Not yet updated ครั้งแรกที่ router รายงานเข้ามา FastDDNS จะใช้ที่อยู่ใหม่ภายใน 60 วินาที แต่แคช DNS ในเครื่องของคุณอาจเก็บที่อยู่เก่าไว้นานกว่านั้นเล็กน้อย
การแก้ไขปัญหา MikroTik DDNS
| สิ่งที่พบ | สาเหตุ | วิธีแก้ไข |
|---|---|---|
ERROR ทันทีหลังจากวางบรรทัดของ Method 1 |
token ดาวน์โหลดหมดอายุ หรือ router ไม่สามารถเข้าถึงเว็บไซต์ได้ | โหลดหน้าของ hostname ใหม่ คัดลอกบรรทัดอีกครั้ง แล้ววางภายในหนึ่งชั่วโมง |
| Can not connect to server FastDDNS.net. | router ไม่สามารถแก้ไขหรือเข้าถึง URL สำหรับการอัปเดตได้ | ตรวจสอบปัญหาก่อนเปลี่ยนแปลงสิ่งใด: /ip dns print สำหรับตัวแก้ไขที่กำหนดค่าไว้ จากนั้น :put [:resolve client.fastddns.net] เพื่อทดสอบการแก้ไขชื่อจาก router เอง เพิ่มตัวแก้ไขสาธารณะเฉพาะเมื่อรายการว่างเท่านั้น — การเขียนทับตัวแก้ไขภายในที่ใช้งานได้จะทำให้การแก้ไขชื่อภายในล้มเหลว |
fastddns.ip มี badauth |
ชื่อผู้ใช้หรือรหัสผ่านสำหรับการอัปเดตในคำสั่งไม่ถูกต้อง | คัดลอกช่อง On Event จากแผงควบคุมอีกครั้ง หากคุณย้ายมาจากผู้ให้บริการรายอื่น โปรดดูคู่มือเกี่ยวกับ การแทนที่ที่อยู่เซิร์ฟเวอร์ No-IP หรือ DynDNS |
| hostname แก้ไขได้แล้ว แต่ไม่มีการตอบสนองที่ port ของคุณ | DDNS ทำงานปกติ แต่เส้นทางเข้าสู่เครือข่ายของคุณยังไม่พร้อม | เพิ่มกฎ NAT และไฟร์วอลล์ แล้วทดสอบ port จากภายนอกด้วย ตรวจสอบพอร์ต |
| hostname แก้ไขไปเป็นที่อยู่ที่ไม่ใช่ IP สาธารณะของคุณ | router อยู่หลังชั้น NAT อีกชั้นหนึ่ง ซึ่งมักเป็น CGNAT | เปรียบเทียบ /ip address print กับค่าที่บริการตรวจสอบ IP สาธารณะรายงาน หากค่าไม่ตรงกัน ให้ติดต่อผู้ให้บริการอินเทอร์เน็ตเพื่อขอ IP สาธารณะ |
| ทุกอย่างทำงานได้ดี แล้วหยุดทำงานหลังผ่านไปหลายเดือน | hostname ฟรีจะต่ออายุปีละครั้ง ส่วน hostname ชั่วคราวมีอายุ 30 วัน | ต่ออายุจากบัญชีของคุณ หรือเปลี่ยนไปใช้แผนที่ hostname ไม่มีวันหมดอายุ |
เก็บสคริปต์อัปเดตของคุณไว้เป็นความลับ
ทั้งสองวิธีจะเก็บ hostname ชื่อผู้ใช้ และรหัสผ่านสำหรับอัปเดตไว้ในรูปแบบข้อความธรรมดาบน router — ในช่อง On Event ของตัวกำหนดตารางเวลา หรือภายใน /system script ใครก็ตามที่อ่านการตั้งค่าได้ก็สามารถอ่านค่าเหล่านี้ได้ ดังนั้นควรปฏิบัติต่อการ export RouterOS ทั้งหมดเช่นเดียวกับไฟล์รหัสผ่าน หากคุณนำไปวางไว้ในโพสต์ฟอรัมหรือตั๋วขอรับการสนับสนุนแล้ว ให้เปลี่ยนรหัสผ่านสำหรับอัปเดตในบัญชีของคุณและติดตั้งสคริปต์ใหม่
ไฟล์ fastddns.txt ที่ดาวน์โหลดมานี้จำเป็นเฉพาะระหว่างการติดตั้งเท่านั้น หลังจากนั้นคุณสามารถลบไฟล์ดังกล่าวจาก Files หลังจากนั้นโดยไม่กระทบต่อตัวกำหนดตารางเวลา
คำถามที่พบบ่อย
ฉันจำเป็นต้องเปิด port สำหรับการอัปเดต DDNS เองหรือไม่?
ไม่ router จะเปิดการเชื่อมต่อ HTTPS ขาออกไปยัง FastDDNS ดังนั้นจึงไม่จำเป็นต้องมีกฎขาเข้าสำหรับการอัปเดต แต่คุณต้องตั้งค่า port forwarding สำหรับบริการที่ต้องการเข้าถึงผ่าน hostname เช่น 554 สำหรับ RTSP หรือ web port ของกล้อง
MikroTik ส่งการอัปเดตบ่อยแค่ไหน และ hostname เปลี่ยนแปลงเร็วเพียงใด?
scheduler จะทำงานทุกสองนาทีในทั้งสองวิธี เมื่อที่อยู่มีการเปลี่ยนแปลงจริง FastDDNS จะนำที่อยู่ใหม่ไปใช้ภายใน 60 วินาที ดังนั้นในกรณีที่ช้าที่สุดหลังจาก IP เปลี่ยน จะใช้เวลารอ scheduler ประมาณสองนาทีบวกกับเวลาเผยแพร่การเปลี่ยนแปลง
จะใช้งานได้หรือไม่หาก ISP ของฉันใช้ CGNAT?
ไม่ได้ เมื่ออยู่หลัง Carrier-Grade NAT router ของคุณจะไม่มี IP สาธารณะเป็นของตัวเอง จึงไม่มีที่อยู่ให้ hostname ชี้ไปใช้งานได้ และ ISP จะบล็อกการเชื่อมต่อขาเข้า Dynamic DNS ช่วยแก้ปัญหาที่อยู่เปลี่ยนแปลง ไม่ได้ช่วยแก้กรณีที่ไม่มีที่อยู่สาธารณะ ขอ IP สาธารณะจาก ISP ของคุณ หรือใช้บริการที่สร้าง tunnel ขาออก
ชื่อโฮสต์หมดอายุหรือไม่?
hostname ถาวรแบบฟรีจะต่ออายุจากบัญชีของคุณปีละครั้ง ส่วน hostname ชั่วคราวมีอายุ 30 วัน hostname ในแผนแบบชำระเงินจะไม่หมดอายุ รายละเอียดอยู่ที่ หน้าราคา.
กำลังใช้ router รุ่นอื่นอยู่ใช่ไหม? URL สำหรับอัปเดตเดียวกันนี้ใช้ได้กับทุกอุปกรณ์ที่สามารถส่งคำขอ HTTPS ตามกำหนดเวลาได้ รวมถึง การตั้งค่า DrayTek ที่กล่าวถึงที่นี่





