Maininga programmatūra tur vienu ligzdu atvērtu uz vienu adresi, un katrs jautājums par tuneli, maršrutu un ieskaitīto darbu karājas pie šīs ligzdas. Šī ligzda ir izejoša klienta sesija uz pūla galapunktu, nevis klausītājs, kas pieņem peer'us. Zemāk esošā gaita ved no četrām vērtībām, ko izdeva pūls, līdz daļai, ko pūls tiešām reģistrēja, un neaiztiek citus hosta pakalpojumus. Katrs solis dod atbildi, ko var salīdzināt, nevis iespaidu.

Sāciet ar galapunktu, ko pūls tiešām izdeva

Pūls jums dod četras vērtības, kas veido visu līgumu: hosta nosaukumu vai adresi, portu, protokola variantu un konta virkni. Ņemiet tās no pūla paneļa vai sveiciena ziņas, nevis no pamācības citam pūlam. Tam pašam servisam pastāv reģionālie šardi, tāpēc no vecas rokasgrāmatas nokopēts hosta nosaukums joprojām var pieslēgties un joprojām ieskaitīt kontu, ko jūs nekad negribējāt lietot. Nokopējiet četras vērtības burtiski mainera konfigurācijā, jo pārrakstīta konta virkne zaudē atdalītāju.

Plūsma, ko jūs maršrutējat, ir tā, ko Bitcoin izstrādātāja rokasgrāmata sauc par Stratum sesiju: pastāvīgs divvirzienu TCP savienojums, kurā pūls sadala darbu un maineris atgriež daļas. Tā nav tā pati plūsma kā pilna mezgla peer savienojumi vai maka ķēdes sinhronizācija, un tieši to salikšana vienā trafika klasē ir vieta, kur sākas lielākā daļa apjukuma. Tikai pirmā pieder pie šīs politikas.

Kur pūls piedāvā TLS, saglabājiet servera pārbaudi, ko prasa tā dokumentācija. Tunelis šifrē lēcienu no jūsu mašīnas uz VPN serveri un beidzas tur; tas negarantē par to, kas atbild otrā pusē. Saglabājiet abas pārbaudes, pa vienai katrā galā, ja gribat, lai sesija pārdzīvo kompromitētu izeju.

Piestipriniet tuneli procesam, nevis mājsaimniecībai

Divi piestiprināšanas punkti darbojas: palaidiet VPN klientu tīkla vārdu telpā, ko izmanto maineris, vai dodiet šai vārdu telpai vārteju, kas nes tās trafiku tunelī. Abi izkārtojumi liek sesiju uz ceļa, pirms pūls to redz. Ierastā neveiksme ir klients uz hosta, maineris konteinerā ar savu tiltu un hosta maršruts, ko konteiners nekad nejautā. Klienta logs izskatās vesels, kamēr pūls reģistrē jūsu mājas adresi.

Pārbaudiet paša tuneļa transportu, pirms kaut ko norobežojat. Klientam jāsasniedz savs serveris caur apakšslāni, tāpēc politika, kas pārtver katru paketi, pārtver arī paketes, kas uzbūvētu tuneli. Tad tunelis nevar startēt, un nekas cits arī neiziet. Izvēlieties ar klienta sadalītā tuneļa funkciju, kas ieiet tunelī; noklusēto maršrutu labošana ar roku ir tas, kā apakšslānis pazūd.

Kad politika ir vietā, nolasiet ligzdu tabulu vārdu telpā, kurai pieder maineris. Plūsmai uz pūla portu jāatrodas uz tuneļa saskarnes, un divas komandas atbild uz šo jautājumu. Zemāk esošais ports ir piemērs; aizstājiet to ar to, ko izdeva pūls.

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

Lasiet maršrutu un resolveri no paša mainera konteksta

Maršrutēšana un vārdu izšķiršana ir uz katru vārdu telpu, tāpēc parastā čaulā palaista pārbaude apraksta nepareizo mašīnu, kad maineris ir konteinerā. Vispirms ieejiet vārdu telpā, tad jautājiet, kura saskarne nestu paketi uz pūla adresi un kurš resolveris atbildētu par tās hosta nosaukumu. Hosta atbildes netiek pārnestas, un starpība starp tām ir biežs nepareizi adresētas vainas avots.

