endpoint_add_tcp และ endpoint_add_udp FiveM คืออะไร? ตั้ง IP และ Port อย่างไรให้ถูกต้อง

endpoint_add_tcp และ endpoint_add_udp คือคำสั่งสำคัญใน server.cfg ของ FiveM ที่ใช้กำหนด Network Endpoint ซึ่ง FXServer จะ Listen เพื่อรับการเชื่อมต่อ

Configuration มาตรฐานที่พบในตัวอย่างทางการของ Cfx.re คือ

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

ความหมายแบบง่ายคือ

TCP → Listen ที่ Port 30120
UDP → Listen ที่ Port 30120

ส่วน 0.0.0.0 หมายถึงการ Bind บน IPv4 Interfaces ที่เหมาะสมของเครื่อง โดย Server ทั่วไปไม่จำเป็นต้องเปลี่ยนเป็น Public IP

① endpoint_add_tcp คืออะไร

endpoint_add_tcp เป็น Server Command สำหรับสร้างและ Bind TCP Endpoint

ตัวอย่าง

endpoint_add_tcp "0.0.0.0:30120"

FXServer จะสร้าง TCP Server Instance และพยายาม Bind กับ Address และ Port ที่กำหนด

② endpoint_add_udp คืออะไร

endpoint_add_udp ใช้สร้าง UDP Host Instance

ตัวอย่าง

endpoint_add_udp "0.0.0.0:30120"

Address และ Port ต้องถูกต้องและยังไม่ถูกใช้งานในลักษณะที่ทำให้ Bind ไม่สำเร็จ

③ ทำไม FiveM ต้องมีทั้ง TCP และ UDP

FiveM Networking ไม่ได้ใช้ Protocol เดียวทั้งหมด

ในระดับโครงสร้างมีทั้ง

HTTP/TCP
Raw TCP
UDP

ดังนั้น Default Configuration จึงประกาศทั้ง TCP และ UDP Endpoint

④ Configuration มาตรฐานคืออะไร

สำหรับ Server ทั่วไป

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

เป็นจุดเริ่มต้นที่เหมาะสม

โดยเฉพาะ Server ที่ไม่ได้มี Reverse Proxy หรือ Network Architecture ซับซ้อน

⑤ 30120 คืออะไร

30120 คือ Game Port ที่ใช้ในตัวอย่าง FiveM Server มาตรฐาน

จึงมักเห็น Address

SERVER_IP:30120

เมื่อผู้เล่นใช้ Direct Connect

⑥ 30120 เปลี่ยนได้ไหม

ได้

เช่น

endpoint_add_tcp "0.0.0.0:30121"
endpoint_add_udp "0.0.0.0:30121"

จากนั้นต้องแก้ Firewall, Port Forwarding และ Address ที่ใช้เชื่อมต่อให้ตรงกัน

⑦ 0.0.0.0 คืออะไร

0.0.0.0 ในบริบทของ Server Binding หมายถึงการ Listen บน IPv4 Interfaces ที่เหมาะสมของเครื่อง

ตัวอย่าง

endpoint_add_tcp "0.0.0.0:30120"

ไม่ได้หมายความว่า IP ของ Server คือ 0.0.0.0

⑧ ผู้เล่นใช้ 0.0.0.0 เข้า Server ได้ไหม

ไม่ควรใช้

Player ต้องใช้ Address ที่เข้าถึง Server ได้จริง เช่น

127.0.0.1
192.168.1.100
Public IP
Domain
Cfx Join Address

ตามตำแหน่งของ Client

⑨ ตัวอย่างเข้า Server เครื่องเดียวกัน

ถ้า FiveM Client กับ FXServer อยู่เครื่องเดียวกัน

connect 127.0.0.1:30120

127.0.0.1 คือ Loopback Address ของเครื่องนั้น

⑩ ตัวอย่างเข้า Server ผ่าน LAN

สมมุติเครื่อง FXServer มี Local IP

192.168.1.100

เครื่องอื่นใน LAN ใช้

connect 192.168.1.100:30120

