Mədən proqramı bir soketi bir ünvana açıq saxlayır və tünel, marşrut və kreditlənmiş iş haqqında hər sual həmin soketdən asılıdır. Həmin soket hovuz son nöqtəsinə çıxan müştəri sessiyasıdır, peer-ləri qəbul edən dinləyici deyil. Aşağıdakı gedişat onu hovuzun verdiyi dörd dəyərdən hovuzun həqiqətən qeydə aldığı paya qədər izləyir və hostun digər xidmətlərinə toxunmur. Hər addım müqayisə edə biləcəyin cavab verir, təəssürat deyil.

Hovuzun həqiqətən verdiyi son nöqtədən başla

Hovuz sənə bütün müqaviləni təşkil edən dörd dəyər verir: host adı və ya ünvan, port, protokol variantı və hesab sətri. Onları hovuzun idarə panelindən və ya qarşılama mesajından götür, başqa hovuz üçün yazılmış təlimatdan deyil. Eyni xidmət üçün regional şardlar var, ona görə köhnə bələdçidən köçürülmüş host adı hələ də qoşula bilər və heç vaxt istifadə etmək istəmədiyin hesaba hələ də kredit yaza bilər. Dörd dəyəri mədənçinin konfiqurasiyasına olduğu kimi köçür, çünki yenidən yazılmış hesab sətri ayırıcını itirir.

Yönləndirdiyin axın Bitcoin tərtibatçı bələdçisinin Stratum sessiyası adlandırdığı axındır: hovuzun iş payladığı və mədənçinin payları geri göndərdiyi davamlı iki tərəfli TCP bağlantısı. Bu, tam node-un peer bağlantıları və ya pul kisəsinin zəncir sinxronizasiyası ilə eyni axın deyil və onları bir trafik sinfində birləşdirmək qarışıqlığın çoxunun başladığı yerdir. Bu siyasətə yalnız birincisi aiddir.

Hovuzun TLS təklif etdiyi yerdə onun sənədləşməsinin tələb etdiyi server yoxlamasını saxla. Tünel maşınından VPN serverinə qədər olan hopu şifrələyir və orada bitir; qarşı tərəfdə kimin cavab verdiyinə zəmanət vermir. Sessiyanın kompromisə uğramış çıxışdan sağ çıxmasını istəyirsənsə, hər iki uçda iki yoxlamanı da saxla.

Tüneli prosesə bağla, ev təsərrüfatına yox

İki bağlama nöqtəsi işləyir: VPN müştərisini mədənçinin istifadə etdiyi şəbəkə ad məkanının içində işə sal və ya həmin ad məkanına trafikini tünelə aparan keçid ver. Hər iki düzülüş sessiyanı hovuz onu görməmişdən əvvəl yola qoyur. Adi uğursuzluq hostda müştəri, öz körpüsü olan konteynerdə mədənçi və konteynerin heç vaxt soruşmadığı host marşrutudur. Müştəri pəncərəsi sağlam görünür, hovuz isə ev ünvanını qeyd edir.

Hər hansı bir şeyi məhdudlaşdırmadan əvvəl tünelin öz daşımasını yoxla. Müştəri serverinə alt qatdan keçməlidir, ona görə hər paketi tutan siyasət tüneli quracaq paketləri də tutur. Sonra tünel başlaya bilmir və başqa heç nə də çıxmır. Müştərinin bölünmüş tünel funksiyası ilə tünelə nəyin girdiyini seç; standart marşrutları əl ilə redaktə etmək alt qatın yox olma üsuludur.

Siyasət yerində olduqda, mədənçinin aid olduğu ad məkanındakı soket cədvəlini oxu. Hovuz portuna axın tünel interfeysində oturmalıdır və iki əmr bu suala cavab verir. Aşağıdakı port nümunədir; hovuzun verdiyi ilə əvəz et.

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

Marşrutu və həlledicini mədənçinin öz kontekstindən oxu

Marşrutlaşdırma və ad həlli hər ad məkanı üzrədir, ona görə adi qabıqda işə salınan yoxlama mədənçi konteynerdə olduqda yanlış maşını təsvir edir. Əvvəlcə ad məkanına gir, sonra paketi hovuz ünvanına hansı interfeysin aparacağını və onun host adına hansı həlledicinin cavab verəcəyini soruş. Hostun cavabları keçmir və aralarındakı fərq yanlış yerə qoyulmuş günahın geniş yayılmış mənbəyidir.

