Minecraft Server Port Forwarding: คำแนะนำการตั้งค่าแบบสมบูรณ์ครับ

ภาพประกอบการตั้งค่าเซิร์ฟเวอร์ Minecraft พร้อมเราเตอร์และการเชื่อมต่อเครือข่าย

การ port forwarding สำหรับ Minecraft server คือการบอกเราเตอร์ของคุณให้ส่งคำขอการเชื่อมต่อ Minecraft ที่เข้ามาจากภายนอกไปยังคอมพิวเตอร์ที่รันเซิร์ฟเวอร์ของคุณโดยตรง หากไม่มีการตั้งค่านี้ เราเตอร์จะบล็อกการรับส่งข้อมูลจากภายนอก และไม่มีใครจากนอกเครือข่ายบ้านของคุณสามารถเข้าร่วมเกมได้ พอร์ตเริ่มต้นที่ Minecraft Java Edition ใช้คือ 25565 (TCP) และนี่คือพอร์ตที่คุณจะทำการ forward ในเกือบทุกกรณี

Port Forwarding ทำงานอย่างไรสำหรับ Minecraft

เราเตอร์ของคุณอยู่ระหว่างอินเทอร์เน็ตและอุปกรณ์ทุกเครื่องบนเครือข่ายบ้านของคุณ มันใช้ Network Address Translation (NAT) เพื่อแบ่งปันที่อยู่ IP สาธารณะเพียงที่อยู่เดียวกับอุปกรณ์ทั้งหมดของคุณ เมื่อเพื่อนพยายามเชื่อมต่อกับเซิร์ฟเวอร์ Minecraft ของคุณ เกมของพวกเขาจะส่ง packet ไปยังที่อยู่ IP สาธารณะของคุณบนพอร์ต 25565 หากไม่มีกฎการ forward เราเตอร์จะไม่รู้ว่าอุปกรณ์ใดบนเครือข่ายของคุณควรรับ packet นั้น จึงจะทิ้งมันไป

กฎ port forwarding บอกเราเตอร์ว่า "การรับส่งข้อมูลใด ๆ ที่มาถึงพอร์ต 25565 ให้ไปยังที่อยู่ IP ท้องถิ่นของเซิร์ฟเวอร์ PC ของฉัน" เมื่อกฎนั้นมีอยู่ เราเตอร์จะส่งการเชื่อมต่อผ่าน และเพื่อนของคุณจะเข้าสู่โลกของคุณ

ก่อนที่คุณจะเริ่ม

รวบรวมข้อมูลสี่ชิ้นนี้ก่อนที่จะแตะการตั้งค่าเราเตอร์ของคุณ การเตรียมข้อมูลเหล่านี้ให้พร้อมจะทำให้กระบวนการทั้งหมดใช้เวลาน้อยกว่าห้านาที

  • ที่อยู่ IP ท้องถิ่นของเซิร์ฟเวอร์ PC ของคุณ (เช่น 192.168.1.105) บน Windows ให้รัน ipconfig ใน Command Prompt และมองหา "IPv4 Address" บน Linux/macOS ให้รัน ip a หรือ ifconfig ครับ
  • ที่อยู่แผงควบคุมผู้ดูแลระบบของเราเตอร์ของคุณ โดยปกติ 192.168.1.1 หรือ 192.168.0.1 มันพิมพ์อยู่บนฉลากของเราเตอร์หรือมองเห็นได้ในบรรทัด "Default Gateway" ของ ipconfig ครับ
  • ชื่อผู้ใช้และรหัสผ่านผู้ดูแลระบบของเราเตอร์ของคุณ ค่าเริ่มต้นมักเป็น "admin/admin" หรือ "admin/password" เว้นแต่คุณเปลี่ยนแปลง
  • พอร์ตที่คุณต้องการ forward Java Edition: 25565 TCP Bedrock Edition: 19132 UDP
