เข้าใช้งาน Port 3001 และ 3002 ไม่ได้ใน Node.js ที่รันผ่าน PM2 บน CSF Firewall เคสตัวอย่างนี้ บน Ubuntu 20 นะครับ

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47254
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

เข้าใช้งาน Port 3001 และ 3002 ไม่ได้ใน Node.js ที่รันผ่าน PM2 บน CSF Firewall เคสตัวอย่างนี้ บน Ubuntu 20 นะครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

เข้าใช้งาน Port 3001 และ 3002 ไม่ได้ใน Node.js ที่รันผ่าน PM2 บน CSF Firewall
ก่อนหน้านี้ได้ มีการอัพเกรด cyberpanel และ เปิดใช้งาน Firewall CSF

🔍 สาเหตุของปัญหา
ผู้ใช้ไม่สามารถเข้าใช้งาน Port 3001 และ 3002 ที่รัน Node.js ผ่าน PM2 ได้ เนื่องจากมีปัจจัยหลักสองอย่างที่เกี่ยวข้อง:
  • Port บน Firewall ไม่ได้เปิด หรือมีข้อจำกัดในการเชื่อมต่อที่ปิดกั้น
  • บริการ Node.js ที่รันด้วย PM2 หยุดทำงาน (down) ซึ่งอาจเกิดจากการรีบูตเซิร์ฟเวอร์ หรือปัญหาอื่น ๆ ในการจัดการแอปพลิเคชัน


🔧 แนวทางแก้ไขปัญหา

1. เปิด Firewall ให้รองรับการเชื่อมต่อผ่าน Port 3001 และ 3002
ในกรณีที่ใช้ CSF (ConfigServer Security and Firewall) เราสามารถเปิดพอร์ตที่ต้องการได้ผ่าน CyberPanel หรือการตั้งค่าโดยตรง

ขั้นตอน:
  1. เข้าสู่ระบบจัดการผ่าน URL:

    โค้ด: เลือกทั้งหมด

    https://[ชื่อเซิร์ฟเวอร์]:8090/firewall/csf
  2. แก้ไขการตั้งค่า TCP IN Ports ให้เพิ่มพอร์ต 3001 และ 3002 เข้าไป เช่น:

    โค้ด: เลือกทั้งหมด

    20,21,22,25,53,80,110,995,143,443,465,587,993,995,1025,7080,8090,40110:40210,8088,5678,3001,3002
  3. บันทึกการตั้งค่าและรีสตาร์ท CSF Firewall เพื่อให้การตั้งค่ามีผล:


หมายเหตุ: การเปิดพอร์ตนี้จะทำให้สามารถเข้าถึงแอปพลิเคชัน Node.js ผ่านอินเทอร์เน็ตได้ แต่ควรตรวจสอบความปลอดภัยเพิ่มเติมหากแอปต้องเปิดเผยต่อสาธารณะ

2. ตรวจสอบว่าโปรเซส Node.js รันอยู่หรือไม่
หากเปิดพอร์ตแล้ว แต่ยังเข้าใช้งานไม่ได้ อาจเกิดจากโปรเซส Node.js ที่รันผ่าน PM2 ได้หยุดทำงาน
  1. ตรวจสอบพอร์ตที่ใช้งานผ่าน URL:

    โค้ด: เลือกทั้งหมด

    https://[ชื่อเซิร์ฟเวอร์]:8090/configservercsf/


ตัวอย่างที่พบ:
3001 tcp 4/- - 800533 root node /home/[ชื่อโปรเจกต์]/app.js /usr/bin/node
3002 tcp 4/- - 800526 root node /home/[ชื่อโปรเจกต์]/app.js /usr/bin/node
หมายความว่า Node.js ถูกกำหนดให้รันที่พอร์ต 3001 และ 3002 ซึ่งอาจต้องเช็คสถานะเพิ่มเติมว่ารันอยู่จริงหรือไม่

3. ใช้คำสั่ง PM2 เพื่อตรวจสอบสถานะการรัน
ให้ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่าแอปพลิเคชันที่รันผ่าน PM2 ยังทำงานอยู่หรือไม่:

โค้ด: เลือกทั้งหมด

pm2 status

หากผลลัพธ์แสดงว่าแอปบางตัวอยู่ในสถานะ errored หรือ stopped ให้ลองแก้ไขดังนี้:

4. บันทึกสถานะการรันใหม่
หากระบบ PM2 แสดงข้อความเตือน เช่น:
[PM2] Saving current process list...
[PM2][WARN] PM2 is not managing any process, skipping save...
[PM2][WARN] To force saving use: pm2 save --force
สามารถแก้ไขได้โดย:

โค้ด: เลือกทั้งหมด

pm2 save --force


5. คืนค่าการรันโปรเซส PM2 (Resurrect)
ถ้าพบว่า PM2 ไม่มีการจัดการโปรเซสหรือแอปพลิเคชันถูกหยุดทำงานหลังจากการรีบูต ให้ใช้คำสั่งต่อไปนี้:

โค้ด: เลือกทั้งหมด

pm2 resurrect


คำสั่งนี้จะโหลดโปรเซสที่เคยบันทึกไว้กลับมาใช้งานอีกครั้ง

6. ตรวจสอบและรีสตาร์ทโปรเจกต์ด้วย PM2
หากยังมีปัญหา ให้ลองรีสตาร์ทแอปพลิเคชันด้วยคำสั่ง:

โค้ด: เลือกทั้งหมด

pm2 restart all


หรือระบุชื่อโปรเจกต์ที่ต้องการ:

โค้ด: เลือกทั้งหมด

pm2 restart <app-name>


สรุปแนวทางแก้ไขปัญหา
  • ตรวจสอบว่าได้เปิดพอร์ต 3001 และ 3002 บน CSF Firewall เรียบร้อยแล้ว
  • ตรวจสอบสถานะโปรเซส Node.js ที่รันผ่าน PM2 ด้วยคำสั่ง

    โค้ด: เลือกทั้งหมด

    pm2 status
  • ถ้าพบว่าโปรเซสหยุดทำงาน ให้บันทึกและคืนค่าการรันด้วยคำสั่ง:

    โค้ด: เลือกทั้งหมด

    pm2 save --force  
    pm2 resurrect
  • รีสตาร์ทแอปพลิเคชันเพื่อให้กลับมาทำงานได้ตามปกติ:

    โค้ด: เลือกทั้งหมด

    pm2 restart all


หลังจากแก้ไขและรีสตาร์ททุกอย่างแล้ว ควรทดสอบการเข้าถึงพอร์ต 3001 และ 3002 ผ่านเบราว์เซอร์หรือคำสั่ง curl เพื่อให้แน่ใจว่าแอปพลิเคชันสามารถใช้งานได้ตามปกติ

ตัวอย่างการทดสอบ:

โค้ด: เลือกทั้งหมด

curl http://localhost:3001  
curl http://localhost:3002


ถ้าทุกอย่างเรียบร้อย ระบบ Node.js จะกลับมารองรับการเชื่อมต่อได้ตามปกติครับ 😊

สามารถดูบทความเกี่ยวกับสอนใช้ Cyberpanel และ จัดการ Hosting ได้ที่นี่
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Bing [Bot] และบุคลทั่วไป 6