Konchilik dasturi bitta soketni bitta manzilga ochiq tutadi va tunnel, marshrut hamda hisoblangan ish haqidagi har bir savol shu soketga bog'liq. Bu soket hovuz oxirgi nuqtasiga chiquvchi mijoz sessiyasidir, peerlarni qabul qiluvchi tinglovchi emas. Quyidagi yurish uni hovuz bergan to'rtta qiymatdan hovuz haqiqatan qayd etgan ulushgacha kuzatib boradi va hostning boshqa xizmatlariga tegmaydi. Har bir qadam solishtirish mumkin bo'lgan javob beradi, taassurot emas.

Hovuz haqiqatan bergan oxirgi nuqtadan boshla

Hovuz sizga butun shartnomani tashkil etuvchi to'rtta qiymat beradi: host nomi yoki manzil, port, protokol varianti va hisob satri. Ularni hovuzning boshqaruv panelidan yoki qabul xabaridan oling, boshqa hovuz uchun yozilgan qo'llanmadan emas. Xuddi shu xizmat uchun mintaqaviy shardlar mavjud, shuning uchun eski qo'llanmadan ko'chirilgan host nomi hali ham ulanishi va hech qachon ishlatishni xohlamagan hisobingizga hali ham kredit yozishi mumkin. To'rtta qiymatni konchi konfiguratsiyasiga so'zma-so'z ko'chiring, chunki qayta yozilgan hisob satri ajratgichni yo'qotadi.

Siz yo'naltirayotgan oqim — Bitcoin dasturchi qo'llanmasi Stratum sessiyasi deb ataydigan oqim: hovuz ish taqsimlaydigan va konchi ulushlarni qaytaradigan doimiy ikki tomonlama TCP ulanishi. Bu to'la tugunning peer ulanishlari yoki hamyonning zanjir sinxronizatsiyasi bilan bir xil oqim emas va ularni bitta trafik sinfiga jamlash chalkashlikning ko'p qismi boshlanadigan joydir. Bu siyosatga faqat birinchisi tegishli.

Hovuz TLS taklif qiladigan joyda uning hujjatlari talab qiladigan server tekshiruvini saqlang. Tunnel mashinangizdan VPN serveriga bo'lgan hopni shifrlaydi va shu yerda tugaydi; u qarshi tomonda kim javob berishiga kafolat bermaydi. Sessiya buzilgan chiqishdan omon qolishini istasangiz, ikkala uchda ikkita tekshiruvni ham saqlang.

Tunnelni jarayonga bog'lang, uy xo'jaligiga emas

Ikki bog'lash nuqtasi ishlaydi: VPN mijozini konchi ishlatadigan tarmoq nom maydoni ichida ishga tushiring yoki shu nom maydoniga trafigini tunnelga olib boradigan shlyuz bering. Ikkala joylashuv ham sessiyani hovuz uni ko'rmasidan oldin yo'lga qo'yadi. Odatiy muvaffaqiyatsizlik — hostdagi mijoz, o'z ko'prigi bo'lgan konteynerdagi konchi va konteyner hech qachon so'ramaydigan host marshruti. Mijoz oynasi sog'lom ko'rinadi, hovuz esa uy manzilingizni qayd etadi.

Biror narsani cheklashdan oldin tunnelning o'z transportini tekshiring. Mijoz serveriga pastki qatlam orqali yetib borishi kerak, shuning uchun har bir paketni tutadigan siyosat tunnelni quradigan paketlarni ham tutadi. Keyin tunnel ishga tusha olmaydi va boshqa hech narsa ham chiqmaydi. Mijozning bo'lingan tunnel funksiyasi bilan tunnelga nima kirishini tanlang; standart marshrutlarni qo'lda tahrirlash — pastki qatlam yo'qolishining usuli.

Siyosat joyida bo'lgach, konchi tegishli nom maydonidagi soket jadvalini o'qing. Hovuz portiga oqim tunnel interfeysida turishi kerak va ikkita buyruq bu savolga javob beradi. Quyidagi port misol; hovuz bergan port bilan almashtiring.

sudo nsenter -t "$(pidof cgminer)" -n ss -tnp state established 'dport = :3333'
sudo nsenter -t "$(pidof cgminer)" -n ip route get 203.0.113.10

Marshrut va hal qiluvchini konchining o'z kontekstidan o'qing

Marshrutlash va nomlarni hal qilish har bir nom maydoni uchun amal qiladi, shuning uchun oddiy qobiqda ishga tushirilgan tekshiruv konchi konteynerda bo'lganda noto'g'ri mashinani tasvirlaydi. Avval nom maydoniga kiring, keyin paketni hovuz manziliga qaysi interfeys olib borishini va uning host nomiga qaysi hal qiluvchi javob berishini so'rang. Hostning javoblari o'tmaydi va ular orasidagi farq noto'g'ri joyga qo'yilgan aybning keng tarqalgan manbasidir.