ไม่ต้องเปลี่ยน endpoint_add_tcp เป็น 192.168.1.100 เพียงเพื่อให้ LAN เข้าได้ใน Setup ปกติ

⑪ ต้องเปลี่ยน 0.0.0.0 เป็น Local IP ไหม

โดยทั่วไป ไม่ต้อง

คู่มือ Vanilla ของ Cfx.re ระบุว่า

ให้เปลี่ยน IP เฉพาะกรณี Server มีหลาย Network Interfaces

สำหรับ Server ทั่วไปให้เปลี่ยนเฉพาะ Port หากจำเป็น

⑫ ทำไม 0.0.0.0 ถึงสะดวก

เพราะ Server ไม่ต้องผูก Service ไว้กับ IPv4 Address ตัวเดียว

เช่นเครื่องอาจมี

LAN Interface
VPN Interface
Public Interface

แต่การเลือก Interface เฉพาะควรทำเมื่อเข้าใจ Network Architecture แล้ว

⑬ เมื่อไรควรระบุ IP เฉพาะ

เช่น Server มีหลาย NIC

NIC 1 → Public
NIC 2 → Private

และต้องการให้ FXServer Listen เฉพาะ Interface หนึ่ง

จึงอาจกำหนด Address เฉพาะตาม Network Design

⑭ ตัวอย่าง Bind IP เฉพาะ

สมมุติเครื่องมี IP ที่ Interface จริงคือ

10.10.0.10

Configuration อาจเป็น

endpoint_add_tcp "10.10.0.10:30120"
endpoint_add_udp "10.10.0.10:30120"

แต่ต้องแน่ใจว่า IP นี้มีอยู่บน Interface ของเครื่องจริง

⑮ เอา Public IP มาใส่ได้เสมอไหม

ไม่ได้

ถ้า Server อยู่หลัง NAT Public IP อาจอยู่บน Router ไม่ได้อยู่บน Network Interface ของ FXServer

เช่น

Router Public IP
203.0.113.10

Server Local IP
192.168.1.100

ในกรณีนี้การพยายาม Bind FXServer โดยตรงกับ 203.0.113.10 อาจผิด Architecture

⑯ Server หลัง Router ควรทำอย่างไร

มักใช้

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

แล้ว Router ทำ

Public TCP 30120
→ 192.168.1.100:30120

Public UDP 30120
→ 192.168.1.100:30120

นี่คือหน้าที่ของ NAT/Port Forwarding

⑰ Endpoint กับ Port Forwarding เหมือนกันไหม

ไม่เหมือนกัน

endpoint_add_*
→ บอก FXServer ว่าจะ Listen ที่ไหน
Port Forwarding
→ บอก Router ว่าจะส่ง Incoming Traffic ไปเครื่องไหน

ทั้งสองต้องสัมพันธ์กัน

⑱ Endpoint กับ Firewall เหมือนกันไหม

ไม่เหมือนกันเช่นกัน

FXServer อาจ Listen ที่

30120

แต่ Firewall ยัง Block อยู่ได้

Flow คือ

Internet
↓
Firewall
↓
FXServer Endpoint

⑲ เปิด Endpoint แล้ว Firewall เปิดเองไหม

ไม่

คำสั่ง

endpoint_add_tcp "0.0.0.0:30120"

ไม่สร้าง Windows Firewall Rule หรือ Cloud Firewall Rule ให้อัตโนมัติ

ต้องจัดการ Firewall แยก

⑳ Default Firewall ควรอนุญาตอะไร

ถ้าใช้ Default Endpoints

TCP 30120
UDP 30120

ควรได้รับอนุญาตใน Network Layer ที่เกี่ยวข้อง

㉑ ถ้าเปลี่ยน Port เป็น 30200

Config

endpoint_add_tcp "0.0.0.0:30200"
endpoint_add_udp "0.0.0.0:30200"

Firewall ก็ต้องเป็น

TCP 30200
UDP 30200

และผู้เล่นใช้

connect SERVER_IP:30200

