Хэн нэгэн порт шалгалт ажиллуулж, нээлттэй гэх үгийг хараад серверийг шийдэгдсэн гэж үзнэ. Энэ үр дүнгийн бодит утга нь нарийн: шалгагчийн байрлалаас, тэр мөчид, тэр хаяг болон порт руу TCP холболт хүлээн авсан. Энэ нь Minecraft протоколын гар барилт, бүртгэлийн баталгаажуулалт, эсвэл сервер тоглогчийг ертөнцөд оруулсан эсэх тухай юу ч хэлэхгүй.

Эдгээр нь дөрвөн өөр давхарга бөгөөд аль нэгэнд нь алдаа гарвал тоглогчоос ижил өгүүлбэр гарна: ажилласангүй.

Мэдрэгч зөвхөн харж чадах зүйлээ шалгана

TCP холболт хоёр тал гурван чиглэлийн гар барилтыг дуусгахад бүрддэг бөгөөд энэ нь тоглоомын мэддэг бүхнээс доогуур байдаг. Мэдрэгч сонсогч байсан бөгөөд өөрийн сүлжээний байрлалаас хариулсан гэж мэдээлнэ. Сонсогч нь тоглоом өөрөө гэж хэлж чадахгүй, учир нь ямар ч процесс порт эзэлж, холболт хүлээн авч болно.

Байршил үр дүнгийн адил чухал. Олон нийтийн интернет дэх шалгагч нэг сүлжээнээс нэг замыг шалгана. Оператор нэг сүлжээний дотроос ажиллуулдаг шалгагч огт өөр замыг шалгадаг бөгөөд тэндхийн эерэг үр дүн алслагдсан тоглогчийн мэдрэх зүйлийн талаар бараг юу ч хэлэхгүй. Хоёр өөр үйлчилгээ үзүүлэгчийн хоёр өөр шалгагч ч таны сервертэй ямар ч холбоогүй шалтгаанаар санал нийлэхгүй байж болно.

Цаг хугацаа ч чухал. Мэдрэгчийн үр дүн ажилласан мөчийг тодорхойлдог бөгөөд динамик хаягтай эсвэл өөрчлөгдсөн дамжуулах дүрэмтэй гэрийн холболт бодит хариултыг хэдэн минутын дараа зөөж болно. Олон нийтийн хаяг, порт, хаягийн бүлэг, цагийг шийдвэртэй хамт бичээрэй, эс бөгөөс ажиглалтыг давтах боломжгүй. Шалгалтыг нэг холболтын утаснаас биш, үнэхээр өөр сүлжээнээс давтаарай.

Сокет ба тоглогчийн хоорондох дөрвөн давхарга

Нэгдэж буй клиент бодитоор гүйцэтгэдэг дарааллыг төсөөлөөрэй. Эхлээд хаягийг шийдэж, дараа нь нийтэлсэн порт руу TCP холболт нээж, дараа нь хэлэлцээр, баталгаажуулалтын төлөө тоглоомын өөрийн протоколоор ярьж, эцэст нь сервер тэр таних тэмдэгийг ертөнцөд оруулах эсэхийг шийднэ. Давхарга бүр өөрийн алдааны гарын үсэгтэй бөгөөд зөвхөн эхнийх нь порт шалгагчид харагдана.

Java Edition-ийн өгөгдмөл порт нь 25565 боловч оператор өөр гадаад порт нийтэлж, түүнийг дотогш дамжуулж болох тул тоглогчийн бичсэн тоо серверийн харж буй тоо байх албагүй. Буруу гадаад порт руу чиглэсэн шалгагч сервер бүрэн эрүүл байхад хаалттай гэж мэдээлдэг бөгөөд энэ нь энэ салбарын хамгийн түгээмэл хуурамч дохиолол юм.

