ใช้งานเซิร์ฟเวอร์สำหรับ Minetest


0

ฉันหวังว่านี่เป็นไซต์ stackexchange ที่ถูกต้องที่จะถามคำถามนี้

ฉันพยายามเรียกใช้เซิร์ฟเวอร์ minetest จากคอมพิวเตอร์ของฉัน (Linux) แต่ฉันไม่สามารถเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นที่เชื่อมต่อกับอินเทอร์เน็ตในเครือข่ายอื่น ฉันใช้เซิร์ฟเวอร์ minetest โดยใช้ minetestserver และให้ผลลัพธ์ต่อไปนี้:

2016-07-13 20:45:22: WARNING[Main]: Couldn't find a locale directory!
2016-07-13 20:45:22: [Main]: Automatically selecting world at [/root/.minetest/worlds/world]
2016-07-13 20:45:22: WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
2016-07-13 20:45:22: ACTION[Main]:         .__               __                   __   
2016-07-13 20:45:22: ACTION[Main]:   _____ |__| ____   _____/  |_  ____   _______/  |_ 
2016-07-13 20:45:22: ACTION[Main]:  /     \|  |/    \_/ __ \   __\/ __ \ /  ___/\   __\
2016-07-13 20:45:22: ACTION[Main]: |  Y Y  \  |   |  \  ___/|  | \  ___/ \___ \  |  |  
2016-07-13 20:45:22: ACTION[Main]: |__|_|  /__|___|  /\___  >__|  \___  >____  > |__|  
2016-07-13 20:45:22: ACTION[Main]:       \/        \/     \/          \/     \/        
2016-07-13 20:45:22: ACTION[Main]: World at [/root/.minetest/worlds/world]
2016-07-13 20:45:22: ACTION[Main]: Server for gameid="minetest" listening on 0.0.0.0:30000.

ซึ่งแน่นอนควรจะเป็นผลลัพธ์ถ้าทุกอย่างประสบความสำเร็จ

เมื่อเซิร์ฟเวอร์กำลังทำงาน

netstat -na | grep 30000

จะช่วยให้

udp        0      0 0.0.0.0:30000           0.0.0.0:*

ฉันยังกำหนดค่าเราเตอร์ของฉันสำหรับการส่งต่อพอร์ต ฉันพยายาม ping IP สาธารณะของฉันจากเครื่องอื่นที่เชื่อมต่อกับอินเทอร์เน็ต แต่มันไม่ทำงาน

ฉันพยายามใช้netcatเพื่อให้ได้ความคิด แต่ฉันก็ไม่ได้รับอะไรมากส่วนหนึ่งเพราะฉันไม่รู้จะทำอะไร ถึงกระนั้นฉันก็เริ่มฟังพอร์ต 30001 และส่งแพ็กเก็ตโดยใช้ netcat จากเครื่องเดียวกันโดยใช้ IP ท้องถิ่นของฉันในเครือข่าย (192.168.0.102) และทำงานได้ แต่เมื่อฉันใช้ IP สาธารณะของฉันและส่งแพ็คเก็ตจากเครื่องระยะไกลมันจะไม่แสดงอะไรเลย

เมื่อฉันทำการติดตามจากเครื่องอื่นสู่ IP สาธารณะของฉันมันไม่ถึงที่อยู่ของฉันจริงๆ แต่สิ้นสุดที่ที่อยู่อื่น เมื่อฉันทำ traceroute ไปยัง google.com หรือเว็บไซต์อื่น ๆ จากเครื่องเซิร์ฟเวอร์ของฉันฉันจะเห็นว่าคำขอทั้งหมดผ่าน IP จากเครือข่ายเดียวกัน ฉันไม่รู้จริงๆว่ามันหมายถึงอะไรหรือเปล่า

ฉันโพสต์คำถามนี้ในฟอรัม archคิดว่าอาจเป็นปัญหาที่เกี่ยวข้องกับระบบปฏิบัติการ แต่ฉันไม่ประสบความสำเร็จจริงๆ

แก้ไข:

เอาต์พุตหลังจากรันnmapจากตำแหน่งรีโมต:

> sudo nmap -sU -sS <public ip> -p 70-80
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-23 13:43 IST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.65 seconds

> sudo nmap -sU -Pn -sS <public ip> -p 70-80
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-23 13:43 IST
Nmap scan report for <public ip>
Host is up (0.12s latency).
PORT   STATE         SERVICE
70/tcp filtered      gopher
71/tcp filtered      netrjs-1
72/tcp filtered      netrjs-2
73/tcp filtered      netrjs-3
74/tcp filtered      netrjs-4
75/tcp filtered      priv-dial
76/tcp filtered      deos
77/tcp filtered      priv-rje
78/tcp filtered      unknown
79/tcp filtered      finger
80/tcp filtered      http
70/udp open|filtered gopher
71/udp open|filtered netrjs-1
72/udp open|filtered netrjs-2
73/udp open|filtered netrjs-3
74/udp open|filtered netrjs-4
75/udp open|filtered priv-dial
76/udp open|filtered deos
77/udp open|filtered priv-rje
78/udp open|filtered vettcp
79/udp open|filtered finger
80/udp open|filtered http
Nmap done: 1 IP address (1 host up) scanned in 8.15 seconds