㉒ endpoint_add_tcp กับ endpoint_add_udp ต้อง Port เดียวกันไหม

สำหรับ Server ทั่วไปควรใช้ Port เดียวกันเพื่อให้ง่ายต่อการดูแล

เช่น

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

แต่ Advanced Proxy Architecture สามารถแยก TCP กับ UDP ได้ในบางกรณี

㉓ FiveM รองรับ TCP Port คนละตัวกับ UDP หรือไม่

มี Configuration ขั้นสูงที่ทำได้

ตัวอย่างในคู่มือ Local TLS Proxy ของ Cfx.re ใช้

endpoint_add_udp "0.0.0.0:30120"
endpoint_add_tcp "0.0.0.0:30121"

โดย TCP ถูกส่งผ่าน Proxy

แต่ Server ปกติไม่จำเป็นต้องทำแบบนี้

㉔ ทำไมคู่มือ Proxy ให้ UDP มาก่อน TCP

ใน Local TLS Proxy Example ปัจจุบัน Cfx.re ระบุให้กำหนด

endpoint_add_udp "0.0.0.0:30120"
endpoint_add_tcp "0.0.0.0:30121"

ตามลำดับนี้ มิฉะนั้น TCP Port Change ในตัวอย่างดังกล่าวอาจทำงานไม่ถูกต้อง

นี่เป็นข้อกำหนดของ Setup ขั้นสูงนั้น ไม่ใช่เหตุผลให้ Server ทั่วไปเปลี่ยน Config

㉕ netPort คืออะไร

Cfx.re มี Variable

netPort

สำหรับ Primary Port ที่ถูกใช้ในระบบภายใน เช่น Nucleus และ Heartbeat

ถ้ายังไม่ได้กำหนด Primary Port ค่า Port จาก endpoint_add_tcp สามารถถูกใช้เป็น Primary Port ได้

Server ทั่วไปแทบไม่จำเป็นต้องแก้ netPort โดยตรง

㉖ sv_endpoints คืออะไร

มี Variable

sv_endpoints

สำหรับกำหนดรายการ IP Address ที่ Client สามารถใช้ Connect ผ่าน UDP

ถ้าว่าง ระบบสามารถใช้ Public IP ที่ตรวจพบโดยอัตโนมัติ

มักเกี่ยวข้องกับ Proxy หรือ Network Setup ขั้นสูง

㉗ Server ปกติต้องตั้ง sv_endpoints ไหม

ไม่จำเป็นโดยทั่วไป

ถ้า Server ใช้ Public Network ปกติและ Auto-detection ทำงานได้ ไม่ควรเพิ่ม Complexity โดยไม่มีเหตุผล

sv_endpoints มีประโยชน์มากกว่าใน Proxy/Multi-IP Architecture

㉘ Multiple IP Server ใช้ทำอะไรได้บ้าง

เครื่อง Dedicated บางเครื่องอาจมีหลาย IP

ตัวอย่าง

203.0.113.10
203.0.113.11
203.0.113.12

อาจใช้แยก Services หรือ Server Instances ตาม Network Design

แต่ต้องจัดทั้ง

Binding
Routing
Firewall
Public Endpoint

ให้ถูกต้อง

㉙ เปิด Server สองตัวใช้ 30120 เหมือนกันได้ไหม

หากทั้งสองพยายาม Bind Address/Protocol เดียวกันบนเครื่องเดียวกัน จะเกิด Conflict ได้

เช่น

Server A
0.0.0.0:30120

Server B
0.0.0.0:30120

ไม่ควรใช้แบบนี้

㉚ วิธีตั้ง Server สองตัว

Server A

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

Server B

endpoint_add_tcp "0.0.0.0:30121"
endpoint_add_udp "0.0.0.0:30121"

ทำให้แต่ละ Instance มี Game Port ของตัวเอง

㉛ Port ถูกใช้งานอยู่เกิดอะไรขึ้น

Cfx.re ระบุว่า Endpoint Address/Port ต้อง

valid
และ
not already in use

จึงจะ Bind สำเร็จ

