Perisian perlombongan mengekalkan satu soket terbuka ke satu alamat, dan setiap soalan tentang terowong, laluan dan kerja yang dikreditkan bergantung pada soket itu. Soket itu ialah sesi klien keluar ke titik hujung kolam, bukan pendengar yang menerima rakan sebaya. Penelusuran di bawah mengikutinya daripada empat nilai yang dikeluarkan kolam sehingga syer yang benar-benar direkodkan kolam, dan membiarkan perkhidmatan lain hos tidak terganggu. Setiap langkah menghasilkan jawapan yang boleh anda bandingkan, bukan tanggapan.

Mulakan daripada titik hujung yang benar-benar dikeluarkan kolam

Kolam memberi anda empat nilai yang membentuk seluruh kontrak: nama hos atau alamat, port, varian protokol dan rentetan akaun. Ambil daripada papan pemuka kolam atau mesej orientasi, bukan daripada tutorial untuk kolam lain. Terdapat serpihan serantau untuk perkhidmatan yang sama, jadi nama hos yang disalin daripada panduan lama masih boleh menyambung dan masih boleh mengkreditkan akaun yang anda tidak pernah mahu gunakan. Salin keempat-empat nilai itu sebagaimana adanya ke dalam konfigurasi perlombong, kerana rentetan akaun yang ditaip semula kehilangan pemisah.

Aliran yang anda halakan ialah yang dipanggil panduan pembangun Bitcoin sesi Stratum: sambungan TCP dua hala berterusan tempat kolam mengagihkan kerja dan perlombong memulangkan syer. Ini bukan aliran yang sama dengan sambungan rakan sebaya nod penuh atau penyegerakan rantaian dompet, dan melipat semuanya ke dalam satu kelas trafik ialah tempat kebanyakan kekeliruan bermula. Hanya yang pertama tergolong di bawah dasar ini.

Di tempat kolam menawarkan TLS, kekalkan pengesahan pelayan yang dikehendaki dokumentasinya. Terowong menyulitkan lonjakan daripada mesin anda ke pelayan VPN dan berakhir di situ; ia tidak menjamin siapa yang menjawab di sebelah sana. Kekalkan kedua-dua pemeriksaan, satu di setiap hujung, jika anda mahu sesi bertahan daripada pintu keluar yang dikompromi.

Lekatkan terowong pada proses, bukan pada isi rumah

Dua titik lekatan berfungsi: jalankan klien VPN di dalam ruang nama rangkaian yang digunakan perlombong, atau beri ruang nama itu gerbang yang membawa trafiknya ke dalam terowong. Kedua-dua susunan meletakkan sesi di laluan sebelum kolam melihatnya. Kegagalan biasa ialah klien di hos, perlombong dalam kontena dengan jambatannya sendiri dan laluan hos yang tidak pernah dirujuk kontena. Tetingkap klien kelihatan sihat sementara kolam merekodkan alamat rumah anda.

Periksa pengangkutan terowong itu sendiri sebelum anda mengehadkan apa-apa. Klien mesti mencapai pelayan melalui lapisan bawah, jadi dasar yang menangkap setiap paket juga menangkap paket yang akan membina terowong. Kemudian terowong tidak boleh bermula dan tiada apa-apa lain keluar juga. Pilih dengan ciri terowong terpisah klien apa yang masuk ke terowong; menyunting laluan lalai dengan tangan ialah cara lapisan bawah hilang.

Dengan dasar di tempatnya, baca jadual soket dalam ruang nama tempat perlombong berada. Aliran ke port kolam sepatutnya berada pada antara muka terowong, dan dua arahan menjawab soalan itu. Port di bawah ialah contoh; gantikan dengan yang dikeluarkan kolam.

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

Baca laluan dan penyelesai daripada konteks perlombong sendiri

Penghalalan dan penyelesaian nama adalah mengikut ruang nama, jadi pemeriksaan yang dijalankan dalam shell biasa menggambarkan mesin yang salah setiap kali perlombong berada dalam kontena. Masuk ke ruang nama dahulu, kemudian tanya antara muka mana yang akan membawa paket ke alamat kolam dan penyelesai mana yang akan menjawab untuk nama hosnya. Jawapan hos tidak berpindah, dan jurang antaranya ialah sumber biasa tuduhan yang salah tempat.