Olgan interfeysingizni nomlang: tunnel sessiya mo'ljallangan yo'lda ekanini, fizik bog'lanish esa qoida kutganingizdan erta mos kelganini bildiradi. Prefiks uzunligi birinchi hal qiladi, keyin metrika, keyin siyosat qoidalari, shuning uchun bir nechta standart yozuvli jadval paketlarni takrorlamaydi, shunchaki yutqazadi.

Hal qiluvchilar marshrutlardan alohida muvaffaqiyatsiz bo'ladi. /etc/resolv.conf faylini qayta yozadigan tunnel nom maydonini faqat tunnel ichidan yetib bo'ladigan hal qiluvchiga yo'naltirib qo'yishi mumkin, bu esa har qanday TCP qo'l berishidan oldin muvaffaqiyatsiz bo'ladi. Hovuz host nomini nom maydoni ichida hal qiling va e'lon qilingan manzil bilan solishtiring. Agar qidiruv vaqti tugasa yoki boshqa narsa qaytarsa, marshrutlarga tegishdan oldin hal qilishni tuzating.

Hovuz mijozini va tugun tinglovchisini alohida tuting

8333 porti Bitcoin Core peer porti bo'lib, u yerda to'la tugun kiruvchi ulanishlarni tinglaydi; hovuz konchisiga u hech qachon ochiq kerak emas va uni ochish chiquvchi nosozlikni tuzatmaydi. Kiruvchi tinglovchilar va chiquvchi sessiyalar qarama-qarshi ishonch taxminlari bo'lgan qarama-qarshi rollardir. Konchi konfiguratsiyasida hech narsa bu portni bog'lamaydi, shuning uchun yopiq port u bildiradigan hech qanday xatoni tushuntira olmaydi. Tugunning yetib borish qobiliyati uchun yozilgan maslahat shu sababli faqat ulush yuborishi kerak bo'lgan hostda ommaviy xizmatni ishlab qoldirishi mumkin.

Agar bitta mashina haqiqatan ikkalasini qilsa, har bir rolni o'z kirish qaroriga ega alohida xizmat sifatida ko'rib chiqing. Tugun tinglovchisi ommaviy xizmatlarga qo'llaydigan siyosatingiz orqasiga tegishli, konchi sessiyasi esa tunnelni tanlaydigan chiqish siyosatiga tegishli. Host qaysi rolni o'ynashini yozib qo'ying va bu o'zgarganda boshqa rolning qoidalarini olib tashlang, chunki qolib ketgan ruxsat qoidasi sababidan uzoq yashaydi.

Hovuz ishni olganini isbotlang

Band ventilyator va ko'tarilayotgan hashrate konchi hisoblayotganini ko'rsatadi, hovuzga biror narsa yetib kelganini emas. Dalil mijozning yuborish hisoblagichlarida yoki hovuzning boshqaruv panelida: qabul qilingan ulushlar, rad etilgan ulushlar va har bir rad etishga qo'shilgan sabab. Bu raqamlar tashqaridan bir xil ko'rinadigan uchta nosozlikni ajratadi: sessiya yo'q, kreditsiz sessiya va doimiy qayta ulanadigan sessiya. Har qanday konfiguratsiyani o'zgartirishdan oldin ularni o'qing.

Batafsil log bilan bitta ulanish urinishini kuzatib, muvaffaqiyatli bo'lgan oxirgi bosqichni belgilang. Ketma-ketlik to'xtaydigan bosqich uning atrofidagi har qanday bitta xabardan foydaliroq:

Last stage reachedWhat it rules outProbe to run next
Name lookup completedResolver and namespace reachabilityip route get for the returned address
TCP connect completedRoute and egress filteringss -tnp on the tunnel interface
Subscription returned a jobEndpoint or protocol mismatchAccepted against rejected counts

So'ng mijozga qat'iy oyna davomida ishlashga ruxsat bering va uning logidan ikkala natijani ham sanang. Har bir hisoblagich uchun bitta grep yetarli va ularni bir xil oynada solishtirish sekin hovuzni buzilgan yo'ldan ajratadi. Yo'lni mijozingiz yozadigan joyga moslang, chunki ikkita sanoq joylashuvga bog'liq emas:

grep -c Accepted /var/log/miner.log
grep -c Rejected /var/log/miner.log

Agar qoida tunnel har tushganda to'g'ridan-to'g'ri hovuz ulanishini taqiqlasa, uni hovuz oxirgi nuqtasida aniq blok sifatida ifodalang. Fizik bog'lanish orqali jimgina qayta urinadigan mijoz konchilikni davom ettiradi va bu qoidani buzishda davom etadi, holat displeyi esa buni qayd etmaydi. Qoidani tunnelni ataylab tushirib, hovuz portiga umuman yetib bo'lmasligini tasdiqlash orqali sinab ko'ring.

O'xshash maqolalar