Aldığın interfeysi adlandır: tünel sessiyanın nəzərdə tutulan yolda olduğunu, fiziki əlaqə isə bir qaydanın gözlədiyindən daha erkən uyğunlaşdığını bildirir. Prefiks uzunluğu əvvəl qərar verir, sonra metrik, sonra siyasət qaydaları, ona görə bir neçə standart girişli cədvəl paketləri təkrarlamır, sadəcə uduzur.

Həlledicilər marşrutlardan ayrı uğursuz olur. /etc/resolv.conf faylını yenidən yazan tünel ad məkanını yalnız tünelin içindən əlçatan həllediciyə yönəldə bilər və bu, hər hansı TCP əl sıxması baş verməmişdən əvvəl uğursuz olur. Hovuzun host adını ad məkanının içində həll et və yayımlanmış ünvanla müqayisə et. Axtarış vaxtı bitirsə və ya başqa bir şey qaytarırsa, marşrutlara toxunmadan əvvəl həlli düzəlt.

Hovuz müştərisini və node dinləyicisini ayrı saxla

8333 portu Bitcoin Core-un peer portudur, burada tam node gələn bağlantıları dinləyir; hovuz mədənçisinin ona heç vaxt açıq ehtiyacı yoxdur və onu açmaq çıxan nasazlığı təmir etmir. Gələn dinləyicilər və çıxan sessiyalar əks güvən fərziyyələri olan əks rollardır. Mədənçinin konfiqurasiyasında heç nə bu portu bağlamır, ona görə bağlı port bildirdiyi heç bir xətanı izah edə bilməz. Node-un əlçatanlığı üçün yazılmış məsləhət buna görə yalnız pay göndərməli olan hostda ictimai xidməti işlək saxlaya bilər.

Bir maşın həqiqətən hər ikisini edirsə, hər rolu öz giriş qərarı olan ayrı xidmət kimi qəbul et. Node-un dinləyicisi ictimai xidmətlərə tətbiq etdiyin siyasətin arxasına aiddir və mədənçinin sessiyası tüneli seçən çıxış siyasətinə aiddir. Hostun hansı rolu oynadığını qeyd et və bu dəyişdikdə digər rolun qaydalarını çıxar, çünki qalmış icazə qaydası öz səbəbindən uzun yaşayır.

Hovuzun işi aldığını sübut et

Məşğul ventilyator və artan hashrate mədənçinin hesabladığını göstərir, hovuza nəyinsə çatdığını deyil. Sübut müştərinin göndərmə sayğaclarında və ya hovuzun idarə panelindədir: qəbul edilmiş paylar, rədd edilmiş paylar və hər rəddə əlavə olunan səbəb. Bu rəqəmlər kənardan eyni görünən üç nasazlığı ayırır: sessiya yoxdur, kreditsiz sessiya və daim yenidən qoşulan sessiya. Hər hansı konfiqurasiyanı dəyişməzdən əvvəl onları oxu.

Ətraflı loglama ilə bir bağlantı cəhdinə bax və uğurlu olan son mərhələni qeyd et. Ardıcıllığın dayandığı mərhələ ətrafındakı hər hansı tək mesajdan daha faydalıdır:

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

Sonra müştərinin sabit pəncərə boyunca işləməsinə icazə ver və onun logundan hər iki nəticəni say. Hər sayğac üçün bir grep kifayətdir və onları eyni pəncərədə müqayisə etmək yavaş hovuzu pozulmuş yoldan ayırır. Yolu müştərinin yazdığı yerə uyğunlaşdır, çünki iki sayma yerdən asılı deyil:

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

Bir qayda tünel hər düşəndə birbaşa hovuz bağlantısını qadağan edirsə, bunu hovuz son nöqtəsində açıq blok kimi ifadə et. Fiziki əlaqə üzərindən səssizcə yenidən cəhd edən müştəri mədənçilik etməyə davam edəcək və bu qaydanı pozmağa davam edəcək, status ekranı isə bunu qeyd etməyəcək. Qaydanı tüneli bilərəkdən salmaqla və hovuz portuna ümumiyyətlə çatmağın mümkün olmadığını təsdiqləməklə sına.

Əlaqəli məqalələr