Namakan antara muka yang anda dapat: terowong bermakna sesi berada di laluan yang dimaksudkan, manakala pautan fizikal bermakna sesuatu peraturan padan lebih awal daripada yang anda jangkakan. Panjang awalan menentukan dahulu, kemudian metrik, kemudian peraturan dasar, jadi jadual dengan beberapa entri lalai tidak menggandakan paket, ia hanya kalah.

Penyelesai gagal berasingan daripada laluan. Terowong yang menulis semula /etc/resolv.conf boleh membiarkan ruang nama menunjuk kepada penyelesai yang hanya boleh dicapai dari dalam terowong, yang gagal sebelum sebarang jabat tangan TCP berlaku. Selesaikan nama hos kolam di dalam ruang nama dan bandingkan dengan alamat yang diterbitkan. Jika carian tamat masa atau memulangkan sesuatu yang lain, betulkan penyelesaian sebelum menyentuh laluan.

Asingkan klien kolam dan pendengar nod

Port 8333 ialah port rakan sebaya Bitcoin Core, tempat nod penuh mendengar sambungan masuk; perlombong kolam tidak pernah memerlukannya terbuka, dan membukanya tidak membaiki kegagalan keluar. Pendengar masuk dan sesi keluar ialah peranan bertentangan dengan andaian kepercayaan bertentangan. Tiada apa-apa dalam konfigurasi perlombong mengikat port itu, jadi port tertutup tidak boleh menjelaskan sebarang ralat yang dilaporkannya. Nasihat yang ditulis untuk ketercapaian nod oleh itu boleh membiarkan perkhidmatan awam berjalan di hos yang sepatutnya hanya menghantar syer.

Jika satu mesin benar-benar melakukan kedua-duanya, layan setiap peranan sebagai perkhidmatan sendiri dengan keputusan aksesnya sendiri. Pendengar nod tergolong di sebalik dasar yang anda gunakan pada perkhidmatan awam, dan sesi perlombong tergolong dalam dasar keluar yang memilih terowong. Catat peranan yang dimainkan hos dan buang peraturan peranan lain apabila itu berubah, kerana peraturan kebenaran yang tertinggal hidup lebih lama daripada alasannya.

Buktikan bahawa kolam menerima kerja itu

Kipas sibuk dan hashrate yang meningkat menunjukkan perlombong sedang mengira, bukan bahawa sesuatu telah sampai ke kolam. Bukti terletak pada pembilang penghantaran klien atau pada papan pemuka kolam: syer diterima, syer ditolak dan sebab yang dilampirkan pada setiap penolakan. Angka-angka itu memisahkan tiga kegagalan yang kelihatan sama dari luar: tiada sesi, sesi tanpa kredit dan sesi yang terus menyambung semula. Bacalah sebelum mengubah sebarang konfigurasi.

Perhatikan satu percubaan sambungan dengan log terperinci dan catat peringkat terakhir yang berjaya. Peringkat tempat urutan berhenti lebih berguna daripada mana-mana mesej tunggal di sekelilingnya:

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

Kemudian biarkan klien berjalan untuk tetingkap tetap dan kira kedua-dua hasil daripada lognya. Satu grep setiap pembilang sudah memadai, dan membandingkannya pada tetingkap yang sama memisahkan kolam perlahan daripada laluan rosak. Laraskan laluan ke tempat klien anda menulis, kerana kedua-dua kiraan tidak bergantung pada lokasi:

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

Jika sesuatu peraturan melarang sambungan kolam terus setiap kali terowong jatuh, nyatakannya sebagai sekatan eksplisit pada titik hujung kolam. Klien yang diam-diam mencuba semula melalui pautan fizikal akan terus melombong dan terus melanggar peraturan itu, dan paparan statusnya tidak akan menyebutnya. Uji peraturan itu dengan menjatuhkan terowong dengan sengaja dan mengesahkan bahawa port kolam sama sekali tidak boleh dicapai.

Artikel berkaitan