txAdmin Port 40120 ถูกใช้งานอยู่ แก้อย่างไร? แก้ Port ชนบน Windows และ Linux
หากเปิด FXServer แล้ว txAdmin แจ้งว่า Port 40120 ถูกใช้งานอยู่, address already in use, EADDRINUSE หรือเข้า localhost:40120 ไม่ได้ สาเหตุส่วนใหญ่มาจากมี Process อื่นกำลัง Listen TCP Port 40120 อยู่แล้ว
Cfx.re กำหนด 40120 เป็น Default TCP Port ของ Web Server สำหรับ txAdmin ดังนั้น FXServer Instance สองตัวไม่ควรพยายามใช้ IP และ Port เดียวกันพร้อมกัน
วิธีแก้ที่ถูกต้องคือ
หา Process ที่ใช้ 40120
↓
ตรวจว่า Process คืออะไร
↓
ปิด Process เดิมถ้าไม่จำเป็น
หรือ
↓
เปลี่ยน txAdminPort ของ Server ใหม่
ไม่ควรแก้ด้วยการปิด Firewall ทั้งเครื่องหรือ Kill Process แบบสุ่ม
① Port 40120 คืออะไร
40120 คือ Default TCP Port ของ txAdmin
ใช้สำหรับเปิด Web Management Panel เช่น
http://localhost:40120
ถ้า FXServer อยู่ในเครื่องเดียวกัน
txAdmin ใช้ Port นี้เพื่อให้ Browser ติดต่อกับ Management Interface
② Port 40120 ต่างจาก 30120 อย่างไร
จำให้ชัดว่า
30120
= FiveM Game Server Endpoint
40120
= txAdmin Web Panel
ปัญหา Port 40120 ชนจึงกระทบ txAdmin ไม่ได้หมายความว่า Game Port 30120 ชนด้วยเสมอไป
③ อาการ Port 40120 ถูกใช้งานอยู่เป็นอย่างไร
อาการที่อาจพบ เช่น
txAdmin เปิดไม่ได้
Browser เข้า
localhost:40120ไม่ได้FXServer Console แจ้ง Port Error
มีข้อความ
address already in usetxAdmin Web Server Start ไม่สำเร็จ
Server Instance ที่สองเปิดไม่ได้
Port เปลี่ยนไปเองจาก Startup Configuration
สิ่งแรกที่ควรทำคืออ่าน Console
④ ทำไม Port เดียวกันใช้พร้อมกันไม่ได้
Network Service ที่ Listen อยู่บน Address และ TCP Port ชุดเดียวกันจะครอบครอง Socket นั้นอยู่
ตัวอย่าง
FXServer A
→ TCP 40120
ถ้าเปิด FXServer B แล้วพยายามใช้
TCP 40120
เหมือนกัน
Instance ใหม่อาจไม่สามารถ Bind Port ได้
⑤ สาเหตุที่พบบ่อยที่สุด
สาเหตุหลักมีประมาณนี้
เปิด FXServer ซ้ำ
FXServer ตัวเก่ายังค้าง
เปิดหลาย FiveM Server
txAdmin Instance อื่นใช้ 40120
Software อื่นใช้ 40120
Startup Script เปิด Server ซ้ำ
Service Auto Start เปิด FXServer อยู่แล้ว
User เปิด FXServer ด้วยตัวเองซ้ำอีกครั้ง
จึงต้องหาก่อนว่าใครถือ Port
⑥ วิธีเช็กว่า Port 40120 ถูกใช้บน Windows
เปิด Command Prompt แล้วพิมพ์
netstat -ano | findstr :40120
หากมี Process ใช้ Port จะเห็นข้อมูลประมาณ
TCP 0.0.0.0:40120 0.0.0.0:0 LISTENING 1234
เลขท้ายสุด
1234
คือ PID หรือ Process ID
⑦ LISTENING หมายความว่าอะไร
ถ้าเห็น
LISTENING
หมายถึงมี Process กำลังรอรับ Connection ที่ Port นั้นอยู่
หากเป็น TCP 40120 จึงมีความเป็นไปได้สูงว่า Process นั้นกำลังครอบครอง txAdmin Port
จากนั้นต้องตรวจว่า PID เป็นโปรแกรมอะไร
⑧ PID คืออะไร
PID ย่อมาจาก
Process ID
Windows จะให้หมายเลขแก่ Process แต่ละตัวที่กำลังทำงาน
ตัวอย่าง
PID 1234
จากเลขนี้สามารถหาได้ว่า Process คือ
FXServer
โปรแกรมอื่น
Service
Application
อะไร
⑨ วิธีหาโปรแกรมจาก PID
สามารถเปิด Task Manager
ไปที่
Details
แล้วหา PID ที่ตรงกัน
หรือใช้ Command Prompt
tasklist /FI "PID eq 1234"
เปลี่ยน 1234 เป็น PID ที่ได้จาก netstat
จะช่วยบอกชื่อ Process
⑩ ใช้ PowerShell เช็กได้ไหม
ได้
สามารถใช้
Get-NetTCPConnection -LocalPort 40120
เพื่อดู TCP Connection/Listener ที่เกี่ยวข้องกับ Port
จากนั้นดู Owning Process และตรวจ Process ต่อ
เหมาะสำหรับ Windows Server และ Windows รุ่นปัจจุบัน
⑪ ถ้า Process คือ FXServer ทำอย่างไร
ต้องตรวจว่า FXServer ตัวนั้นเป็น Server ที่ตั้งใจเปิดอยู่หรือไม่
อาจเป็น
Production Server
ที่กำลังทำงานปกติ
ถ้าใช่ อย่า Kill Process
ให้เปลี่ยน Port ของ Server ตัวใหม่แทน
เช่น
40121
⑫ ถ้าเป็น FXServer เก่าที่ค้างอยู่ทำอย่างไร
หากยืนยันได้ว่าเป็น Instance เก่าที่ไม่ควรทำงานแล้ว ให้ Stop อย่างถูกต้อง
ตรวจใน
txAdmin
Task Manager
Windows Service
Startup Script
ก่อน
หลัง Stop แล้วลองตรวจใหม่
netstat -ano | findstr :40120
ถ้าไม่มี Listener แล้วจึงเปิด FXServer ที่ต้องการ
⑬ อย่า End Task FXServer แบบสุ่ม
Production Server อาจมี Player และข้อมูลกำลังถูกบันทึกอยู่
การ Force Kill โดยไม่ตรวจสอบอาจทำให้
Player หลุดทันที
Save Process ไม่จบ
Resource ไม่ Shutdown ตามปกติ
Data ที่กำลังเขียนมีปัญหา
หากเป็น Server จริงควร Stop จาก txAdmin หรือระบบ Service ที่ใช้อยู่ก่อน
⑭ ถ้า Process ไม่ใช่ FXServer ทำอย่างไร
ตรวจว่าโปรแกรมนั้นคืออะไร
บาง Application อาจถูกตั้งให้ใช้ TCP 40120 เอง
ทางเลือกคือ
เปลี่ยน Port โปรแกรมนั้น
ถ้าทำได้
หรือ
เปลี่ยน txAdmin Port
ซึ่งมักง่ายกว่า
ไม่จำเป็นว่า txAdmin ต้องใช้ 40120 เสมอไป
⑮ วิธีเปลี่ยน txAdmin Port
Cfx.re รองรับ Convar
txAdminPort
ตัวอย่างเปลี่ยนจาก 40120 เป็น 40121
FXServer.exe +set txAdminPort 40121
จากนั้นเข้า
http://localhost:40121
แทน
⑯ Port 40121 ใช้ได้ไหม
ได้ หากไม่มี Process อื่นครอบครอง Port และ Network Configuration อนุญาต
Cfx.re เองมีตัวอย่างใช้
40121
สำหรับ Server Profile อื่น
จึงเป็นตัวเลือกที่เข้าใจง่ายเมื่อ 40120 ถูกใช้อยู่
⑰ ต้องใช้ 40121 เท่านั้นไหม
ไม่จำเป็น
สามารถเลือก TCP Port อื่นที่เหมาะสมและไม่ชนกับ Service ที่มีอยู่
แต่ควรจด Documentation ให้ทีม Admin รู้ว่า Server ใช้ Port ไหน
ตัวอย่าง
Production txAdmin = 40120
Development txAdmin = 40121
Test txAdmin = 40122
ง่ายต่อการดูแลมากกว่าเลือกเลขสุ่มโดยไม่มีบันทึก
⑱ เปิด FiveM Server สองตัวควรตั้งอย่างไร
ตัวอย่างที่เหมาะสมคือ
Production
Game Port: 30120
txAdmin Port: 40120
Profile: production
และ
Development
Game Port: 30121
txAdmin Port: 40121
Profile: development
ต้องแยกทั้ง Game Port และ Management Port
⑲ serverProfile ควรแยกด้วยไหม
ควร
Cfx.re มี Convar
serverProfile
สำหรับแยก txAdmin Profile
ตัวอย่าง
FXServer.exe +set serverProfile production +set txAdminPort 40120
และ
FXServer.exe +set serverProfile development +set txAdminPort 40121
ทำให้สอง Server แยกข้อมูลกันชัดเจน
⑳ เปลี่ยน Port แล้วต้องเปลี่ยน txData ไหม
ไม่จำเป็นเพียงเพราะเปลี่ยน Port
txAdminPort กับ txData เป็นคนละเรื่อง
txAdminPort
= Network Port
txData
= ข้อมูล txAdmin/Profile
การเปลี่ยนจาก 40120 เป็น 40121 ไม่ควรต้องลบหรือสร้าง txData ใหม่
㉑ เปลี่ยน Port แล้วต้องสร้าง Recipe ใหม่ไหม
ไม่ต้อง
Port Conflict เป็นปัญหาของ Management Port
ไม่จำเป็นต้อง
Deploy Server ใหม่
Reset Recipe
ลบ Resources
Reset Database
สร้าง Server Key ใหม่
เพียงแก้ Port แล้วเปิด Instance เดิมใหม่ตาม Configuration
㉒ เปลี่ยน Port แล้วต้องแก้ Server Key ไหม
ไม่ต้อง
Server Registration Key เป็นคนละระบบกับ txAdmin Port
Server Key
= Cfx Server Registration
txAdminPort
= Web Management Port
อย่า Regenerate Server Key เพื่อแก้ Port 40120 ชน
㉓ เปลี่ยน Port แล้วต้องแก้ 30120 ไหม
ไม่จำเป็น
ถ้า Game Server ยังใช้
30120 TCP/UDP
ตามปกติ สามารถปล่อยไว้ได้
แล้วเปลี่ยนเฉพาะ txAdmin เป็น
40121 TCP
สอง Port ทำหน้าที่คนละอย่าง
㉔ Windows Firewall ต้องแก้หลังเปลี่ยน Port ไหม
ถ้าใช้ txAdmin เฉพาะ
localhost
อาจไม่ต้องมี Remote Incoming Rule
แต่ถ้าต้องการเข้า txAdmin จากเครื่องอื่นและ Firewall เดิมอนุญาตเฉพาะ 40120 เมื่อเปลี่ยนเป็น 40121 ก็ต้องตรวจ Rule ให้ตรงกับ Port ใหม่
ไม่ควรปิด Firewall ทั้งหมด
㉕ Provider Firewall ต้องเปลี่ยนด้วยไหม
ถ้า Server อยู่บน VPS/Dedicated และ Provider มี Cloud Firewall
เมื่อเปลี่ยน
40120
→
40121
ต้องตรวจ Network Rule ของ Provider ด้วย
ไม่เช่นนั้น
localhost:40121
อาจเข้าได้
แต่ Remote Browser เข้าไม่ได้
㉖ Localhost เข้าได้แต่ Public IP เข้าไม่ได้
กรณีนี้ Port Conflict ได้รับการแก้ในระดับ Application แล้ว
ปัญหาต่อไปน่าจะอยู่ที่
OS Firewall
Provider Firewall
Network
Interface
IP
ไม่ควรย้อนกลับไป Reinstall txAdmin
㉗ txAdminInterface ต้องเปลี่ยนไหม
โดยปกติไม่จำเป็นสำหรับการแก้ Port Conflict
Cfx.re กำหนดค่า Default
txAdminInterface = 0.0.0.0
ถ้าไม่ได้มีเหตุผลทาง Network ให้เปลี่ยน สามารถใช้ค่าเดิมได้
ปัญหา Port ชนแก้ที่ txAdminPort เป็นหลัก
㉘ Linux เช็ก Port 40120 อย่างไร
บน Linux สามารถใช้
ss -ltnp | grep 40120
เพื่อดูว่า TCP Port 40120 มี Process Listen อยู่หรือไม่
หากระบบอนุญาตจะแสดง Process/PID ที่เกี่ยวข้อง
จากนั้นตรวจ Process ก่อนตัดสินใจ Stop
㉙ Linux ใช้ lsof ได้ไหม
ถ้าติดตั้ง lsof ไว้ สามารถใช้
lsof -iTCP:40120 -sTCP:LISTEN
เพื่อช่วยค้นหา Process ที่ Listen Port
ไม่จำเป็นต้องติดตั้งเครื่องมือเพิ่มถ้า ss ที่มีอยู่สามารถให้ข้อมูลเพียงพอแล้ว
㉚ Linux เปลี่ยน txAdmin Port อย่างไร
ตัวอย่าง
./run.sh +set txAdminPort 40121
หรือแยก Profile
./run.sh +set serverProfile development +set txAdminPort 40121
จากนั้นเข้า Web Panel ผ่าน Port ใหม่
㉛ ใช้ systemd แล้ว Port ชนทำอย่างไร
ถ้า FXServer ถูกเปิดด้วย systemd ต้องตรวจว่า Service กำลัง Running อยู่หรือไม่
กรณีที่ Admin เปิด run.sh เองเพิ่มอีกครั้ง อาจเท่ากับเปิด FXServer ซ้ำ
จึงเกิด
systemd FXServer
→ 40120
Manual FXServer
→ พยายามใช้ 40120
→ Conflict
ควรเลือกให้ชัดว่า Process ถูกบริหารด้วยระบบใด
㉜ Windows Service ก็ทำให้เปิดซ้ำได้
เช่นเดียวกัน หากติดตั้ง FXServer ให้ Auto Start ผ่าน Windows Service หรือ Task Scheduler
ตอน Boot เครื่อง Server อาจเปิดอยู่แล้ว
เมื่อ Admin Remote Desktop เข้าไปแล้วดับเบิลคลิก FXServer.exe อีกครั้ง จึงเกิด Port Conflict
ตรวจ Task Manager และ Startup Configuration ก่อน
㉝ Task Scheduler ต้องตรวจไหม
ควรตรวจถ้า FXServer เปิดเองหลัง Boot
อาจมี Task ที่สั่ง
FXServer.exe
อัตโนมัติ
หากเปิด Manual ซ้ำจะเกิด Instance ที่สอง
ไม่จำเป็นต้องลบ Task แต่ต้องเข้าใจว่าตัวใดเป็น Process หลัก
㉞ Restart เครื่องแก้ Port Conflict ได้ไหม
อาจช่วยได้ถ้า Process ค้าง
แต่ถ้ามี Auto Start ที่เปิด FXServer ตัวเดิมทุกครั้ง หลัง Restart Port 40120 ก็จะถูกใช้อีกทันที
ดังนั้น Restart ไม่ใช่การแก้ Root Cause เสมอไป
ควรตรวจ Process Owner ก่อน
㉟ ถ้า Port 40120 ยังถูกใช้หลังปิด FXServer
ตรวจด้วย
netstat -ano | findstr :40120
อีกครั้ง
หากยังเห็น LISTENING แสดงว่ายังมี Process อื่นถือ Port
หา PID แล้วตรวจชื่อ Application
อย่าคิดว่า Port ต้องว่างเพียงเพราะปิดหน้าต่าง Console หนึ่งตัว
㊱ TIME_WAIT หมายถึง Port ยังชนหรือไม่
TIME_WAIT ต่างจาก LISTENING
หากดู netstat ต้องให้ความสำคัญกับ Process ที่กำลัง
LISTENING
บน Local Port 40120
Connection ที่อยู่ใน TIME_WAIT เป็นส่วนหนึ่งของ TCP Connection Lifecycle และไม่ควรตีความว่าเป็น Web Server Listener ตัวเดียวกันโดยอัตโนมัติ
㊲ ใช้ netstat -b ได้ไหม
Microsoft ระบุว่า netstat -b สามารถแสดง Executable ที่เกี่ยวข้องกับ Connection/Listening Port ได้ แต่ต้องมี Permission ที่เพียงพอและอาจทำงานช้ากว่า
ตัวอย่าง
netstat -abno
เหมาะเมื่ออยากตรวจ Executable เพิ่มเติม
แต่ netstat -ano แล้วหา PID ผ่าน Task Manager มักเพียงพอ
㊳ เปิด Command Prompt เป็น Administrator จำเป็นไหม
บางข้อมูลหรือคำสั่งอาจต้องใช้สิทธิ์สูงขึ้นเพื่อดูรายละเอียด Process ได้ครบ
หาก Command แสดงข้อมูลไม่เพียงพอ สามารถเปิด Command Prompt หรือ PowerShell ด้วยสิทธิ์ Administrator ตามความจำเป็น
แต่ไม่ควรใช้สิทธิ์ Administrator เพื่อ Kill Process แบบสุ่ม
㊴ Kill Process ด้วย taskkill ได้ไหม
ทำได้ทางเทคนิค เช่น
taskkill /PID 1234
แต่ไม่ควรใช้จนกว่าจะยืนยันว่า PID นั้นเป็น Process ที่ต้องหยุดจริง
สำหรับ Production FXServer ควร Stop Server อย่างถูกต้องก่อน
Force Kill ใช้เป็นทางเลือกเมื่อ Process ค้างและเข้าใจผลกระทบแล้ว
㊵ อย่าปิด Firewall เพื่อแก้ Port Already in Use
Firewall กับ Port Conflict เป็นคนละปัญหา
ข้อความ
Port already in use
หมายถึงมี Process ถือ Port อยู่
การปิด Windows Firewall ไม่ได้ทำให้ Process นั้นปล่อย Port
ดังนั้นการปิด Firewall ไม่ใช่วิธีแก้ที่ตรงจุด
㊶ อย่าเปิด Port 40120 เพิ่มหลาย Rule
หากปัญหาคือ Port ถูก Process อื่นใช้ การสร้าง Firewall Rule เพิ่มอีกหลายรายการไม่ช่วย
ต้องแก้ที่
Process
หรือ
txAdminPort
ก่อน
Firewall มีหน้าที่ควบคุม Traffic ไม่ได้จัดการว่า Application ไหนถือ Socket อยู่
㊷ เปลี่ยนเป็น Port 40121 แล้วเข้าไม่ได้
ตรวจตามนี้
FXServer เปิดด้วย 40121 จริงไหม
↓
netstat/ss มี Listener 40121 ไหม
↓
localhost:40121 เข้าได้ไหม
↓
Firewall อนุญาตไหม
↓
Remote Address ถูกไหม
อย่าคิดว่าเปลี่ยน Parameter แล้ว Process ใช้ค่าตามนั้นจนกว่าจะตรวจจริง
㊸ วิธีเช็ก Port 40121 บน Windows
ใช้
netstat -ano | findstr :40121
ควรพบ Listener ของ FXServer/txAdmin ที่ Port ใหม่
จากนั้นเข้า
http://localhost:40121
หาก Localhost ใช้งานได้ถือว่าการเปลี่ยน Port สำเร็จในระดับ Local
㊹ Browser ยังเปิด Bookmark 40120 อยู่
หลังเปลี่ยน Port อย่าลืมว่า Bookmark เดิมอาจยังเป็น
http://SERVER_IP:40120
ต้องเปลี่ยนเป็น
http://SERVER_IP:40121
ปัญหานี้ง่ายแต่เกิดได้บ่อยมากเมื่อทีม Admin หลายคนใช้งานร่วมกัน
㊺ ต้องแจ้งทีม Admin เมื่อเปลี่ยน Port
ควร
เพราะ Staff ที่ยังใช้ URL เดิมจะคิดว่า txAdmin Down
Document ภายในควรมีอย่างน้อย
Server Name
Server IP/Hostname
Game Port
txAdmin Port
Environment
แต่ไม่ควรเก็บ Password หรือ Secret แบบไม่ปลอดภัยในเอกสารทั่วไป
㊻ ควรเปลี่ยน Port เพื่อความปลอดภัยหรือไม่
สามารถเปลี่ยนได้ แต่ไม่ควรมองว่าเป็น Security Control หลัก
ระบบยังต้องใช้
Strong Password
Cfx Account Security
Admin Permission
Firewall
จำกัด Source IP ตามความเหมาะสม
Logs
Artifact ที่ Supported
การใช้ Port ที่ไม่ใช่ Default ไม่ได้ทำให้ Management Panel ปลอดภัยโดยอัตโนมัติ
㊼ ถ้า Port Conflict เกิดหลัง Update Artifact
ตรวจว่า Update เปลี่ยน Startup Process หรือทำให้ FXServer ถูกเปิดสองครั้งหรือไม่
ตัวอย่าง
Service เดิม
+
Startup Script ใหม่
อาจเปิด Server ซ้ำ
ก่อน Rollback Artifact ให้ตรวจ Process List และ Startup Configuration ก่อน
㊽ ถ้า txAdmin Profile หายหลังเปลี่ยน Port
การเปลี่ยน txAdminPort อย่างเดียวไม่ควรทำให้ Profile หาย
ตรวจ
serverProfile
txDataPath
Working Directory
เพราะอาจเปิด FXServer ด้วย Command ใหม่ที่ลืม Parameter Profile เดิม
ตัวอย่างเดิมคือ
+set serverProfile production
แต่ Command ใหม่มีเพียง
+set txAdminPort 40121
จึงอาจเปิด Default Profile แทน
㊾ วิธีแก้ Port 40120 ถูกใช้งานอยู่แบบสรุป
Windows:
1. เปิด Command Prompt
2. netstat -ano | findstr :40120
3. จด PID
4. ตรวจ PID ใน Task Manager
5. ถ้าเป็น Process เก่าที่ไม่ต้องใช้ → Stop
6. ถ้าเป็น Server ที่ต้องใช้อยู่ → อย่าปิด
7. ตั้ง Server ใหม่เป็น 40121
8. เปิด FXServer
9. ตรวจ netstat :40121
10. เข้า localhost:40121
Linux:
1. ss -ltnp | grep 40120
2. ตรวจ Process
3. Stop เฉพาะ Process ที่ไม่จำเป็น
4. หรือเปลี่ยน txAdminPort เป็น 40121
5. เปิด FXServer
6. ตรวจ Listener
7. เข้า Web Panel ด้วย Port ใหม่
㊿ สรุป txAdmin Port 40120 ถูกใช้งานอยู่ แก้อย่างไร
ข้อความ Port 40120 ถูกใช้งานอยู่ หมายความว่ามี Process อื่นครอบครอง TCP Port ที่ txAdmin ต้องการใช้
วิธีแก้ที่ถูกต้องคือ
ตรวจ Port
↓
หา PID
↓
ระบุ Process
↓
ตัดสินใจ
├── Process ไม่จำเป็น → Stop
└── Process ต้องใช้ → เปลี่ยน txAdminPort
บน Windows ใช้
netstat -ano | findstr :40120
เพื่อหา PID ได้
ถ้าต้องเปลี่ยน Port สามารถเปิด FXServer เช่น
FXServer.exe +set txAdminPort 40121
หรือถ้ามีหลาย Server ควรแยก Profile ไปพร้อมกัน
FXServer.exe +set serverProfile development +set txAdminPort 40121
แล้วเข้า
http://localhost:40121
สิ่งที่ไม่ควรทำคือปิด Firewall, ลบ txData, Reinstall Server หรือ Kill Process แบบสุ่ม เพราะทั้งหมดไม่ใช่วิธีแก้ Port Conflict ที่ตรงจุด
สำหรับคนที่เปิด Production และ Development Server ในเครื่องเดียวกัน comsiam แนะนำให้กำหนด Port และ Profile ของแต่ละ Instance ไว้ตั้งแต่แรก เช่น 40120, 40121, 40122 ตามลำดับ และจดไว้ในเอกสาร Server
เมื่อจัด Port อย่างเป็นระบบ ปัญหา 40120 already in use จะตรวจและแก้ได้ง่ายมาก และช่วยให้ผู้ดูแล FiveM Server ของ comsiam ไม่ต้องเสียเวลาแก้ Network หรือ Reinstall ระบบทั้ง Server ทั้งที่ต้นเหตุเป็นเพียง Process สองตัวพยายามใช้ Port เดียวกัน
Comments
Post a Comment