NTP Error : the NTP socket is in use, exiting

NTP Error : the NTP socket is in use, exiting

ในการติดตั้ง NTP Server เพื่อเปิดให้บริการเทียบเวลา บางทีผู้ใช้บริการอาจพบปัญหาที่ไม่สามารถเทียบเวลาได้ หากเราเป็นผู้ดูแลระบบเราจะแก้ไขยังไง ในที่นี้ขอยกตัวอย่างปัญหาที่เกิดขึ้นบ่อยในการให้บริการเทียบเวลา
ปัญหาแรกที่เราพบบ่อยมากเลยคือ “NTP socket is in use” ซึ่งแปลความตรงๆก็หมายความว่าพอร์ตที่ให้บริการ NTP ถูกจองใช้งานไปแล้ว และเราไปใช้ซ้ำนั่นเอง ดังตัวอย่าง

NTP_error1-1

แนวทางการวิเคราะห์
โดยปกติโปรโตคอล NTP จะใช้บริการผ่าน UDP Port 123 ถ้า Error บอกว่ามีการใช้งานซ้ำ เราลองตรวจดูว่าพอร์ต UDP 123 หรือ (ntp) มีการเปิดใช้บริการจากโปรแกรมหรือโปรเซสอะไร โดยเรียกใช้คำสั่ง “netstat –uap grep ntp”

ntp_error1-2

จากรูปพบว่ามีการเปิด socket port ntp (123) จริงโดยโปรเซสหมายเลข 2039 และเมื่อเราตรวจสอบเพิ่มเติมพบว่าเป็นโปรเซสของโปรแกรม “ntpd” เอง นั่นแสดงว่าเครื่องนี้มีการเปิดให้บริการเทียบเวลาเองด้วยจึงทำให้พอร์ตถูกจองใช้งานไป
แนวทางแก้ไข
สำหรับการแก้ไขปัญหานี้มีด้วยกัน 2 แนวทางคือ
1. ปิดโปรแกรมที่จองพอร์ตนั้น
วิธีการนี้เป็นการแก้ปัญหาแบบตรงๆเลยคือถ้าใครจองก็ปิดมันซะ แต่ว่าวิธีนี้จะเลือกใช้ได้ก็ต่อเมื่อโปรแกรมหรือโปรเซสที่จองนั้นไม่จำเป็นต้องใช้ เช่น จากตัวอย่างข้างต้นเราจะต้องปิดบริการ ntpd ที่ให้บริการเทียบเวลา แต่ทว่าถ้าเครื่องนี้ไม่ได้ถูกติดตั้งเป็น NTP Server แต่เพราะโปรแกรม ntpd ถูกเปิดเองโดยอัตโนมัติเราก็เลือกปิดโปรแกรม ntpd ได้ เป็นต้น

2. เรียกใช้ออปชันเสริมของโปรแกรม ntpd

วิธีการที่ 2 นี้ถือเป็นทางออกสำหรับปัญหานี้ได้ดีกว่า นั่นคือการเลือกใช้ออปชันที่มีมากับโปรแกรม ntpdate โดยให้เราระบุออปชัน “-u” เพิ่ม ซึ่งเป็นออปชันที่จะเรียกใช้พอร์ตอื่นแทน (Unprivilege Port) ซึ่งจะทำให้ไม่ไปชนกับพอร์ตที่ถูกจองอยู่ ดังตัวอย่าง

# ntpdate -uv 192.168.130.30

You may also like...

Leave a Reply

Your email address will not be published.