เชื่อมต่อเซิร์ฟเวอร์ Minecraft ไม่ได้? วิธีแก้
“Connection timed out”, “Connection refused” และ “Unknown host” ล้วนหมายความว่าเกมเข้าถึงเซิร์ฟเวอร์ไม่ได้ แต่แต่ละอันชี้ไปที่สาเหตุต่างกัน หาข้อผิดพลาดของคุณด้านล่าง แล้วทำตามรายการตรวจสำหรับผู้เล่นหรือสำหรับเจ้าของเซิร์ฟเวอร์
ข้อผิดพลาดบอกอะไร
| ข้อผิดพลาด | มักหมายถึง |
|---|---|
| Connection refused | ที่อยู่นั้นตอบกลับ แต่ไม่มีอะไรรอรับบนพอร์ตนั้น: เซิร์ฟเวอร์ปิดอยู่ ยังเริ่มไม่เสร็จ หรือใช้พอร์ตอื่น |
| Connection timed out | ไม่มีการตอบกลับเลย: ไฟร์วอลล์ทิ้งทราฟฟิก IP ผิด หรือเส้นทางไปยังเซิร์ฟเวอร์มีปัญหา |
| Unknown host | ชื่อโดเมนไม่ได้ชี้ไปที่ไหน: ระเบียน DNS หายไปหรือพิมพ์ผิด |
| Outdated client, outdated server หรือ incompatible client | ผู้เล่นและเซิร์ฟเวอร์ใช้ Minecraft คนละเวอร์ชัน |
| Failed to verify username | การตรวจสอบบัญชีกับเซิร์ฟเวอร์ล็อกอินของ Minecraft ล้มเหลว |
| ไม่อยู่ใน whitelist | เซิร์ฟเวอร์ให้เข้าได้เฉพาะผู้เล่นที่อยู่ในรายชื่อ |
เข้าได้แต่ถูกตัดหรือถูกเตะออกทันทีใช่ไหม ดู คู่มือ “Failed to verify username” และ คู่มือ “connection forcibly closed”
รายการตรวจสำหรับผู้เล่น
- ตรวจที่อยู่ คัดลอกให้ตรงจากเว็บไซต์หรือ Discord ของเซิร์ฟเวอร์ ถ้ามีพอร์ต ให้พิมพ์เป็น
address:port - ใช้เวอร์ชันให้ตรงกัน เลือกเวอร์ชัน Minecraft ของเซิร์ฟเวอร์ใน installations ของ launcher
- รีสตาร์ท launcher แล้วลงชื่อเข้าใหม่ วิธีนี้แก้ข้อผิดพลาด “Failed to verify username” ได้เกือบทุกครั้ง
- ปิด VPN แล้วลองเครือข่ายอื่น เช่น ฮอตสปอตจากโทรศัพท์
- อนุญาต Java ในไฟร์วอลล์ของคุณ บางครั้ง Windows บล็อกหลังอัปเดต
- ตรวจรุ่นของเกม โทรศัพท์ คอนโซล และแอป Bedrock บน Windows เล่น Bedrock Edition ซึ่งเข้าเซิร์ฟเวอร์ Java Edition เองโดยตรงไม่ได้
รายการตรวจสำหรับเจ้าของเซิร์ฟเวอร์
1. เซิร์ฟเวอร์รันอยู่และรอรับการเชื่อมต่อหรือไม่?
รอให้คอนโซลขึ้น “Done” ก่อนเข้าเกม แล้วตรวจว่ามีโปรแกรมรอรับบนพอร์ตนั้น:
ss -tln | grep 25565
ถ้าไม่มีอะไรขึ้นมา แปลว่าเซิร์ฟเวอร์ไม่ได้รอรับที่พอร์ตนั้น ให้ตรวจ server-port ใน server.properties
2. ปล่อย server-ip ให้ว่าง
ใน server.properties ค่า server-ip ปกติควรว่างไว้ เพื่อให้เซิร์ฟเวอร์รอรับบนทุกที่อยู่ การใส่ IP ผิดตรงนั้นเป็นสาเหตุที่พบบ่อยของ “Connection refused”
3. เปิดพอร์ต
Java Edition ใช้ TCP อนุญาตพอร์ตของคุณในไฟร์วอลล์ของเซิร์ฟเวอร์ และในไฟร์วอลล์ใดๆ ที่โฮสต์ของคุณมีให้:
sudo ufw allow 25565/tcp
จากนั้นทดสอบจากเครือข่ายอื่น ด้วยเว็บตรวจพอร์ตออนไลน์หรือจากเครื่องอื่น:
nc -vz your-server-ip 25565
4. ตรวจระเบียน DNS ของคุณ
ถ้าผู้เล่นเข้าด้วยโดเมน ระเบียน A ของโดเมนต้องชี้ไปที่ IP ของเซิร์ฟเวอร์ ถ้าต้องการให้ผู้เล่นไม่ต้องพิมพ์พอร์ตที่กำหนดเอง ให้เพิ่มระเบียน SRV:
_minecraft._tcp.play.example.com. SRV 0 5 25566 mc.example.com.
เป้าหมายของระเบียน SRV ต้องเป็นชื่อโฮสต์ที่มีระเบียน A ของตัวเอง ไม่ใช่ที่อยู่ IP การเปลี่ยน DNS อาจใช้เวลาสักพักกว่าจะถึงผู้เล่นทุกคน
5. เวอร์ชันและการล็อกอิน
- ผู้เล่นที่ใช้เวอร์ชันใหม่กว่าจะเจอ “Outdated server” อัปเดตเซิร์ฟเวอร์ หรือเพิ่มปลั๊กอินอย่าง ViaVersion ที่ให้ client รุ่นใหม่กว่าเข้าได้
- ตั้ง
online-mode=trueไว้ เว้นแต่เซิร์ฟเวอร์อยู่หลังพร็อกซี Velocity หรือ BungeeCord ที่ตรวจบัญชีแทน - สำหรับเซิร์ฟเวอร์ส่วนตัว ตรวจรายชื่อด้วย
whitelist listและเพิ่มผู้เล่นด้วยwhitelist add PlayerName
6. อยู่หลังพร็อกซี?
บนเครือข่าย Velocity หรือ BungeeCord ผู้เล่นเชื่อมต่อไปที่พร็อกซี ไม่ใช่เซิร์ฟเวอร์เกมที่อยู่ด้านหลัง ถ้าพร็อกซีเข้าถึงเซิร์ฟเวอร์เกมไม่ได้ ผู้เล่นจะเห็นข้อผิดพลาดจากพร็อกซีแทน ตรวจที่อยู่ของเซิร์ฟเวอร์ในการตั้งค่าของพร็อกซี และตรวจว่าเซิร์ฟเวอร์เกมแต่ละตัวใช้การตั้งค่า forwarding แบบเดียวกับพร็อกซี
7. มีผลแค่กับผู้เล่นบางคน?
ถ้าผู้เล่นจากประเทศเดียว หรือผู้ให้บริการอินเทอร์เน็ตเจ้าเดียว เจอ timeout ขณะที่คนอื่นเข้าได้ แปลว่าเส้นทางจากเครือข่ายของพวกเขามีปัญหา หรือตัวกรอง DDoS บล็อกพวกเขาอยู่ ขอที่อยู่ IP และเวลาที่เกิด แล้วส่งทั้งสองอย่างให้โฮสต์ของคุณ ถ้าคุณกรองทราฟฟิกเพราะโดนโจมตี ดู วิธีป้องกันเซิร์ฟเวอร์ Minecraft จากการโจมตี DDoS
โฮสต์เซิร์ฟเวอร์ Minecraft ของคุณในสิงคโปร์
ปิงต่ำสำหรับผู้เล่นในอินเดีย มาเลเซีย และอินโดนีเซีย บนคอร์ AMD EPYC ที่เร็ว พร้อม NVMe และการป้องกัน DDoS