ถ้า Port ถูก Process อื่นครอบครอง FXServer อาจเปิด Endpoint ไม่ได้

㉜ วิธีตรวจ Port บน Windows

ใช้

netstat -ano | findstr :30120

ดูว่ามี Process ใดใช้ Port อยู่

ถ้ามี PID สามารถตรวจต่อว่าเป็น Process อะไร

㉝ วิธีตรวจ Process จาก PID

ตัวอย่าง

tasklist /FI "PID eq 1234"

เปลี่ยน 1234 เป็น PID จริง

ช่วยตรวจว่า

FXServer
Web Server
Proxy
Server Instance อื่น

กำลังใช้ Port

㉞ Linux ตรวจอย่างไร

ใช้

ss -lntup | grep 30120

เพื่อดู TCP/UDP Listeners ที่เกี่ยวข้อง

㉟ Address already in use แก้อย่างไร

มีสองทางหลัก

หยุด Process ที่ไม่ควรใช้ Port

หรือ

เปลี่ยน FXServer ไป Port ใหม่

อย่า Kill Process แบบสุ่มโดยไม่รู้ว่าเป็น Service อะไร

㊱ เปลี่ยน Port ต้อง Restart Server ไหม

ต้อง Restart FXServer

เพราะ Endpoint ถูกสร้างและ Bind ระหว่าง Startup

เพียง Restart Resource ไม่ได้เปลี่ยน Game Listening Endpoint

㊲ วิธีตรวจหลัง Restart

ตรวจตามลำดับ

Live Console
↓
Port Listener
↓
info.json
↓
Direct Connect

ถ้ามี Bind Error ให้หยุดแก้ Network ภายนอกก่อน

㊳ วิธีทดสอบ info.json

ถ้า Port เป็น 30120

http://127.0.0.1:30120/info.json

ถ้าเปลี่ยนเป็น 30121

http://127.0.0.1:30121/info.json

ใช้ตรวจ Connect Endpoint ในเครื่องก่อน

㊴ Localhost ผ่านแล้วทำอะไรต่อ

ทดสอบ Local IP เช่น

http://192.168.1.100:30120/info.json

จากนั้นทดสอบ Public Address จาก Network ภายนอก

㊵ Direct Connect ทดสอบอย่างไร

เปิด FiveM กด

F8

แล้วพิมพ์

connect SERVER_IP:30120

ถ้าเปลี่ยน Port ต้องใช้ Port ใหม่

㊶ Endpoint ทำงานแต่ Server List ไม่ขึ้นได้ไหม

ได้

Network Endpoint เป็นเพียงส่วนหนึ่ง

Server List ยังเกี่ยวกับ

Firewall
NAT
Cfx Connectivity
sv_lan
Server Information
Artifact

ดังนั้น Direct Connect เป็น Test ที่มีประโยชน์มาก

㊷ endpoint_add_tcp หายจะเกิดอะไร

หาก TCP Endpoint ที่ Server Configuration ต้องใช้ไม่ได้ถูกสร้าง อาจกระทบ Connect Endpoint และ TCP Connectivity

Default Server จึงควรมีทั้ง TCP และ UDP

㊸ endpoint_add_udp หายจะเกิดอะไร

ถ้าไม่มี UDP Endpoint ที่ถูกต้อง Game Networking จะไม่ตรงกับ Default Architecture ของ FiveM

จึงไม่ควรลบออกเพียงเพราะ Browser info.json ยังเปิดได้ผ่าน TCP

㊹ ทำไม info.json ผ่านแต่ Player ยังเข้าไม่ได้

เพราะ

info.json
→ HTTP/TCP Test

แต่ FiveM Connection ยังต้องใช้ Networking ขั้นต่อไป รวมถึง UDP

ดังนั้น Browser Test ผ่านไม่ได้แปลว่า UDP Endpoint ผ่าน

㊺ Reverse Proxy ใช้ HTTP Proxy อย่างเดียวพอไหม

ไม่เสมอไป