สำคัญ: เซิร์ฟเวอร์ PC ของคุณต้องมี static local IP address ก่อนที่คุณจะสร้างกฎการ forward หากที่อยู่ IP เปลี่ยนแปลง (ซึ่ง DHCP อาจทำให้เกิดขึ้น) กฎจะหยุดทำงาน ดูที่ ส่วน static IP ด้านล่าง เพื่อดูวิธีแก้ไข

คำแนะนำการตั้งค่าทีละขั้นตอน

ขั้นตอนที่ 1: เข้าสู่ระบบเราเตอร์ของคุณ

  1. เปิดเบราว์เซอร์บนอุปกรณ์ใด ๆ ที่เชื่อมต่อกับเครือข่ายบ้านของคุณ
  2. พิมพ์ที่อยู่ gateway ของเราเตอร์ของคุณลงในแถบที่อยู่ (เช่น 192.168.1.1 )
  3. ป้อนข้อมูลประจำตัวผู้ดูแลระบบของคุณเมื่อได้รับพร้อมท์

ขั้นตอนที่ 2: ค้นหาส่วน Port Forwarding

ทุกแบรนด์เราเตอร์มีป้ายกำกับแตกต่างกัน มองหาชื่อเมนูเหล่านี้:

  • Asus: WAN > Virtual Server / Port Forwarding
  • Netgear: Dynamic DNS / Port Forwarding / Port Triggering (ภายใต้ Advanced)
  • TP-Link: Advanced > NAT Forwarding > Virtual Servers
  • Linksys: Security > Apps and Gaming > Single Port Forwarding
  • Xfinity/Comcast gateways: Advanced > Port Forwarding
  • Spectrum/Netgear C7000: Advanced Setup > Port Forwarding / Port Triggering

หากคุณหาไม่เจอ ให้ค้นหา " รุ่นเราเตอร์ของคุณ + port forwarding" บน portforward.com ซึ่งมีภาพหน้าจอทีละขั้นตอนสำหรับรุ่นเราเตอร์หลายร้อยรุ่น

ขั้นตอนที่ 3: สร้างกฎการ Forward

กรอกข้อมูลดังนี้ ป้ายกำกับที่แน่นอนจะแตกต่างกันไปตามเราเตอร์ แต่ค่าจะเหมือนกัน

ฟิลด์ ค่าสำหรับ Java Edition ค่าสำหรับ Bedrock Edition
ชื่อบริการ / คำอธิบาย Minecraft Minecraft Bedrock
Protocol TCP UDP
External Port (Start) 25565 19132
External Port (End) 25565 19132
Internal IP / Local IP ที่อยู่ IP ท้องถิ่นของเซิร์ฟเวอร์ PC ของคุณ ที่อยู่ IP ท้องถิ่นของเซิร์ฟเวอร์ PC ของคุณ
Internal Port 25565 19132
  1. บันทึกหรือใช้งานกฎ
  2. รีบูตเราเตอร์หากอินเทอร์เฟซแจ้งให้คุณทราบ (ไม่จำเป็นเสมอไป)

ขั้นตอนที่ 4: อนุญาตพอร์ตผ่าน Windows Firewall (หากใช้ได้)

เราเตอร์ของคุณกำลังส่งต่อการรับส่งข้อมูล แต่ Windows Firewall อาจยังคงบล็อกมันในเครื่อง เพื่อเปิดพอร์นบน Windows:

  1. เปิด Windows Defender Firewall with Advanced Security (ค้นหาในแถบ Start)
  2. คลิก Inbound Rules จากนั้น New Rule ครับ
  3. เลือก Port คลิก Next
  4. เลือก TCP ป้อน 25565 คลิก Next
  5. เลือก Allow the connection คลิก Next ผ่านหน้าจออื่น ๆ ที่เหลือ
  6. ตั้งชื่อกฎว่า "Minecraft Server" และเสร็จสิ้น

บน Linux หากคุณกำลังรัน ufw :

