BeamMP Keymaster, keymaster.beammp.com, ის ადგილია, საიდანაც სერვერის auth key-ები მოდის. შედიხარ Discord-ით, ხსნი Keys-ს, აჭერ მწვანე +-ს, key-ს აძლევ სახელს და 36-სიმბოლოიან ტექსტს აკოპირებ ServerConfig.toml-ის [General] სექციაში, AuthKey-ის მნიშვნელობად. ერთი key ერთდროულად ერთ სერვერს ემსახურება, ანგარიშზე მხოლოდ რამდენიმე key გეძლევა, ხოლო BeamMP სერვერი ცარიელი AuthKey-ით საერთოდ არ ეშვება - private იქნება თუ არა. BeamMP key-ებთან დაკავშირებული პრობლემების უმეტესობა სამ მიზეზამდე დაიყვანება: key საერთოდ არ ჩაგიწერია, ჩაგიწერია ზედმეტი space-ით ან არასწორ ხაზში, ან ერთი key ორ სერვერზე გამოგიყენებია.
ეს გზამკვლევი Keymaster-სა და key-ის ირგვლივ ყველაფერს მოიცავს. სერვერის დაყენება, ServerConfig.toml-ის დანარჩენი პარამეტრები, რუკები და მოდები BeamMP სერვერის გზამკვლევშია, სკრიპტინგი კი - BeamMP Lua plugin-ებსა და რბოლებში.
რას აკეთებს auth key სინამდვილეში#
BeamMP სერვერი ცალკე კუნძული არ არის. მუშაობისას ის HTTPS-ით heartbeat-ს უგზავნის BeamMP backend-ს - თავის სახელს, რუკას, მოთამაშეების რაოდენობას, ვერსიას და მოთამაშეების სიას - და key ყოველ heartbeat-ს სერვერის იდენტობად ახლავს. backend სტატუსით პასუხობს, სერვერი კი ჟურნალში წერს, მიიღეს თუ არა key. სწორედ ასე ხვდება სერვერი თამაშის შიგნით სერვერების სიაში და ასე იგებს backend-ი, რომელ ანგარიშს ეკუთვნის სერვერი.
ამ დიზაინიდან სამი შედეგი გამომდინარეობს და კარგია, რამეს შეეხებოდე თუ არა, ეს თავში გქონდეს:
- key ანგარიშს ეკუთვნის და არა მანქანას ან ჰოსტს. ის შენი Discord ანგარიშით იქმნება. ჰოსტინგ-პროვაიდერი ვერ გამოგიგენერირებს - ნებისმიერი პროვაიდერი მოგთხოვს, შენი ჩასვა, რადგან key-ის მოპოვების სხვა კანონიერი გზა არ არსებობს.
- სერვერს გამავალი HTTPS სჭირდება. heartbeat პორტ
443-ზე გადის. firewall-ის უკან, რომელიც გამავალ ტრაფიკს ბლოკავს, სერვერი გაეშვება, მაგრამ ავტორიზაციას ვერ გაივლის და სიაში ვერ გამოჩნდება. - key მონაცემებია, რომლებიც სხვას არ უნდა ჩაუვარდეს. ვისაც ის აქვს, შეუძლია სერვერი გაუშვას ისე, რომ backend-მა ის შენად ჩათვალოს. BeamMP-ის დოკუმენტაცია პირდაპირ ამბობს: მოეპყარი პაროლივით და არავის უჩვენო.
Keymaster-ში შესვლა#
Keymaster შესასვლელად Discord-ს იყენებს. BeamMP მიზეზად სპამის პრევენციას ასახელებს: key-ების Discord ანგარიშზე მიბმა ათასობით უსარგებლო სერვერის შექმნას ძვირს ხდის. BeamMP-ის Discord სერვერზეც ღირს გაწევრიანება - მხარდაჭერა, კომპრომეტირებული key-ის შემთხვევაშიც, იქ გადის.
რამდენიმე რამ, რაც ამ ეტაპზე ხშირად უცაბედად ხვდება ადამიანს:
- მფლობელი Discord ანგარიშია. ერთი Discord ანგარიშით შექმნილი key-ები მეორე ანგარიშიდან არ ჩანს. თუ კლუბი თავის სერვერებს მართავს, key-ების შექმნამდე გადაწყვიტე, რომელი ანგარიში იქნება მფლობელი, და აირჩიე ისეთი, რომელიც ორი წლის შემდეგაც იარსებებს - არა წევრი, რომელმაც შეიძლება წასვლა გადაწყვიტოს.
- შენი Discord-ის უსაფრთხოება შენი key-ის უსაფრთხოებაა. ვინც ამ Discord ანგარიშში შეაღწევს, ნახავს და წაშლის შენს ყველა key-ს. Discord-ში ჩართე ორფაქტორიანი ავტორიზაცია; ორფაქტორიან ავტორიზაციაზე პანელის ანგარიშისთვის ნათქვამი ნებისმიერ ანგარიშზე მოქმედებს, რომელიც სერვერის მონაცემებს ინახავს.
- BeamMP-ის ფორუმის ანგარიში ცალკე შესვლაა. შემოწირულობის პრივილეგიები ფორუმის ანგარიშზე მითითებული ელფოსტით და Patreon-ზე მიბმული Discord ანგარიშით ემთხვევა, რაც ქვემოთ აღწერილი key-ების ლიმიტებისთვის მნიშვნელოვანია.
key-ის შექმნა ეტაპობრივად#
- გახსენი
keymaster.beammp.comდა შედი Discord-ით. - მარცხენა მენიუში დააჭირე Keys-ს.
- ზედა მარჯვენა კუთხეში დააჭირე მწვანე + ღილაკს.
- შეიყვანე Server Name. ეს მხოლოდ key-ის ეტიკეტია Keymaster-ის შიგნით - მოთამაშეები სხვა სახელს ხედავენ, რომელიც
ServerConfig.toml-ისName-იდან მოდის. - დააჭირე Create-ს.
- Key ველის მნიშვნელობა დააკოპირე მის მარჯვნივ მდებარე clipboard-ის ხატულით.
გამოიყენე clipboard-ის ხატულა და ტექსტი ხელით ნუ მონიშნავ. ხელით მონიშვნისას კონფიგურაციაში ადვილად შედის ბოლოს დარჩენილი space ან აკლია ბოლო სიმბოლო, და ორივე იმას იწვევს, რომ სერვერი ეშვება, მაგრამ ავტორიზაციას ვერ გადის.
key-ს დაარქვი ის სახელი, სადაც იცხოვრებს: cruise-de-prod, drift-test, league-season-3. როცა სამი key გაქვს და ის უნდა გააუქმო, რომელიც გაჟონა, ეტიკეტი, რომელიც გეუბნება, რომელ სერვერს ეკუთვნის, გიცავს გამოცნობისგან - და იქიდან, რომ რბოლის საღამოს არასწორი სერვერი ჩამოიღო სიიდან.
თვითონ key UUID-ია: 36 სიმბოლო, თექვსმეტობითი ციფრების ხუთი ჯგუფი, დეფისებით გაყოფილი. ეს სიგრძე კარგი შემოწმებაა, რადგან სერვერიც ამოწმებს.
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxრამდენი key გეძლევა#
ყველა ანგარიშს key-ების შეზღუდული რაოდენობა აქვს და ყოველი key ერთდროულად მხოლოდ ერთ სერვერს ემსახურება. უფასო ნორმა მცირეა - ჰოსტინგ-პროვაიდერების გზამკვლევები სტაბილურად აღწერენ ორ key-ს ერთ Discord ანგარიშზე - ზუსტ რიცხვს Keymaster გაჩვენებს, როცა ლიმიტს მიაღწევ, და სწორედ იქ ღირს შემოწმება, რადგან პოლიტიკის შეცვლა BeamMP-ის ხელშია.
დამატებითი key-ები პროექტის მხარდაჭერით მოდის. ოფიციალური მოთამაშეების FAQ განაკვეთებს ასე ასახელებს:
| მხარდაჭერა | დამატებითი key-ები |
|---|---|
| შემოწირულობა ან Patreon-ის დონე | 1 ყოველ შემოწირულ US$-ზე |
| BeamMP Discord-ის boost | სულ +5, თითო boost-ზე კი არა |
ორივე გზა early-access პრივილეგიებსაც იძლევა. იმისთვის, რომ key-ები მოვიდეს, შენი Patreon ანგარიში იმავე Discord ანგარიშს უნდა იყოს მიბმული, რომელსაც Keymaster-ზე იყენებ, ხოლო Patreon-ზე მითითებული ელფოსტა BeamMP-ის ფორუმის ანგარიშის ელფოსტას უნდა ემთხვეოდეს. BeamMP ამბობს, რომ სინქრონიზაციას რამდენიმე საათი შეიძლება დასჭირდეს, ზოგჯერ 12 საათამდეც; თუ ამის შემდეგაც არაფერი მოსულა, შემდეგი ნაბიჯი მათი მხარდაჭერაა და არა მეორე შემოწირულობა.
მეტი key-ის საფასურის გადახდამდე შეხედე, ნამდვილად გჭირდება თუ არა:
- სატესტო სერვერს საკუთარი მუდმივი key არ სჭირდება, თუ ის ცოცხალ სერვერთან ერთად არასდროს მუშაობს. თუმცა ის ცოცხალი სერვერის გაშვებამდე უნდა გაჩერდეს, თორემ ერთ-ერთს უარს ეტყვიან.
- გათიშული სერვერების ძველი key-ები კვლავ ითვლება. წაშალე ისინი. მკვდარი key შენს სიაში გამოუყენებელი სლოტია და მონაცემები, რომლებიც კვლავ შეიძლება ბოროტად იქნას გამოყენებული.
- წესი ერთი key-ია ყოველ გაშვებულ სერვერზე და არა ყოველ მანქანაზე. ერთ მანქანაზე ორ BeamMP სერვერს ორი key სჭირდება.
სად იწერება key#
key ServerConfig.toml-ის ერთ ხაზშია, [General]-ის ქვეშ, ბრჭყალებში, რადგან ის TOML string-ია:
[General]Port = 30814AuthKey = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Private = falseName = "Sunday Night Cruise"პირველი გაშვებისას სერვერი წერს ახალ ServerConfig.toml-ს, Keymaster-ზე მიმთითებელი კომენტარით და ცარიელი AuthKey-ით, და ჩერდება. ეს მოსალოდნელია: ჩაწერე key და გაუშვი თავიდან. ფაილის სტრუქტურა და დანარჩენი ყველა პარამეტრი სერვერის გზამკვლევშია.
გარემოს ცვლადები ფაილის ნაცვლად
მიმდინარე 3.x სერვერის ბილდები key-ს გარემოდანაც კითხულობს. თუ BEAMMP_AUTH_KEY დაყენებულია და ცარიელი არ არის, ის ფაილში ჩაწერილს გადაფარავს; BEAMMP_PRIVATE იგივეს აკეთებს Private-ისთვის და true-დ მხოლოდ მაშინ ითვლება, როცა 1 ან true-ა.
$ export BEAMMP_AUTH_KEY="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"$ export BEAMMP_PRIVATE=false$ ./BeamMP-Serverეს უკეთესი ხერხია container-ებისთვის და მათთვის, ვინც კონფიგურაციის ფაილს Git-ში ინახავს: ფაილი შეიძლება commit-ში შევიდეს და გაზიარდეს, საიდუმლო კი მის გარეთ დარჩება. გარემოს ცვლადები და საიდუმლოებები განმარტავს, რატომ ღირს ამ გამიჯვნისთვის მცირე დამატებითი შრომა. ერთადერთი ხაფანგი პრიორიტეტია - თუ ცვლადი დაყენებულია, ფაილში AuthKey-ის შეცვლა არაფერს აკეთებს, და ეს ძალიან ჰგავს იმას, თითქოს სერვერი გაიგნორებს. სერვერის ძველი ვერსიები ამ ცვლადებზე ძველია, ამიტომ მათზე დაყრდნობამდე შეამოწმე შენი ბილდის release notes.
ჰოსტინგის პანელზე
პანელზე დაფუძნებულ ჰოსტზე key ხშირად ველია და არა ფაილში ხელით ასაკრეფი ხაზი, და პანელი თვითონ წერს მას კონფიგურაციაში ან გარემოში. RE:NODE-ზე BeamMP იმ თამაშებს ეკუთვნის, რომლებსაც შენი საკუთარი მონაცემები სჭირდება: სერვერი იგება გადახდის დადასტურებისთანავე, ხოლო ინსტალაცია Setup ჩანართზე ელოდება, სანამ key-ს არ ჩასვამ - იქვეა ადგილიც, სადაც მოგვიანებით შეცვლი.
private და საჯარო სერვერები#
Private განსაზღვრავს, რეკლამირდება თუ არა სერვერი და არა იმას, სჭირდება თუ არა key. სერვერი ცარიელი AuthKey-ით არ ეშვება Private-ის მნიშვნელობის მიუხედავად, ამიტომ ოთხი მეგობრის სერვერსაც კი Keymaster-ის key სჭირდება.
| პარამეტრი | სერვერების სიაში | შესვლა |
|---|---|---|
Private = false | დიახ, ავტორიზაციის შემდეგ | სიიდან ან პირდაპირი დაკავშირებით |
Private = true | არა | მხოლოდ პირდაპირი დაკავშირებით |
ორი დეტალი უფრო მნიშვნელოვანია, ვიდრე ჩანს:
- `Private = true` პაროლი არ არის. ის სერვერს სიიდან გამორიცხავს. ვინც მისამართსა და პორტს იცის, მაინც დაუკავშირდება. რეალური წვდომის კონტროლი
onPlayerAuth-ში Lua შემოწმებაა; როგორ - plugin-ების გზამკვლევი გვიჩვენებს, ხოლო whitelist თუ პაროლი განმარტავს, რატომ სჯობს იდენტიფიკატორების სია საერთო საიდუმლოს. - private რეჟიმი ავტორიზაციის შეტყობინებებს ჩუმად ტოვებს. მიმდინარე ბილდებში private სერვერი მაინც აგზავნის heartbeat-ებს, მაგრამ არ ბეჭდავს "Authenticated" ხაზს, უარის მიზეზს და გაფრთხილებას მიუწვდომელი backend-ის შესახებ. ამიტომ private სერვერი ცუდი key-ით კონსოლში სავსებით ჯანსაღად გამოიყურება. თუ key-ს ამოწმებ, ჯერ
Private = false-ით შეამოწმე, წაიკითხე შედეგი და მხოლოდ შემდეგ გახადე სერვერი private.
key-ების მართვა, შეცვლა და გაუქმება#
Keys გვერდი მთელი მართვის ინტერფეისია: შენი key-ები, მათი ეტიკეტები, თითოეულის მნიშვნელობა და წაშლის შესაძლებლობა. key-ის წაშლა მისი გაუქმებაა. წაშლის შემდეგ backend მას აღარ ცნობს: მასთან გაშვებულ სერვერს უარს ეტყვიან, ხოლო უკვე გაშვებულისგან სიაში დარჩენას არ უნდა ელოდო. წაშლილი key ყველგან ერთდროულად მკვდარია.
key შეცვალე, როცა ის გამჟღავნდა - Discord არხში ჩაიწერა, ეკრანის სურათზე ან ტრანსლაციაში ჩანდა, საჯარო repository-ში commit-ში მოხვდა, ან ადმინთან დარჩა, რომელიც უკვე წავიდა. თანმიმდევრობას მნიშვნელობა აქვს, რადგან არ გინდა, სერვერი სიიდან ერთ restart-ზე დიდხანს იყოს ამოღებული:
- შექმენი ახალი key Keymaster-ში და მიეცი გასაგები ეტიკეტი.
ServerConfig.toml-ში (ან პანელის ველში, ანBEAMMP_AUTH_KEY-ში)AuthKeyახალი მნიშვნელობით ჩაანაცვლე.- გადატვირთე სერვერი და კონსოლში დაადასტურე "Authenticated" ხაზი.
- წაშალე ძველი key Keymaster-ში.
პირველი ნაბიჯისთვის ერთი თავისუფალი სლოტი გჭირდება. თუ ყველა სლოტი დაკავებულია, ჯერ ძველი key უნდა წაშალო და მცირე შესვენება მიიღო. თუ ფიქრობ, რომ key ბოროტად გამოიყენეს და არა უბრალოდ გამჟღავნდა - მაგალითად, შენს სახელზე უცნობი სერვერი გამოჩნდა - BeamMP გთხოვს, key-ის წაშლასთან ერთად მათ Discord-ზე Account Support ticket-იც გახსნა.
key იმ ადგილებს მოარიდე, საიდანაც ჟონავს: მესამე მხარეებისთვის გაგზავნილი support ticket-ები, კონფიგურაციის რედაქტორის ეკრანის სურათები, გაზიარებული კონფიგურაციის შაბლონები და Git-ის ისტორია. თუ გუნდის წევრს სერვერის რედაქტირება სჭირდება, ფაილებზე წვდომა მიეცი Discord ანგარიშის გადაცემის გარეშე; subuser-ები და უმცირესი პრივილეგიის პრინციპი ზოგადი პრინციპია. ასევე შეინახე ServerConfig.toml-ის backup, რომელიც key-თან ერთად თვალსაჩინოდ არ მოგზაურობს - backup-ები, რომლებიც ნამდვილად აღდგება ამ ჩვევის დანარჩენ ნაწილზეა.
შეცდომები ცუდი, ნაკლული ან განმეორებით გამოყენებული key-ისგან#
key-ის ყველა პრობლემა სერვერის კონსოლში პირველივე heartbeat-ში ჩნდება, თუ უყურებ. ეს შეტყობინებებია, რომლებსაც მიმდინარე 3.x ბილდები ბეჭდავს და რას ნიშნავს თითოეული:
| კონსოლის შეტყობინება | მიზეზი |
|---|---|
No AuthKey specified in the "ServerConfig.toml" file... | AuthKey ცარიელია. სერვერი ჩერდება |
AuthKey specified is the wrong length and likely isn't valid. | არ არის 36 სიმბოლო. სერვერი აგრძელებს მუშაობას |
Authenticated! | backend-მა key მიიღო |
Backend REFUSED the auth key. Reason: ... | key უცნობია, წაშლილია ან უკვე გამოიყენება |
Backend failed to respond to a heartbeat. | backend სერვერიდან მიუწვდომელია |
შეტყობინებების ფორმულირება გამოშვებებს შორის ოდნავ იცვლება, ამიტომ კონსოლში ეძებე AuthKey, Authenticated და REFUSED და არა ზუსტი წინადადება. კონსოლის კითხვა შეიცავს ჩვევებს, რომლებიც ამას სწრაფს ხდის.
სერვერი გაშვებისთანავე ჩერდება
key ცარიელია. ან ფაილი არ შეგინახავს, ან key კომენტარის ხაზში ჩასვი, ან სხვა ServerConfig.toml შეცვალე იმისგან განსხვავებულს, რომელსაც სერვერი კითხულობს - ეს ადვილად ხდება, როცა ძველი ასლი backup-ის საქაღალდეში გვერდით დევს. გახსენი ფაილი, რომელსაც სერვერი ნამდვილად ტვირთავს, და შეამოწმე ხაზი [General]-ის ქვეშ.
სიგრძის გაფრთხილება
მნიშვნელობა 36-სიმბოლოიანი UUID არ არის. ჩვეულებრივი მიზეზებია დასაწყისში ან ბოლოში მოხვედრილი space, ხელით მონიშვნისას დაკარგული ბოლო სიმბოლო, ბრჭყალებში ჩასმული ბრჭყალები ან შემთხვევით დაკოპირებული Discord შეტყობინების ID. ამ გაფრთხილების შემდეგ სერვერი მუშაობას აგრძელებს, ამიტომ ადვილია, გვერდით ჩაუაროს; შემდეგ backend მას უარს ეტყვის.
"Backend REFUSED the auth key"
backend-მა key დაინახა და უარყო. ორწერტილის შემდეგ მიზეზი BeamMP-იდან მოდის, ამიტომ გამოცნობამდე წაიკითხე. პრაქტიკაში ეს სამიდან ერთია: key Keymaster-ში წაიშალა, ისე შეიცდა, რომ სიგრძე მაინც სწორია, ან უკვე გამოიყენება სხვა გაშვებული სერვერის მიერ. ბოლო შემთხვევის გამოსწორება key-ია ყოველ სერვერზე - სახლის კომპიუტერზე დარჩენილი სატესტო ასლი კლასიკური დამნაშავეა.
"Backend failed to respond to a heartbeat"
ეს ქსელური პრობლემაა და არა key-სი. სერვერმა HTTPS-ით backend-ს ვერ მიაღწია, ამიტომ არც ერთი პასუხი არ მიუღია. შეამოწმე, რომ პორტ 443-ზე გამავალი ტრაფიკი ნებადართულია, რომ მანქანაზე DNS მუშაობს და BeamMP-ის backend ცუდ დღეს ხომ არ გადის. პირდაპირი დაკავშირება ამ დროს მაინც მუშაობს; მხოლოდ სიაა დაზარალებული.
მუშაობს, ავტორიზებულია, მაგრამ სიაში არ არის
ჯერ Private შეამოწმე - ეს ყველაზე ხშირი მიზეზია დიდი სხვაობით. შემდეგ სიას ერთი-ორი წუთი მიეცი განახლებისთვის. თუ მაინც ვერ ხედავ, მისამართითა და პორტით პირდაპირ დაუკავშირდი: თუ ეს მუშაობს, key და სერვერი რიგზეა, პრობლემა კი კლიენტში სიის ჩვენებაა ან ფილტრაცია. თუ მოთამაშეები საერთოდ ვერ უკავშირდებიან, ეს 30814 TCP და UDP პორტის პრობლემაა, რომელიც თამაშის სერვერის პორტების განმარტებაშია, და Keymaster მას ვერ გამოასწორებს.
FAQ#
BeamMP Keymaster უფასოა?
დიახ. ყველა Discord ანგარიშს key-ების მცირე ნორმა უფასოდ ეძლევა, რაც მათთვის საკმარისია, ვინც ერთ-ორ სერვერს მართავს. მეტი key შემოწირულობით ან Discord boost-ით მოდის, ოფიციალურ FAQ-ში მითითებული განაკვეთებით.
შეიძლება ორმა სერვერმა ერთი auth key გამოიყენოს?
არა. key-ს ერთდროულად მხოლოდ ერთი გაშვებული სერვერი იყენებს, მეორეს backend უარს ეტყვის. ორ სერვერს, სატესტო ასლის ჩათვლით, ორი key სჭირდება - ან სატესტო ასლი უნდა გაჩერდეს, სანამ რეალური მუშაობს.
private სერვერს auth key სჭირდება?
დიახ. სერვერი ცარიელი AuthKey-ით არ ეშვება, Private-ის მნიშვნელობის მიუხედავად. private რეჟიმი მხოლოდ საჯარო სიიდან გამორიცხავს და ავტორიზაციის შეტყობინებებსაც მალავს, ამიტომ key ჯერ საჯარო სერვერზე შეამოწმე.
რა მოუვა ჩემს სერვერს, თუ მის key-ს წავშლი?
პროცესი არ ინგრევა და უკვე შესულ მოთამაშეებს არ აგდებს, მაგრამ key backend-თან აღარ არის ვალიდური: ელოდე, რომ სერვერი სიაში ადგილს დაკარგავს და შემდეგ გაშვებაზე უარს მიიღებს. ახალი key ჩასვი და გადატვირთე, რომ სწორად აღდგეს.
შეიძლება key სხვა ჰოსტზე გადავიტანო?
დიახ. key ანგარიშს ეკუთვნის და არა მანქანას, ამიტომ სერვერის გადატანა ნიშნავს key-ის ახალ კონფიგურაციაში გადაკოპირებას და ჯერ ძველი სერვერის გათიშვას. თუ ორივე ერთდროულად მუშაობს, ერთს უარს ეტყვიან.
შეუძლია სხვას ჩემი სერვერისთვის key შექმნას?
შეუძლია საკუთარ Discord ანგარიშზე შექმნას, მაგრამ მაშინ ის მისი მფლობელია და ნებისმიერ დროს წაშლის. სერვერისთვის, რომლისთვისაც შენ პასუხისმგებელი ხარ, key თვითონ შექმენი და თვითონვე ჩასვი.