sudo nmap -sU -Pn -sS <public ip> -p 29999-30005
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-23 13:50 IST
Nmap scan report for <public ip>
Host is up.
PORT      STATE         SERVICE
29999/tcp filtered      unknown
30000/tcp filtered      unknown
30001/tcp filtered      pago-services1
30002/tcp filtered      unknown
30003/tcp filtered      unknown
30004/tcp filtered      unknown
30005/tcp filtered      unknown
29999/udp open|filtered unknown
30000/udp open|filtered unknown
30001/udp open|filtered unknown
30002/udp open|filtered unknown
30003/udp open|filtered unknown
30004/udp open|filtered unknown
30005/udp open|filtered unknown

คำตอบ:


1

สถานะวิกิที่เล็กที่สุดซึ่งคุณต้องเปิดใช้งานการส่งต่อสำหรับทั้งแพ็คเก็ต UDP และ TCP นี่อาจเป็นปัญหาของคุณ ถ้ามันไม่ช่วยทำตาม:

  1. ก่อนทำการดีบักการเชื่อมต่อจากคอมพิวเตอร์เครื่องอื่นบนเครือข่ายท้องถิ่นของคุณ การเชื่อมต่อกับ IP ในเครื่องของคุณจากเครื่องเดียวกันไม่สามารถใช้งานได้ - การสื่อสารนี้จะถูกกำหนดเส้นทางโดยอัตโนมัติผ่านอุปกรณ์ลูปแบ็คและไม่เคยออกจากเครื่องของคุณ

  2. ตรวจสอบว่า IP สาธารณะของคุณสามารถเข้าถึงได้จากระยะไกลและไม่อนุญาตให้มีการเชื่อมต่อกับพอร์ต 30000 เราเตอร์หลายตัววางแพ็กเก็ต ICMP (ping) จากเครือข่ายภายนอกเป็นการวัด "ความปลอดภัย" เพื่อบล็อกการติดตาม ลองสแกนพอร์ต IP สาธารณะของคุณจากตำแหน่งระยะไกลด้วยเครื่องมือเช่น nmap สิ่งนี้ควรบอกคุณด้วยว่า ISP ของคุณบล็อกการเชื่อมต่อหรือไม่ ตัวอย่างสำหรับช่วงพอร์ต 70 ถึง 80:

    nmap -sU -sS 127.0.0.1 -p 70-80

หมายเหตุด้านข้าง: สิ่งนี้ถูกกล่าวถึงในฟอรัม Arch แล้ว - ไม่เรียกใช้เซิร์ฟเวอร์เกมที่เปิดเผยต่อสาธารณะในฐานะรูท มีหลายสิ่งเกินไปที่จะผิดพลาดได้ แม้ว่าจะเป็นเพียงการทดสอบ แต่ก็ยังเป็นความคิดที่แย่มาก พอร์ตที่มีหมายเลขด้านบน 1024 ไม่ต้องการการเข้าถึงที่มีสิทธิ์พิเศษคุณสามารถเข้าสู่ระบบด้วยบัญชีผู้ใช้ปกติและเรียกใช้กระบวนการเซิร์ฟเวอร์ แม้สำหรับพอร์ตที่มีสิทธิพิเศษที่คุณไม่จำเป็นต้องเป็นรากตรวจสอบนี้คำถาม

แก้ไข: ใช่ - ip ของคุณสามารถเข้าถึงได้อย่างชัดเจน แต่ไม่แสดงว่าเป็นการส่งต่อแพ็กเก็ตไปยังเครือข่ายท้องถิ่น (ในกรณีนั้นพอร์ต 30000 ควรแสดง OPEN สำหรับ TCP แม้ว่าจะไม่มีอุปกรณ์ใด ๆ รออยู่ในเครือข่ายท้องถิ่น) มันอาจถูกบล็อคโดย ISP มันอาจเกิดจากเราเตอร์ที่ไม่ได้ทำในสิ่งที่ควรจะเป็น ฉันไม่คิดว่าฉันสามารถช่วยคุณได้มากกว่านี้กับข้อมูลนี้ - คุณควรทดสอบสิ่งเหล่านี้:

  1. เชื่อมต่อกับเซิร์ฟเวอร์ minetest จากเครื่องอื่นในเครือข่ายท้องถิ่นหรือจำลองสิ่งนี้ด้วย Virtual Box และ bridged adapter

  2. ทดสอบว่าการส่งต่อเราเตอร์ทำงานกับสิ่งที่ง่ายต่อการตรวจสอบตัวอย่างเช่น: TCP พอร์ต 80 การส่งต่อไปยัง apache ตามที่ Morn แนะนำในฟอรัมโค้ง


ฉันเปิดใช้งานการส่งต่อสำหรับทั้งแพ็คเก็ต UDP และ TCP ฉันไม่สามารถเข้าถึงคอมพิวเตอร์เครื่องอื่นบนเครือข่ายท้องถิ่นดังนั้นฉันจะไม่สามารถทำเช่นนั้นได้ ฉันจะลองอันที่สอง และขอขอบคุณสำหรับข้อความด้านข้าง; ฉันจะต้องระมัดระวังในอนาคตเสมอ
Nijraj Gelani

ฉันได้เพิ่มเอาท์พุท nmap ในคำถาม ดูเหมือนว่าโฮสต์สามารถเข้าถึงได้หรือไม่ ฉันไม่แน่ใจว่าจะทำอย่างไร
Nijraj Gelani

อัปเดตคำตอบแจ้งให้เราทราบว่าคุณจะจัดการ
Marek Rost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.