sudo ufw allow 25565/tcp
sudo ufw reload

Java กับ Bedrock: ความแตกต่างของพอร์ต

สองรุ่นใช้พอร์ตและ protocol ที่แตกต่างกันอย่างสิ้นเชิง การสับสนระหว่างสองรุ่นเป็นหนึ่งในเหตุผลที่พบได้บ่อยที่สุดว่า port forwarding ดูเหมือน "ไม่ทำงาน"

  • Java Edition: พอร์ต 25565 protocol TCP นี่คือสิ่งที่ผู้เล่น PC ในเวอร์ชัน Java ใช้
  • Bedrock Edition: พอร์ต 19132 protocol UDP นี่ครอบคลุมผู้เล่น Windows 10/11 Xbox PlayStation Switch iOS และ Android ที่เชื่อมต่อกับ Bedrock Dedicated Server (BDS)
  • การรันทั้งสองรุ่น: คุณต้องมีกฎการ forward แยกกันสองกฎ หนึ่งสำหรับแต่ละชุดพอร์ต/protocol

คุณสามารถเปลี่ยนพอร์ตที่ Minecraft Java ใช้ได้โดยแก้ไข server.properties ไฟล์และเปลี่ยน server-port ค่า หากคุณทำเช่นนั้น ให้ forward พอร์ตใด ๆ ที่คุณตั้งไว้แทน 25565 และบอกเพื่อนให้เชื่อมต่อโดยใช้ yourip:customport ครับ

วิธีตรวจสอบว่าพอร์ตของคุณเปิดจริง ๆ

หลังจากตั้งค่ากฎการ forward คุณต้องยืนยันว่าพอร์ตสามารถเข้าถึงได้จากอินเทอร์เน็ตภายนอก ไม่ใช่แค่จากเครือข่ายของคุณเอง การทดสอบจากภายในเครือข่ายของคุณจะประสบความสำเร็จเสมอ เพราะการรับส่งข้อมูลไม่ออกจากเราเตอร์ของคุณ

ใช้เครื่องมือตรวจสอบพอร์ตภายนอกเพื่อทดสอบจากมุมมองของอินเทอร์เน็ต ป้อนที่อยู่ IP สาธารณะของคุณ (ค้นหาได้โดยค้นหา "what is my IP" ใน Google) และพอร์ต 25565 จากนั้นเรียกใช้การตรวจสอบ ผลลัพธ์ของ OPEN หมายความว่ากฎการ forward ของคุณทำงาน และเพื่อนสามารถเชื่อมต่อได้ ผลลัพธ์ของ CLOSED หรือ TIMEOUT หมายความว่ามีบางสิ่งที่ยังบล็อกการเชื่อมต่อ

เคล็ดลับ: ตรวจสอบให้แน่ใจว่าซอฟต์แวร์เซิร์ฟเวอร์ Minecraft ของคุณกำลังทำงานอยู่เมื่อคุณทดสอบพอร์ต กระบวนการเซิร์ฟเวอร์ที่ปิดจะทำให้พอร์ตแสดงว่าปิดแม้ว่ากฎการ forward ของคุณถูกต้อง เพราะไม่มีสิ่งใดฟังพอร์ตนั้นเพื่อยอมรับการเชื่อมต่อ

แก้ไขปัญหาทั่วไป

พอร์ตยังคงแสดงว่าปิดหลังจากการ Forward

  • เซิร์ฟเวอร์ไม่ได้ทำงาน กระบวนการเซิร์ฟเวอร์ Minecraft ต้องใช้งานอยู่เพื่อให้พอร์ตปรากฏเปิด เริ่มต้นก่อน จากนั้นทดสอบ
  • IP ท้องถิ่นผิดในกฎ ตรวจสอบ IP ปัจจุบันของเซิร์ฟเวอร์ PC ของคุณด้วย ipconfig และเปรียบเทียบกับสิ่งที่คุณป้อนในกฎเราเตอร์
  • ISP ระดับบล็อก ISP บางแห่ง โดยเฉพาะแห่งที่ใช้ carrier-grade NAT (CGNAT) บล็อกการเชื่อมต่อที่เข้ามาทั้งหมด หากที่อยู่ IP สาธารณะของคุณเริ่มต้นด้วย 100.64 ถึง 100.127 คุณอาจอยู่เบื้องหลัง CGNAT ติดต่อ ISP ของคุณหรือพิจารณาใช้โซลูชัน VPN tunneling เช่น Cloudflare Tunnel เป็นทางเลือก
  • Double NAT หากคุณมี modem/router combo บวก router แยก คุณอาจมี NAT สองชั้น คุณต้องใส่อุปกรณ์แรกในโหมด bridge หรือ forward พอร์ตบนอุปกรณ์ทั้งสองเครื่อง
  • Firewall บนเซิร์ฟเวอร์ PC Windows Firewall หรือ antivirus ของบุคคลที่สามอาจบล็อกพอร์ตในเครื่อง ตรวจสอบกฎ inbound ที่คุณสร้างอีกครั้ง

เพื่อนสามารถเชื่อมต่อได้แต่ยังคงหมดเวลา

  • ความเร็วการอัปโหลดอินเทอร์เน็ตของคุณอาจต่ำเกินไป เซิร์ฟเวอร์ Minecraft Java ต้องการประมาณ 0.5 Mbps ของการอัปโหลดต่อผู้เล่นที่ใช้งานอยู่
  • เซิร์ฟเวอร์ PC อาจใช้ RAM หมด JAR เซิร์ฟเวอร์ Minecraft เริ่มต้นจัดสรร 1 GB เปิดโดยใช้หน่วยความจำมากขึ้น: java -Xmx4G -Xms1G -jar server.jar nogui

คุณไม่สามารถเชื่อมต่อโดยใช้ IP สาธารณะของคุณเอง

เป็นเรื่องปกติ เราเตอร์หลายตัวไม่สนับสนุน "NAT loopback" (เรียกอีกอย่างว่า hairpin NAT) ซึ่งหมายความว่าอุปกรณ์บนเครือข่ายของคุณเองไม่สามารถเข้าถึงเซิร์ฟเวอร์ของคุณโดยใช้ IP สาธารณะได้ เชื่อมต่อโดยใช้ IP ท้องถิ่นของเซิร์ฟเวอร์ PC ของคุณ (เช่น 192.168.1.105 ) เมื่อเล่นจากเครือข่ายเดียวกัน เพื่อนนอกเครือข่ายของคุณใช้ IP สาธารณะ

ทำไมคุณต้องใช้ Static Local IP

โดยค่าเริ่มต้น เราเตอร์ของคุณจัดสรรที่อยู่ IP ท้องถิ่นแบบไดนามิกผ่าน DHCP หมายความว่า IP ท้องถิ่นของเซิร์ฟเวอร์ PC ของคุณสามารถเปลี่ยนแปลงได้หลังจากรีบูต ซึ่งจะทำลายกฎการ forward ของคุณอย่างเงียบ ๆ คุณมีสองวิธีในการแก้ไข:

  1. DHCP reservation (แนะนำ): ในการตั้งค่า DHCP ของเราเตอร์ ค้นหาเซิร์ฟเวอร์ PC ของคุณโดยใช้ที่อยู่ MAC และกำหนด IP ถาวร เราเตอร์จะให้อุปกรณ์นั้นที่อยู่เดียวกันเสมอ นี่ไม่ต้องการการเปลี่ยนแปลงใด ๆ บน PC
  2. IP static ด้วยตนเองบน PC: ตั้งค่าที่อยู่ IP subnet mask default gateway และ DNS ด้วยตนเองในการตั้งค่า network adapter ของคุณ ใช้ที่อยู่นอกช่วง DHCP ของเราเตอร์เพื่อหลีกเลี่ยงความขัดแย้ง (เช่น หาก DHCP กำหนด .100 ถึง .200 ให้ใช้ .50)

ข้อควรพิจารณาด้านความปลอดภัย

การเปิดพอร์ตไปยังอินเทอร์เน็ตเป็นความเสี่ยงจริง ขั้นตอนเชิงปฏิบัติบางประการเพื่อลดความเสี่ยง:

  • ใช้ whitelist ใน server.properties ตั้ง white-list=true และเพิ่มเฉพาะผู้เล่นที่เชื่อถือได้ สิ่งนี้ป้องกันไม่ให้ผู้ใช้อินเทอร์เน็ตแบบสุ่มเข้าร่วมแม้ว่าพวกเขาจะค้นหา IP ของคุณ
  • ให้เซิร์ฟเวอร์ JAR อัปเดต Mojang ปล่อย security patches เป็นประจำ การรันเวอร์ชันเก่าจะเปิดให้คุณต่อการใช้ประโยชน์ที่ทราบ
  • อย่าเรียกใช้เซิร์ฟเวอร์เป็น administrator/root สร้างบัญชีผู้ใช้ low-privilege เฉพาะเจาะจงสำหรับกระบวนการเซิร์ฟเวอร์
  • พิจารณาพอร์ตที่ไม่ใช่มาตรฐาน การเปลี่ยนจาก 25565 เป็นสิ่งเช่น 34217 จะไม่หยุดผู้โจมตีที่มีความมุ่งมั่น แต่มันจะลดเสียงรบกวนจากการสแกนอัตโนมัติ
  • ปิดพอร์ตเมื่อไม่ใช้งาน หากคุณเล่นเฉพาะในวันสุดสัปดาห์ ให้ปิดใช้งานกฎการ forward ในระหว่างสัปดาห์
เครื่องมือตรวจสอบพอร์ตออนไลน์ยืนยันว่าพอร์ต Minecraft server 25565 เปิด

ยืนยันว่าพอร์ต Minecraft Server ของคุณเปิดจริง ๆ

หลังจากตั้งค่า port forwarding ของเซิร์ฟเวอร์ Minecraft ให้ใช้ตัวตรวจสอบพอร์ตเปิดฟรีของเราเพื่อตรวจสอบทันทีว่าพอร์ต 25565 (หรือพอร์ตที่กำหนดเองของคุณ) สามารถเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ ป้อนที่อยู่ IP สาธารณะและหมายเลขพอร์ตของคุณ และรับผลลัพธ์จริงในไม่กี่วินาที

ตรวจสอบพอร์ตของคุณตอนนี้ →

Minecraft Java Edition ใช้พอร์ต 25565 ผ่าน TCP ตามค่าเริ่มต้น Minecraft Bedrock Edition ใช้พอร์ต 19132 ผ่าน UDP คุณสามารถเปลี่ยนพอร์ต Java Edition โดยแก้ไข server-port ค่า ใน server.properties แต่ 25565 คือสิ่งที่ client ทั้งหมดคาดหวังเว้นแต่คุณจะบอกพวกเขาเป็นอย่างอื่น หากคุณเปลี่ยนมัน ผู้เล่นต้องต่อท้ายพอร์ตที่กำหนดเองกับ IP ของคุณเมื่อเชื่อมต่อ เช่น yourip:34217 ครับ

วิธีที่ง่ายที่สุดคือค้นหา "what is my IP" ใน Google ผลลัพธ์ที่ด้านบนของหน้าแสดงที่อยู่ IP สาธารณะปัจจุบันของคุณ คุณยังสามารถเยี่ยมชมไซต์เช่น ipinfo.io ได้ โปรดทราบว่าการเชื่อมต่ออินเทอร์เน็ตที่บ้านส่วนใหญ่มี IP สาธารณะแบบไดนามิก ซึ่งหมายความว่ามันสามารถเปลี่ยนแปลงได้เมื่อเราเตอร์ของคุณรีบูตหรือหลังจากช่วงเวลาหนึ่ง หากสิ่งนี้เกิดขึ้นบ่อยครั้ง ให้ค้นหาบริการ dynamic DNS ฟรีเช่น DuckDNS เพื่อให้ได้ชื่อโฮสต์ที่เสถียรซึ่งชี้ไปยัง IP ปัจจุบันของคุณเสมอ

นี่เกือบจะหมายถึงกฎการ forward ที่หายไปหรือชี้ไปยัง IP ท้องถิ่นที่ผิด เมื่อคุณเชื่อมต่อจากเครือข่ายเดียวกัน การรับส่งข้อมูลจะไม่ออกจากเราเตอร์ ดังนั้นกฎการ forward จึงไม่เกี่ยวข้อง เพื่อนของคุณเชื่อมต่อจากภายนอก ดังนั้นกฎต้องถูกต้องและใช้งานอยู่ ตรวจสอบอีกครั้งว่า IP ท้องถิ่นในกฎตรงกับ IP ปัจจุบันของเซิร์ฟเวอร์ PC ของคุณ และตรวจสอบว่าพอร์ตเปิดโดยใช้ตัวตรวจสอบพอร์ตภายนอกขณะที่เซิร์ฟเวอร์กำลังทำงาน

ไม่ บริการ Minecraft hosting ที่เสียเงิน (เช่น Apex Hosting Bisect Hosting หรือคล้ายกัน) รันเซิร์ฟเวอร์บนฮาร์ดแวร์ของตนเองด้วย IP สาธารณะและพอร์ตเปิดที่กำหนดค่าแล้ว คุณแค่ได้รับที่อยู่เซิร์ฟเวอร์และพอร์ตจากพวกเขาและแบ่งปันกับเพื่อน Port forwarding จำเป็นเฉพาะเมื่อคุณ self-host เซิร์ฟเวอร์บนเครื่องในบ้านของคุณ เบื้องหลังเราเตอร์ของคุณ

Carrier-grade NAT (CGNAT) หมายความว่า ISP ของคุณวาง customers หลายรายไว้เบื้องหลัง IP สาธารณะเดียว ดังนั้นคุณจึงไม่มี IP สาธารณะเฉพาะ Port forwarding ไม่ทำงานในสถานการณ์นี้เพราะการเชื่อมต่อที่เข้ามาไม่สามารถเข้าถึงคุณได้ เพื่อตรวจสอบว่าคุณอยู่เบื้องหลัง CGNAT ให้ดูว่า IP WAN ของเราเตอร์เริ่มต้นด้วย 100.64 ถึง 100.127 หรือไม่ โซลูชันรวมถึงการขอ ISP ของคุณสำหรับ IP สาธารณะเฉพาะ (บางครั้งฟรี บางครั้งมีค่าธรรมเนียมเล็กน้อย) หรือใช้บริการ tunnel เช่น Cloudflare Tunnel หรือ Playit.gg เพื่อข้าม NAT ทั้งหมด

มันมีความเสี่ยงบ้าง แต่สามารถจัดการได้ การเปิดพอร์ต 25565 หมายความว่าใครก็ตามที่พบ IP ของคุณสามารถพยายามเชื่อมต่อได้ การเปิดใช้งาน server whitelist เป็นการป้องกันที่มีประสิทธิภาพสูงสุดเพียงอย่างเดียว เนื่องจากมันบล็อกผู้เล่นที่ไม่รู้จักทั้งหมด ยังให้เซิร์ฟเวอร์ซอฟต์แวร์ของคุณอัปเดต เนื่องจาก Mojang แก้ไข security vulnerabilities ในเวอร์ชันใหม่ หลีกเลี่ยงการรันกระบวนการเซิร์ฟเวอร์ด้วยสิทธิ administrator หรือ root และพิจารณาปิดกฎการ forward เมื่อเซิร์ฟเวอร์ไม่ได้ใช้งาน