หน้า 1 จากทั้งหมด 1

เทคนิคการคอนฟิก CentOS ให้อัพเดท ip กับบริการ no-ip.com

โพสต์โพสต์แล้ว: 10 ส.ค. 2013 01:27
โดย nuiz
บทความนี้เป็นการแนะนำวิธีการติดตั้งและคอนฟิก CentOS ให้อัพเดทไอพีของมันเองไปยังบริการ Dynamic DNS ของ NO-IP.COM ครับ
ซึ่งเมื่อก่อนที่ Dyndns.org ยังใช้ฟรีได้อยู่นั้นผมไม่เห็นความจำเป็นว่าต้องทำใน CentOS เพราะใน ADSL Router ก็มีให้คอนฟิกอยู่แล้ว แต่พอมาวันนี้บริการของ Dyndns.org มันไม่ฟรีอีกแล้วผมก็เลยมองหาทางอื่น (ที่ฟรี) ก็มาเจอ No-IP.com นี่แหล่ะครับ ใช่เลย ตัว ADSL Router ส่วนมากก็ดั้นนนไม่มี DDNS ของ NO-IP.COM ให้ด้วยสิ จึงต้องทำบนระบบปฏิบัติการแทน อย่างเช่น CentOS นี่ไงครับ

** เทคนิคนี้เอาไปใช้กับ Elastix ได้นะครับเพราะว่า Elastix ใช้ CentOS เป็นระบบปฏิบัติการ **

ทำไมต้องทำบน CentOS แทนที่จะทำบน ADSL Router
เพราะในเมนู DDNS ของ ADSL Router ที่ผมมักจะเจอ รวมทั้ง Router (RV-042) มันไม่มี no-ip.com หน่ะครับ

สมัครแอ๊คเค๊าท์ใน NO-IP.COM และสร้าง Host
เข้าเว็บนี้ครับ http://www.no-ip.com
หนึ่งอีเมล์สร้าง Host ฟรีได้ 3 ชื่อครับ อยากได้หลายๆชื่อก็สมัครหลายๆอีเมล์หรือไม่ก็จ่ายเงินเป็นกำลังใจให้คนพัฒนาเว็บก็ได้ครับ รูปต่อไปนี้คือที่ผมสร้างไว้ใน Account NOIP ของผมครับ ผมสร้างไว้ครบ 3 ชื่อแล้ว

รูปภาพ

รูปภาพ

ดาวน์โหลดไฟล์ซอร์สโค๊ดของ NO-IP
โค้ด: เลือกทั้งหมด
cd /home
wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz
tar xzvf noip-duc-linux.tar.gz -C /usr/src
cd /usr/src/noip-2.1.9-1


แก้ไขไฟล์ Makefile
(ไม่ต้องแก้ไขก็ได้นะครับ พอดีผมไม่ชอบให้โปรแกรมติดตั้งที่ไดเร็คตอรี่ /usr/local เลยแก้ไขนิดหน่อยครับ)
โค้ด: เลือกทั้งหมด
vi Makefile

แก้ไขตามนี้ครับ
โค้ด: เลือกทั้งหมด
PREFIX=/usr
CONFDIR=/etc
BINDIR=${PREFIX}/bin


ต่อไปก็คอมไพล์
โค้ด: เลือกทั้งหมด
make

ข้อความที่ปรากฏ มีบรรทัดเดียวอย่างที่เห็นนี่แหล่ะครับ

gcc -Wall -g -Dlinux -DPREFIX=\"/usr\" noip2.c -o noip2

ต่อไปก็ติดตั้งครับ
โค้ด: เลือกทั้งหมด
make install


ข้อความที่เห็นขณะติดตั้งครับ เราต้องป้อนข้อมูลเข้าโปรแกรมด้วยนะครับ เป็นข้อมูล Username, Password ที่เราใช้ Login เข้าเว็บ NOIP.COM หน่ะครับ

if [ ! -d /usr/bin ]; then mkdir -p /usr/bin;fi
if [ ! -d /etc ]; then mkdir -p /etc;fi
cp noip2 /usr/bin/noip2
/usr/bin/noip2 -C -c /tmp/no-ip2.conf

Auto configuration for Linux client of no-ip.com.

ถ้าในเครื่องมีเน็ตเวอร์คหลายๆอินเตอร์เฟส เช่น eth0, eth1, tun0, ppp0 จะมีตัวเลือกให้เราเลือกว่าจะให้ติดต่อกับ NOIP Server ทางอินเตอร์เฟสไหน ดังตัวอย่างครับ

Multiple network devices have been detected.
Please select the Internet interface from this list.
By typing the number associated with it.
0 eth0
1 tun0
0
ซึ่งตัวอย่างนี้ผมเลือก 0 ครับ (พิมพ์เลข 0) เพราะเครื่องนี้ออกเน็ตทาง eth0

จากนั้นก็กรอกข้อมูลต่อได้เลยครับ