Нэрс портын дээр дахин нэг алхам нэмнэ. Хэрэв тоглогч хост нэр бичвэл шийдэл нь нийтэлсэн хаягийг буцаах ёстой бөгөөд сүлжээний доторх машинд оронд нь хувийн хаяг буцааж болно. Энэ нь галт хананы алдаа биш бөгөөд порт дамжуулалтын ямар ч хэмжээ үүнийг өөрчлөхгүй.

Яагаад доторх тоглогч өөр зам сонгодог

Ижил LAN дээр эсвэл тэр LAN-д хүрдэг VPN дээр байгаа тоглогч дотроос олон нийтийн хаяг руу хүрэхийг оролдоно. Хүсэлт маршрутизаторын гадаад хаяг руу явж, маршрутизатор түүнийг буцааж дотогш орчуулах ёстой бөгөөд үүнийг ихэвчлэн hairpinning эсвэл NAT тусгал гэж нэрлэдэг. Энэ ажиллахын тулд урагшлах орчуулга болон буцах зам хоёулаа таарах ёстой бөгөөд олон гэрийн маршрутизатор үүнийг огт хэрэгжүүлдэггүй.

Тиймээс гаднаас ирсэн зочин нэгддэг бол серверийн хажууд сууж буй хүн нэгдэж чадахгүй. Гадаад зам үнэхээр хэвийн; бүтэлгүйтдэг нь дотоод тойрог зам бөгөөд тоглогчийн дэлгэцнээс серверийн асуудал мэт харагдахаар бүтэлгүйтдэг. Аль нь болсныг серверийн өөрийн лог шийднэ, учир нь хэзээ ч орчуулагдаагүй холболт түүнд хэзээ ч хүрдэггүй.

Хоёр шударга засвар, нэг муу зуршил бий. Сайн сонголтууд нь дотоод тоглогчдод хувийн хаяг эсвэл split-DNS нэрийг ашиглахыг зөвшөөрөх бөгөөд энэ нь дотроо хувийн хаяг руу шийдэгддэг, эсвэл боломж байгаа бөгөөд зөв ажиллаж байвал маршрутизатор дээр тусгалыг идэвхжүүлэх юм. Муу зуршил нь илүү олон порт нээх эсвэл хостын галт ханыг унтраах бөгөөд энэ нь маршрутизаторын хэзээ ч хийгээгүй орчуулгад нөлөөлж чадахгүй.

Netgate-ийн NAT тусгалын баримт бичиг гадаад ба дотоодын ялгаа болон split-DNS хувилбарыг илүү дэлгэрэнгүй тайлбарладаг. Үүнийг механизмын тайлбар гэж уншина уу, ямар нэг тодорхой VPN үйлчилгээ үзүүлэгч эсвэл маршрутизатор loopback-ийн бүх хувилбарыг дэмждэг гэсэн амлалт гэж биш.

Өнцөг бүрээс нотолгоо цуглуулаарай

Туршилт бүрт хэн ажиллуулсан, хаанаас, хэдэн цагт, ямар хаяг, порт руу, сервер юу бүртгэснийг бичээрэй. Серверийн консол дээр тодорхой шалтгаантай тоглоомын татгалзал нь хэзээ ч ирээгүй холболтоос өөр дүгнэлт бөгөөд хоёр нь эсрэг чиглэлд хөтөлдөг.

Хэрэв зөвшөөрөгдсөн алслагдсан тоглогчид нэгдэж, нэг орон нутгийн тоглогч нэгдэж чадахгүй бол үлдсэн асуулт нь орон нутгийн зам бөгөөд тэрээр өөрийн мөрдөн шалгалтыг хүртэх ёстой: клиент ямар хаяг ашигласан, маршрутизатор орчуулгад юу хийсэн, сервер ямар нэг холболтын оролдлогыг бүртгэсэн эсэх. Портыг санамсаргүйгээр дахин нээхийн оронд эдгээр гурван баримтыг сүлжээний эзэнд өгөөрэй.

Холбоотой нийтлэлүүд