ถ้าต้องการ Proxy Raw FiveM Server Endpoint ต้องพิจารณาทั้ง

TCP
UDP

คู่มือ Cfx.re มีตัวอย่าง Nginx stream สำหรับ Proxy Raw TCP/UDP โดยเฉพาะ

㊻ Cloudflare Web Proxy ธรรมดาแทน UDP Endpoint ได้ไหม

ไม่ควรสรุปว่า Proxy เว็บธรรมดาจะทำงานแทน Game Networking ได้

FiveM มี Connect Endpoint และ Raw TCP/UDP Endpoint คนละส่วน

Advanced Proxy Setup ต้องออกแบบตาม Documentation ของ FiveM และความสามารถของ Proxy ที่ใช้จริง

㊼ Security ควร Bind แบบไหน

สำหรับ Server ทั่วไป

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

ร่วมกับ Firewall ที่เปิดเฉพาะ Port ที่จำเป็น มักจัดการง่ายกว่า

ไม่ควรคิดว่าการเปลี่ยน Binding Address อย่างเดียวทดแทน Firewall ได้

㊽ Checklist endpoint_add_tcp / udp

ตรวจ

มี endpoint_add_tcp
มี endpoint_add_udp
Address ถูกต้อง
Port ถูกต้อง
Port ไม่ชน
Firewall ตรง Port
Port Forwarding ตรง Port
Cloud Firewall ตรง Port
Direct Connect ใช้ Port ถูก
ไม่มี Config ซ้ำ
Server Restart แล้ว
Console ไม่มี Bind Error

㊾ ตัวอย่าง Config ที่แนะนำสำหรับ Server ปกติ

# Network endpoints
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

# Server information
sv_hostname "My FiveM Server"
sets sv_projectName "My Community"
sets sv_projectDesc "Thai roleplay community."

# OneSync
set onesync on

# Slots
sv_maxclients 48

# Server key
sv_licenseKey "YOUR_SERVER_KEY"

สำหรับ Server ทั่วไปไม่จำเป็นต้องทำ Network Configuration ให้ซับซ้อนกว่านี้จนกว่าจะมี Requirement จริง

㊿ สรุป endpoint_add_tcp และ endpoint_add_udp FiveM คืออะไร

สองคำสั่งนี้ใช้สร้าง Network Endpoints ของ FXServer

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

ความหมายคือ

endpoint_add_tcp
→ สร้างและ Bind TCP Server Endpoint
endpoint_add_udp
→ สร้าง UDP Host Endpoint

ส่วน

0.0.0.0

คือ Binding Address ไม่ใช่ Public IP ที่ผู้เล่นต้องใช้ Connect

และ

30120

คือ Default Game Port ที่ใช้ในตัวอย่าง FiveM Server

สำหรับ Server ทั่วไป comsiam แนะนำให้คงโครงสร้างมาตรฐาน

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

แล้วเปลี่ยนเฉพาะ Port เมื่อมีเหตุผล เช่นเปิดหลาย Server Instance

ถ้าเปลี่ยนเป็น

30121

ต้องแก้ทั้งหมดให้ตรงกัน

server.cfg
Firewall
Cloud Firewall
Port Forwarding
Direct Connect Address
Monitoring

ไม่ใช่แก้เฉพาะ server.cfg

ส่วนการ Bind IP เฉพาะ, แยก TCP/UDP คนละ Port, sv_endpoints หรือ Reverse Proxy ควรใช้เมื่อมี Network Architecture ที่ต้องการจริง

หลักสำคัญสำหรับผู้ดูแล FiveM Server ของ comsiam คือแยกให้ออกระหว่าง

Endpoint
→ FXServer Listen
Firewall
→ อนุญาตหรือ Block Traffic
Port Forwarding
→ ส่ง Traffic ผ่าน NAT

เมื่อเข้าใจสามส่วนนี้ การแก้ปัญหา FiveM Server เข้าไม่ได้, Port ชน หรือ Server ไม่ขึ้นจาก Network Configuration จะง่ายขึ้นอย่างมาก

Comments

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด