უმეტეს თამაშს ერთზე მეტი პორტი სჭირდება და მეორეზე თითქმის არავინ ფიქრობს - სანამ სერვერი შესანიშნავად მუშაობს, მაგრამ არავის სერვერების სიაში არ ჩანს. გეიმ სერვერი, როგორც წესი, ხსნის თამაშის პორტს, რომელსაც მოთამაშეები უკავშირდებიან, query პორტს, რომელსაც სერვერების ბრაუზერი სახელისა და მოთამაშეების რაოდენობის გასაგებად ეკითხება, და ზოგჯერ მესამეს დისტანციური ადმინისტრირებისთვის. ესენი ცალ-ცალკე ნომრებია, ხშირად სხვადასხვა პროტოკოლზე, და თითოეული თავისებურად ფუჭდება. ეს პოსტი ჩამოგითვლის იმ თამაშების რეალურ ნომრებს, რომლებსაც ხალხი ნამდვილად ჰოსტავს, განგიმარტავს, რომელი უნდა იყოს ღია, და გაჩვენებს ბრძანებებს, რომლებითაც ამას გარედან დაამტკიცებ.
პორტის სამი სახეობა#
თითქმის ყველა dedicated სერვერი, რომელსაც ოდესმე გაუშვებ, სამი კატეგორიის პორტს იყენებს და კარგია, თავში ისინი ერთმანეთისგან განასხვავო.
- თამაშის პორტი. ის, რასაც კლიენტი უკავშირდება, როცა მოთამაშე მისამართს კრეფს. ის ყოველთვის გამოყოფილია, ყოველთვის გამოქვეყნებულია და თუ დახურულია, ვერავინ შემოვა. სწორედ ეს ნომერია connection string-ში ან SRV ჩანაწერში.
- Query პორტი. ის, რასაც სერვერების ბრაუზერები, სიების საიტები და მონიტორინგის ბოტები ეკითხებიან სახელს, რუკას, მოთამაშეების რაოდენობასა და სლოტებს. ის პატარა კითხვას პატარა პასუხით პასუხობს და თამაშთან არაფერი აქვს საერთო. თუ ის დახურულია, შენი სერვერი შესანიშნავად მუშაობს და უხილავია.
- ადმინისტრაციული პორტები. RCON, SourceTV ან GOTV, ვებ ადმინ პანელი, telnet კონსოლი, REST API. თითოეული მათგანი არასავალდებულოა, თითოეული შენს სერვერში შესასვლელი გზაა და არცერთი არ უნდა იყოს ყველასთვის ღია საფუძვლიანი მიზეზის გარეშე.
query პორტის არსებობის მიზეზი ისაა, რომ თამაშის პროტოკოლი დატვირთულია. ორი ათასი სერვერის სია ვერ იტვირთავს თითოეულთან რეალური თამაშის სესიის გახსნას მხოლოდ იმისთვის, რომ მოთამაშეების რაოდენობა წაიკითხოს. ამიტომ სერვერი ასევე ლაპარაკობს იაფ, მდგომარეობის გარეშე გვერდით პროტოკოლზე - Steam-ის A2S query პროტოკოლი Source და Steam-ში ჩამოთვლილი თამაშების უმეტესობისთვის, Minecraft-ის საკუთარი query და server-list-ping, FiveM-ისთვის თამაშის საკუთარი HTTP endpoint. ერთი UDP პაკეტი შედის, ერთი გამოდის, handshake-ის გარეშე.
ზოგჯერ ორივე ერთსა და იმავე ნომერზეა. Counter-Strike 2, Team Fortress 2 და Garry's Mod თამაშის ტრაფიკსაც და A2S query-საც 27015/udp-ზე პასუხობენ, ამიტომ ამ თამაშებს უხილავი სერვერის პრობლემა ასე იშვიათად აქვთ. ზოგჯერ ისინი მეზობელი ნომრებია: Valheim იყენებს 2456 და 2457-ს და query პორტი ყოველთვის თამაშის პორტს პლუს ერთია. ზოგჯერ ეს ურთიერთდაკავშირებული არ არის და სხვადასხვა დიაპაზონშია: Palworld თამაშს 8211/udp-ზე უშვებს, query-ს კი 27015/udp-ზე. და ზოგჯერ ისინი შენი მოლოდინის საპირისპიროა - Unturned-ის Port პარამეტრი query პორტია, ხოლო თამაში Port + 1-ზე მუშაობს.
პორტები თამაშების მიხედვით#
ესენი ნაგულისხმევი მნიშვნელობებია. თითქმის ყველა მათგანის შეცვლა შეიძლება, ხოლო პანელში გამოყოფილი ნომერი სერვერის გვერდზე ჩანს - connection string-ის წერისას ის იქიდან აიღე და არა ამ ცხრილიდან.
| თამაში | თამაშის პორტი | Query პორტი | სხვა |
|---|---|---|---|
| Minecraft (Java) | 25565 TCP | 25565 UDP (არასავალდებულო) | 25575 TCP RCON |
| Minecraft (Bedrock / Geyser) | 19132 UDP | იგივე პორტი | - |
| Counter-Strike 2 | 27015 UDP | 27015 UDP | 27015 TCP RCON, 27020 UDP GOTV |
| Counter-Strike 1.6 | 27015 UDP | 27015 UDP | RCON UDP-ზე 27015-ზე, 27020 HLTV |
| Team Fortress 2 | 27015 UDP | 27015 UDP | 27015 TCP RCON, 27020 UDP SourceTV |
| Garry's Mod | 27015 UDP | 27015 UDP | 27015 TCP RCON, 27020 UDP SourceTV |
| Left 4 Dead 2 | 27015 UDP | 27015 UDP | 27015 TCP RCON |
| Valheim | 2456 UDP | 2457 UDP | - |
| Palworld | 8211 UDP | 27015 UDP | 25575 TCP RCON, 8212 TCP REST |
| Project Zomboid | 16261 UDP | 16261 UDP | 16262 UDP მეორე არხი, 27015 TCP RCON |
| 7 Days to Die | 26900 TCP და UDP | 26900 | 26901-26902 UDP, 8081 telnet, 8080 web |
| Rust | 28015 UDP | 28015 UDP | 28016 TCP RCON, 28082 TCP Rust+ |
| ARK: Survival Ascended | 7777 UDP | 27015 UDP | 27020 TCP RCON |
| Satisfactory | 7777 UDP | 7777 TCP API | - |
| Terraria | 7777 TCP | 7777 TCP | - |
| Factorio | 34197 UDP | 34197 UDP | RCON შენთვის სასურველ პორტზე |
| Unturned | 27016 UDP (Port + 1) | 27015 UDP (Port) | - |
| FiveM | 30120 UDP | 30120 TCP HTTP | 40120 TCP txAdmin |
| Arma 3 | 2302 UDP | 2303 UDP | 2304 Steam master, 2306 BattlEye |
| DayZ | 2302 UDP | 2305 UDP | 2303-2304 დარეზერვებულია თამაშის პორტის გვერდით |
| Don't Starve Together | 10999 UDP master | - | 10998 მღვიმეები, 27018-27019, 8768-8769 |
| Insurgency: Sandstorm | 27102 UDP | 27131 UDP | - |
| Killing Floor 2 | 7777 UDP | 27015 UDP | 20560 UDP Steam, 8080 TCP web admin |
| SCP: Secret Laboratory | 7777 UDP | 7777 UDP | - |
| The Isle (Evrima) | 7777 UDP | 27015 UDP | 8888 TCP RCON, 10000 TCP join queue |
| Sons of the Forest | 8766 UDP | 27016 UDP | 9700 UDP BlobSync |
| The Forest | 27015 UDP | 27016 UDP | 8766 UDP Steam |
| Squad | 7787-7788 UDP | 27165-27166 UDP | 15000 UDP beacon, 21114 TCP RCON |
| Abiotic Factor | 7777 UDP | 27015 UDP | - |
| RimWorld (multiplayer mod) | 25555 TCP | - | - |
| BeamMP | 30814 TCP და UDP | 30814 TCP | - |
| Euro Truck Simulator 2 | 27015 UDP | 27016 UDP | - |
| Assetto Corsa | 9600 TCP და UDP | 8081 TCP HTTP | - |
ამ ცხრილში ორი კანონზომიერება სახელდების ღირსია. პირველი, 27015-27020 ბლოკი Steam-ს ეკუთვნის და ბევრი თამაში მას query-სთვის იყენებს, თამაშის პორტი რაც უნდა იყოს - სწორედ ამიტომ ერთ მანქანაზე ორი Steam თამაშის გაშვება ნიშნავს, რომ ერთი მათგანი უნდა გადაიტანო. მეორე, გასაკვირად ბევრ survival თამაშს ერთი ნომრის ნაცვლად პატარა უწყვეტი ბლოკი უნდა, რადგან ძრავა იმ პორტს იკავებს, რომელიც მას მიეცი, პლუს ერთს ან ორს ზემოთ. Arma 3 და DayZ ხუთს ინახავენ; 7 Days to Die-ს სამი უნდა; Squad-ს - ორი წყვილი. გეგმა, რომელიც ერთ პორტს გამოყოფს, ამ თამაშებს ვერ გაუშვებს, სწორედ ამიტომ არის პორტების რაოდენობა თითოეული გეგმის გვერდზე და არა სპეციფიკაციის ფურცელში დამარხული.
ცხრილში არმყოფი თამაშები საიდუმლო არ არის, უბრალოდ ნაკლებად გავრცელებულია. სერვერი ლოგის პირველ ოცი ხაზში წერს, რაზე დაუკავშირდა, და ეს ხაზი უფრო ავტორიტეტულია, ვიდრე ნებისმიერი დოკუმენტაცია, ამ პოსტის ჩათვლით.
TCP, UDP და firewall-ის წესი, რომელიც არაფერს აკეთებს#
ყველაზე გავრცელებული firewall-ის შეცდომა სწორი ნომრის არასწორ პროტოკოლზე გახსნაა. ის იძლევა სერვერს, რომელიც მუშაობს, უსმენს, სწორადაა გამართული და სრულიად მიუწვდომელია, ხოლო შეცდომა, რომელსაც მოთამაშე ხედავს, ზოგადი timeout-ია.
უმეტესი თამაში გეიმფლეისთვის UDP-ს იყენებს. თამაშს განმეორებითი გაგზავნა არ უნდა: 200 ms-ის წინანდელი პოზიციის განახლება უსარგებლოა და TCP დაჟინებით მას უფრო ადრე მიაწოდებდა, ვიდრე ახალს. ამიტომ თამაშები აგზავნიან datagram-ებს "გაგზავნე და დაივიწყე" პრინციპით და რიგითობასა და დანაკარგს თავად უმკლავდებიან. Minecraft Java ცნობილი გამონაკლისია - ის TCP-ია, რადგან ეს ცვლა-ცვლით პროტოკოლია, სადაც ყოველი პაკეტი მნიშვნელოვანია. Terraria TCP-ა. RimWorld-ის multiplayer mod TCP-ა. ზემოთ ცხრილში ყველაფერი დანარჩენი UDP-ა იმ ნაწილისთვის, რომელიც მოთამაშეებს ატარებს, და query პროტოკოლებიც თითქმის უცვლელად UDP-ა.
პრაქტიკული შედეგები:
- წესი, რომელიც Valheim-ისთვის
tcp/2456-ს უშვებს, საერთოდ არაფერს აკეთებს. Valheim-ის ორივე პორტი UDP-ა. udp/25565-ის წესი Minecraft Java-ზე უშვებს query პროტოკოლს და არა თამაშს. მოთამაშეები მაინც ვერ შემოდიან.- ზოგ თამაშს ორივე უნდა ერთსა და იმავე ნომერზე. BeamMP იყენებს TCP-ს კავშირის დასამყარებლად და mod-ების გადასატანად და UDP-ს ტრანსპორტის მდგომარეობისთვის. Satisfactory იყენებს UDP-ს თამაშისთვის და TCP-ს მართვის API-სთვის ერთსა და იმავე
7777-ზე. გახსენი ორივე. - "ნებისმიერი პროტოკოლი" სახლის როუტერზე ჩვეულებრივ ნიშნავს TCP-ს და UDP-ს, მაგრამ არა ყოველთვის. შეამოწმე.
UDP-ის კავშირის გარეშე ბუნება ასევე ცვლის იმას, როგორ გამოიყურება "დახურული". დახურული TCP პორტი მაშინვე უარს ამბობს და სწრაფ, გასაგებ შეცდომას იღებ. დახურული ან გაფილტრული UDP პორტი, როგორც წესი, საერთოდ არაფერს იძლევა და კლიენტი უბრალოდ ელოდება, შემდეგ კი თავს ანებებს. სწორედ ამიტომ არის UDP-ის პრობლემების დიაგნოსტიკა უფრო ნელი და ბუნდოვანი, ვიდრე TCP-ის, და სწორედ ამიტომ აღწერს პორტების სკანერი UDP პორტებს როგორც open|filtered - პასუხის გარეშე ის სხვაობას ნამდვილად ვერ ხედავს. TCP და UDP გეიმ სერვერებისთვის უფრო დეტალურად განიხილავს, რას ნიშნავს ეს proxy-ებისა და ფილტრაციისთვის. თუ წესებს თავად წერ, firewall-ის წესები, რომლებიც მნიშვნელოვანია აღწერს default-deny მოდელს, რომელიც ყველაზე მცირე ზედაპირს ტოვებს.
რატომ არ ჩანს მომუშავე სერვერი ბრაუზერში#
სამი სრულიად განსხვავებული მიზეზი გარედან ერთნაირად გამოიყურება: შენი სერვერი მუშაობს, კონსოლი ჯანსაღია და არცერთი ბრაუზერი მას არ ჩამოთვლის.
Query პორტი მიუწვდომელია. ან ის არასოდეს გამოგიყოფია, ან firewall-ის წესი მხოლოდ თამაშის პორტს ფარავს, ან თამაში query-ს იმ პორტზე პასუხობს, რომელზეც არაფერი გადამისამართდება. დაადასტურე პირდაპირ IP-ით და პორტით დაკავშირებით. თუ პირდაპირი კავშირი მუშაობს და სია - არა, ნიშნავს, იპოვე.
თამაშს login token უნდა, რომელიც არ მიგიცია. Counter-Strike 2, Team Fortress 2, Garry's Mod, Unturned, Insurgency: Sandstorm და Euro Truck Simulator 2 ყველას უნდა Steam game-server login token - GSLT, უფასოდ Valve-ისგან, გაიცემა თითოეული სერვერისთვის ადამიანზე, რომელსაც თამაშის ლიცენზია აქვს. მის გარეშე ზოგი მათგანი ანონიმურად ეშვება შეზღუდული ჩამოთვლით, ზოგი კი საერთოდ არ ჩანს სიაში. ვერავინ შექმნის მას შენ მაგივრად: შემთხვევითი სტრიქონი, რომელიც ველის ვალიდატორს აკმაყოფილებს, Steam-ის მიერ უარყოფილია, რაც გასაგებ წარუმატებლობას აქცევს სერვერად, რომელიც იწყება და არავის უჩანს. იქ, სადაც თამაში token-ის გარეშე არ ეშვება, გონივრული ჰოსტი ინსტალაციას იჭერს, სანამ შენ მას არ მიაწვდი, იმის ნაცვლად, რომ გატეხილი სერვერი მოგცეს. Steam game server token-ები აღწერს მის შექმნას და იმას, რას ნიშნავს token-ზე დადებული ban.
თამაში სიაში ჩნდება საკუთარი სერვისით და არა Steam-ით. FiveM Cfx.re-ში რეგისტრირდება თავისი HTTP endpoint-ით 30120/tcp-ზე. Minecraft-ს ცენტრალური სია საერთოდ არ აქვს - multiplayer ეკრანი ამოწმებს იმ მისამართებს, რომლებიც შენმა მოთამაშეებმა აკრიფეს. BeamMP BeamMP-ის backend-ში რეგისტრირდება შენი auth key-ით. თითოეულ შემთხვევაში შესამოწმებელი გამავალი მისაწვდომობა და გასაღებია და არა შემომავალი query პორტი.
არსებობს მეოთხე, უფრო მოსაწყენი მიზეზიც, რომელსაც ხსენება ღირს, რადგან საათებს ჰკლავს: სია უბრალოდ ნელია. Valheim-ის community ბრაუზერს ახალი სერვერის ჩვენებას ათი წუთი შეიძლება დასჭირდეს და მისი თამაშშიდა ფილტრი სუსტია. სანამ შენს firewall-ს თავიდან ააწყობ, მოძებნე სერვერის სახელიდან უჩვეულო სიტყვა და დაიცადე ერთი ყავის დროით.
პორტის შემოწმება გარედან#
სერვერიდან შემოწმება არაფერს ამტკიცებს. loopback ინტერფეისი ყოველთვის ღიაა; შენ ამოწმებ ერთადერთ გზას, რომელსაც არცერთი მოთამაშე არასოდეს გაივლის. ქვემოთ ყველა ტესტი სხვა მანქანიდან გაეშვება, სასურველია სხვა ქსელიდან.
# TCP: does something accept a connection?$ nc -vz node.example.com 25565Connection to node.example.com 25565 port [tcp/*] succeeded!# UDP with a real Steam query, which is the only honest UDP test$ nmap -sU -p 27015 -sV --script=discovery node.example.com# What is the server actually listening on, run on the server$ ss -lntup | grep -E '2456|2457'Windows-ზე Test-NetConnection node.example.com -Port 25565 TCP-ის შემთხვევას PowerShell-ში აკეთებს. UDP-სთვის ასეთი ერთსტრიქონიანი ბრძანება არ არსებობს, რადგან სწორი UDP ტესტი ნიშნავს თამაშის საკუთარი პროტოკოლით ლაპარაკს და პასუხის დანახვას - სწორედ ამას აკეთებენ საჯარო სერვერის სტატუსის საიტები. Steam თამაშებისთვის A2S query checker-ები და Java სერვერებისთვის Minecraft-ის სტატუს საიტები UDP პორტზე ყველაზე სწრაფი პატიოსანი პასუხია.
ss -lntup ბრძანებაა, რომელიც კამათს წყვეტს. ის ჩამოთვლის, რა არის დაკავებული, რომელ პროტოკოლზე, რომელ მისამართზე და რომელი პროცესის მიერ. მის გამოტანაში ორი რამ არის მნიშვნელოვანი. თუ მისამართის სვეტში 0.0.0.0:27015-ის ან *:27015-ის ნაცვლად 127.0.0.1:27015 ჩანს, სერვერი მხოლოდ loopback-ზეა მიბმული და firewall-ის არცერთი ცვლილება არ დაგეხმარება - გაასწორე bind მისამართი თამაშის კონფიგურაციაში. და თუ პროცესი ის არ არის, რასაც ელოდი, ორი სერვერი ერთ პორტს ეჯიბრება, რასაც დამარცხებული სადმე ლოგში აცხადებს ("address already in use"), რომელიც ჯერ არ წაგიკითხავს.
პორტის შეცვლა ან დამატება#
პორტის შეცვლა ორი ცვლილებაა, რომლებიც ერთმანეთს უნდა ემთხვეოდეს, ხოლო როცა არ ემთხვევა, გამოდის სერვერი, რომელიც პორტს უსმენს, რომელსაც firewall არ უშვებს, ან firewall, რომელიც პორტს უშვებს, რომელსაც არავინ უსმენს.
- გამოყავი პორტი. პანელში ეს Network tab-ია; შენს საკუთარ მანქანაზე - firewall-ის წესი და, სახლში, port forward.
- დააყენე თამაშის საკუთარი პორტის ცვლადი იმავე ნომერზე. ის პანელის Startup tab-ზეა, ან სხვა შემთხვევაში კონფიგურაციის ფაილში ან გაშვების არგუმენტებში. ეს არის
-portValheim-ისთვის,server-portserver.properties-ში Minecraft-ისთვის,PortServerConfig.toml-ში BeamMP-ისთვის,-Port=რამდენიმე Unreal თამაშისთვის. - გადატვირთე და წაიკითხე კონსოლის პირველი ოცი ხაზი. სერვერი წერს, რაზე დაუკავშირდა. თუ ძველ ნომერს წერს, არასწორი ფაილი შეცვალე ან თამაშმა გამორთვისას შენი კონფიგურაცია გადაწერა - რამდენიმე მათგანი ამას აკეთებს.
- სანამ ვინმეს ეტყვი, გარედან შეამოწმე.
RE:NODE-ზე ყოველი გეგმა თავის გამოყოფილ პორტებს აცხადებს და პორტები Network tab-ზე ემატება და იშლება, query-სა და RCON-ის ჩათვლით. პანელის Startup tab თამაშის ცვლადებს შეიცავს, ამიტომ ცვლილების ორივე ნახევარი ორი tab-ის მანძილზეა, კონსოლი კი შედეგს მაშინვე აჩვენებს - თუ გაშვების გამოტანა არ იცნობ, კონსოლის წაკითხვა გადაათვალიერე. გეგმის შეცვლა სერვერს თავიდან არ აშენებს, ამიტომ მეტი პორტის მქონე დონეზე გადასვლა ინახავს სამყაროსა და უკვე არსებულ კონფიგურაციას.
თუ გირჩევნია მოთამაშეებს პორტის აკრეფა საერთოდ არ დასჭირდეთ, ეს DNS-ის საქმეა და არა ქსელის. მარტივი A ჩანაწერი მათ სახელს და იმავე პორტს აძლევს; SRV ჩანაწერს Minecraft Java-სთვის არასტანდარტული პორტის სრულად დამალვა შეუძლია. დომენის მიბმა გეიმ სერვერზე მარტივი ვერსიაა, SRV ჩანაწერები Minecraft-ისთვის კი ის, რომელიც ნომერს მალავს.
RCON და პორტები, რომლებიც ღია არ უნდა იყოს#
RCON დისტანციური კონსოლია: პაროლით ავტორიზდები და შემდეგ ბრძანებებს აგზავნი ისე, თითქოს სერვერთან იჯდე. ის მართლაც სასარგებლოა Discord bridge-ებისთვის, სტატუსის ბოტებისა და დაგეგმილი ამოცანებისთვის. ის ასევე, უმეტეს იმპლემენტაციაში, plaintext პროტოკოლია ერთი საერთო პაროლით და rate limiting-ის გარეშე, რაც ღია RCON პორტს სერვერის დაკარგვის ერთ-ერთ საუკეთესო გზად აქცევს.
რაც უნდა იცოდე მის ჩართვამდე:
- Source RCON TCP-ა თამაშის პორტის ნომერზე და ირთვება
-usercon-ითა დაrcon_password-ით. რადგან ის ნომერს UDP თამაშის ტრაფიკთან ინაწილებს, ხალხიtcp/27015-ს ხსნის და ვერ ხვდება, რომ კონსოლი გამოაჩინა. - GoldSrc - Counter-Strike 1.6 და მისი ნათესავები - RCON-ს UDP-ზე უშვებს თამაშის პორტზე, ამიტომ მისი გეიმფლეისისგან ცალკე firewall-ით დაცვა საერთოდ შეუძლებელია. პაროლი ერთადერთი დაცვაა.
- Minecraft RCON არის
25575/tcpდა გამორთულია, თუenable-rcon=trueარ არის. Rust მას websocket-ად აქვეყნებს28016/tcp-ზე. Palworld-ს აქვს როგორც RCON25575/tcp-ზე, ისე REST API8212/tcp-ზე, თითოეულს საკუთარი პაროლით. - ვებ ადმინ პანელები - Killing Floor 2
8080-ზე, 7 Days to Die-ს dashboard8080-ზე და telnet8081-ზე - HTTP-ა, ნაგულისხმევად დაუშიფრავი, და ხშირად დაცულია პაროლით, რომელიც კონფიგურაციის ფაილში ღიად წერია.
წესი, რომელიც პრობლემებისგან გიცავს, მარტივია: გარე სამყაროს გაუხსენი თამაშის პორტი და query პორტი და სხვა არაფერი. თუ გარედან RCON გჭირდება, შეზღუდე წესი იმ მისამართებით, საიდანაც ადმინისტრირებ, გამოიყენე პაროლი, რომელიც ადმინის პაროლი არ არის, და შეცვალე, როცა ვინმე პერსონალს ტოვებს. RCON უსაფრთხოდ უფრო გრძელი ვერსიაა, ხოლო რა უნდა გააკეთო, როცა შენი სერვერი გატეხეს პოსტია, რომელიც უკვე წაკითხული გინდა გქონდეს და არა შემდეგ.
Port forwarding სახლში, NAT და CGNAT#
საკუთარი კავშირიდან ჰოსტინგი პორტებს ამარტივებს კი არა, ართულებს, რადგან ინტერნეტსა და შენს მანქანას შორის თარგმნის ფენაა. შენს როუტერს ერთი საჯარო მისამართი აქვს, სერვერს - კერძო, ხოლო forward როუტერს ეუბნება, რომ მოცემულ პორტზე შემოსული ტრაფიკი მოცემულ შიდა მანქანას ეკუთვნის.
პრაქტიკაში ამას სამი რამ არღვევს:
- შიდა მისამართი იცვლება. შენი სერვერი ახალ DHCP lease-ს იღებს, forward ძველ მისამართზე მიუთითებს და ყველაფერი ჩერდება. სანამ რამეს გადაამისამართებ, მანქანას მიეცი DHCP რეზერვაცია ან სტატიკური ლოკალური მისამართი.
- საჯარო მისამართი იცვლება. საცხოვრებელი კავშირების უმეტესობა დინამიკურ მისამართს იღებს, რომელიც ხელახლა დაკავშირებისას იცვლება. დინამიკური DNS ჩანაწერი ამას ფარავს, ოღონდ ყოველი ცვლილებისას გავრცელების დაყოვნების ფასად. სტატიკური IP მისამართები: როდის გჭირდება განიხილავს, რას გაძლევს და რას არა სტაბილური მისამართი.
- Carrier-grade NAT. თუ შენი როუტერის WAN მისამართი
100.64.0.0/10-შია, საჯარო მისამართს სხვა მომხმარებლებთან ინაწილებ და port forward საერთოდ შეუძლებელია, რადგან პორტი შენი არ არის. ბევრი ISP მოთხოვნით CGNAT-იდან გაგიყვანს; ზოგი არა, ზოგი კი ამისთვის იღებს ფულს. IPv6 რეალური გამოსავალია, თუ შენს მოთამაშეებსაც აქვთ, რაც სწორედ ჩაკიდებაა - იხილე IPv6 და გეიმ სერვერები.
არის ისიც, რასაც არავინ წერს: სახლის კავშირზე გადამისამართებული პორტი მუდმივი შემომავალი ხვრელია ქსელში, სადაც შენი საბანკო მონაცემები ცხოვრობს, და მასზე გეიმ სერვერის პროგრამა მუშაობს, რომლის დაპატჩვის ისტორიაც არავის მიაჩნია შესანიშნავად. გეიმ სერვერის სახლში ჰოსტინგი და ქირაობა ორივეს პატიოსნად ადარებს, იმ შემთხვევების ჩათვლით, როცა სახლში ჰოსტინგი სწორი პასუხია.
FAQ#
რა არის query პორტი და უნდა იყოს თუ არა ღია?
ეს პორტია, რომელსაც სერვერების ბრაუზერი შენი სერვერის სახელს, რუკასა და მოთამაშეების რაოდენობას ეკითხება. გეიმფლეი მას არ იყენებს. ღია მხოლოდ მაშინ გჭირდება, თუ გინდა, სერვერი სიაში ჩანდეს ან მონიტორინგი ჰქონდეს; მოთამაშეები, რომლებიც პირდაპირი მისამართით უკავშირდებიან, მის გარეშეც შემოვლენ.
რატომ მუშაობს ჩემი სერვერი ჩემთვის და სხვისთვის არა?
შენ ქსელის შიგნიდან ამოწმებ, სადაც firewall და NAT გზაზე არ დგას. სცადე მობილური კავშირიდან ან სთხოვე გარეთ მყოფ ვინმეს. თუ მათ არ გამოუვა და შენ გამოგივა, პრობლემა firewall-ში, forward-ში ან bind მისამართშია და არა თამაშში.
შეუძლია თუ არა ორ გეიმ სერვერს ერთი პორტის გაზიარება?
არა. ერთ პროცესს ერთდროულად ერთი პროტოკოლის ერთი პორტის დაკავება შეუძლია და მეორე ვერ ეშვება შეტყობინებით "address already in use". ისინი ნომერს პროტოკოლების მიხედვით ინაწილებენ - ერთი TCP-ზე, მეორე UDP-ზე - მაგრამ ხალხი ამას იშვიათად კითხულობს. თითოეულ სერვერს თავისი პორტი და თავისი query პორტი მიეცი.
მჭირდება თუ არა გამავალი პორტების გახსნაც?
თითქმის არასოდეს. გამავალი კავშირები პრაქტიკულად ყველა firewall-სა და როუტერზე ნაგულისხმევად ნებადართულია, უკუტრაფიკს კი connection tracking უშვებს. სერვერის ჩამოთვლა, Steam-ის ავტორიზაცია და განახლებების ჩამოტვირთვა ყველა გამავალია და, როგორც წესი, წესს არ საჭიროებს.
არასტანდარტული პორტი ნაგულისხმევზე უფრო უსაფრთხოა?
უმნიშვნელოდ, და ისე, რომ მასზე დაყრდნობა არ უნდა. ის შენს სერვერს ყველაზე უხეში მასობრივი სკანირებისგან ამოიყვანს, რაც ადმინისტრაციული პორტისთვის რაღაცას ნიშნავს, მაგრამ ყველაფერი, რაც დიაპაზონს სკანირებს, მაინც იპოვის. გამოიყენე როგორც კომფორტი და არასოდეს როგორც კონტროლი.
რამდენი პორტი სჭირდება ჩემს გეგმას?
დათვალე თამაშის პორტი, query პორტი, თუ ის ცალკე ნომერია, და ნებისმიერი ადმინისტრაციული პორტი, რომლის გამოყენებასაც ნამდვილად აპირებ. Valheim-ს ორი სჭირდება. Minecraft Java-ს ერთი, თუ RCON არ გინდა. Arma 3-სა და DayZ-ს ხუთისა და სამის ბლოკი. დანარჩენს თამაშების მიხედვით ზემოთ მოცემული ცხრილი ფარავს.




კომენტარები
სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.