Nosauciet saskarni, ko iegūstat: tunelis nozīmē, ka sesija ir paredzētajā ceļā, bet fiziskā saite nozīmē, ka noteikums saskanēja agrāk, nekā gaidījāt. Prefiksa garums izšķir pirmais, tad metrika, tad politikas noteikumi, tāpēc tabula ar vairākiem noklusējuma ierakstiem nedublē paketes, tā vienkārši zaudē.

Resolveri neizdodas atsevišķi no maršrutiem. Tunelis, kas pārraksta /etc/resolv.conf, var atstāt vārdu telpu norādot uz resolveri, kas sasniedzams tikai no tuneļa iekšpuses, un tas neizdodas pirms jebkura TCP rokasspiediena. Atrisiniet pūla hosta nosaukumu vārdu telpas iekšienē un salīdziniet ar publicēto adresi. Ja vaicājums beidzas ar taimautu vai atgriež kaut ko citu, izlabojiet izšķiršanu, pirms aiztiekat maršrutus.

Turiet atsevišķi pūla klientu un mezgla klausītāju

Ports 8333 ir Bitcoin Core peer ports, kur pilns mezgls klausās ienākošos savienojumus; pūla mainerim tas nekad nav vajadzīgs atvērts, un tā atvēršana neizlabo izejošu bojājumu. Ienākošie klausītāji un izejošās sesijas ir pretējas lomas ar pretējiem uzticēšanās pieņēmumiem. Nekas mainera konfigurācijā nesaista šo portu, tāpēc aizvērts ports nevar izskaidrot nevienu kļūdu, ko tas ziņo. Padoms, kas rakstīts mezgla sasniedzamībai, tāpēc var atstāt publisku pakalpojumu darbojamies uz hosta, kuram bija tikai jāsūta daļas.

Ja viena mašīna tiešām dara abus, uzskatiet katru lomu par atsevišķu pakalpojumu ar savu piekļuves lēmumu. Mezgla klausītājs pieder aiz politikas, ko piemērojat publiskiem pakalpojumiem, un mainera sesija pieder izejas politikai, kas izvēlas tuneli. Pierakstiet, kādu lomu spēlē hosts, un noņemiet otras lomas noteikumus, kad tas mainās, jo atlikušais atļaujas noteikums pārdzīvo savu iemeslu.

Pierādiet, ka pūls saņēma darbu

Aizņemts ventilators un augošs hashrate rāda, ka maineris rēķina, nevis ka kaut kas sasniedza pūlu. Pierādījums ir klienta sūtīšanas skaitītājos vai pūla panelī: pieņemtās daļas, noraidītās daļas un iemesls, kas pievienots katram noraidījumam. Šie skaitļi atdala trīs bojājumus, kas no ārpuses izskatās vienādi: nav sesijas, sesija bez ieskaites un sesija, kas nemitīgi pārslēdzas. Izlasiet tos pirms jebkuras konfigurācijas maiņas.

Novērojiet vienu savienojuma mēģinājumu ar detalizētu žurnālu un atzīmējiet pēdējo veiksmīgo posmu. Posms, kurā secība apstājas, ir noderīgāks par jebkuru atsevišķu ziņu ap to:

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

Pēc tam ļaujiet klientam darboties fiksētu logu un saskaitiet abus iznākumus tā žurnālā. Viens grep uz skaitītāju ir pietiekams, un to salīdzināšana tajā pašā logā atdala lēnu pūlu no salauzta ceļa. Pielāgojiet ceļu vietai, kur raksta jūsu klients, jo abi skaitījumi nav atkarīgi no atrašanās vietas:

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

Ja noteikums aizliedz tiešu pūla savienojumu katru reizi, kad tunelis krīt, izsakiet to kā skaidru bloķēšanu pūla galapunktā. Klients, kas klusi mēģina vēlreiz pa fizisko saiti, turpinās rakt un turpinās pārkāpt šo noteikumu, un tā stāvokļa displejs to neminēs. Pārbaudiet noteikumu, tīši nometot tuneli un apstiprinot, ka pūla ports nemaz nav sasniedzams.

Saistītie raksti