Please enter the login/email string for no-ip.com arxxxxxx@gmail.com <-- ใส่ Username ที่สมัครกับ NO-IP.COM
Please enter the password for user 'arxxxxxx@gmail.com' *********** <-- ใส่ Password ที่ให้ไว้กับ NO-IP.COM

3 hosts are registered to this account. <-- ตรวจพบว่าเราสร้างไว้ 3 ชื่อ (ผม Add Host ไว้แล้วบนเว็บไซต์ของ no-ip.com)
Do you wish to have them all updated?[N] (y/N) n
Do you wish to have host [cplxxxx.no-ip.org] updated?[N] (y/N) y <-- จะอัพเดท Host ไหนก็เลือก Yes (Y) ครับ ซึ่งโปรแกรมติดตั้งก็จะเอา Host นี้ไปใส่ไว้ในไฟล์คอนฟิก
Do you wish to have host [hapxxxx.no-ip.org] updated?[N] (y/N) n
Do you wish to have host [idaxxxx.no-ip.org] updated?[N] (y/N) n
Please enter an update interval:[30] 1 <- อัพเดททุก 1 วัน
Do you wish to run something at successful update?[N] (y/N) n

New configuration file '/tmp/no-ip2.conf' created.
mv /tmp/no-ip2.conf /etc/no-ip2.conf

เป็นอันว่าติดตั้งสำเร็จครับ

ข้อมูลในไฟล์ /etc/no-ip2.conf
เป็นข้อมูล Account ที่ต้องใช้อัพเดทครับ เข้ารหัสไว้
โค้ด: เลือกทั้งหมด
0.0.0.0QUAL2J\]eZoW109Y3BsdXNkZXYubm8taXAububm8tabWNoaXQlNDBnWFpbC5jb20mcGFzcz1jb21wYXF2MjAwMCZoWbWFpbC5jb20mcGFzcz1jbnb1th0dXNlcm5hbWU21wYXF2MjAwMCXAub3JndXNlcm5hbWU9YXJhbWNoaXQlNDB9YXJh09Y3BsdXNkZXY3Jn


ทดสอบอัพเดทกับ NOIP
โค้ด: เลือกทั้งหมด
/usr/bin/noip2 -c /etc/no-ip2.conf


รันสคริปต์อัพเดทไอพี
ให้เพิ่มบรรทัดนี้ในไฟล์ crontab ครับ
โค้ด: เลือกทั้งหมด
crontab -e

เพิ่มบรรทัดนี้ ให้อัพเดทวันละ 2 ครั้งตอนเคารพธงชาติ 08:00 และ 18:00
โค้ด: เลือกทั้งหมด
00 08 * * * /usr/bin/noip2 -c /etc/no-ip2.conf
00 18 * * * /usr/bin/noip2 -c /etc/no-ip2.conf


คราวนี้ก็สบายแล้วครับ รีโมทได้ตลอดเวลาแล้ว

ดูในเว็บ no-ip.com ครับ
จะเห็นว่าไอพีอัพเดทแล้ว ในรูปนี้คือของจริงๆเลยนะครับ ผมคอนเฟิร์ม

รูปภาพ

** หมายเหตุครับ **
หากใช้ DNS Server ของไทย ยกตัวอย่างเช่น DNS Server ของ ISP รายต่างๆ ข้อมูล IP ในเว็บ No-IP.COM จะไม่อัพเดทแบบเรียลไทม์นะครับ ลองใช้ DNS Server 8.8.8.8 ของ Google ดูครับ

Re: เทคนิคการคอนฟิก CentOS ให้อัพเดท ip กับบริการ no-ip.com

โพสต์โพสต์แล้ว: 29 ก.ค. 2014 17:08
โดย nuiz
อัพเดทบทความครับ สมบูรณ์แบบมากขึ้น

Re: เทคนิคการคอนฟิก CentOS ให้อัพเดท ip กับบริการ no-ip.com

โพสต์โพสต์แล้ว: 26 พ.ย. 2014 00:42
โดย nuiz
กลับมาอัพเดทครับ

หลังจากผมใช้โซลูชั่นแบบในบทความนี้ไปได้สักพัก พบว่ามันติดๆดับๆครับ ไม่ค่อยจะอัพเดทไอพีให้เลย แม้จะตั้งเวลาด้วย Cronjob ให้อัพเดทถี่ขึ้นแล้วก็ตาม

ตอนนี้ผมใช้อีกแบบหนึ่งแทน คือ เอา Linksys WRT54GL มาลงเฟิร์มแวร์ DD-WRT (หรือไม่ก็ Tomato) แล้วให้มันอัพเดทกับ No-IP.COM แทน ใช้แอ๊คเค๊าท์เก่าและเน็ตเส้นเดิมเลยครับ

ปรากฏว่าเวอร์คดีครับ ดีกว่าใช้โปรแกรมบน CentOS เยอะเลย

ตอนนี้ก็ยังใช้บน WRT54GL อยู่ครับ

รูปภาพ