Nessun peer in ingresso sul tuo nodo Bitcoin dietro una VPN?
I peer in uscita e una catena sincronizzata non provano la raggiungibilità in ingresso. Controlla la mappatura, il listener e il flag inbound prima di dare la colpa alla VPN.
Il tuo nodo è sincronizzato, la VPN dice connessa, e getpeerinfo mostra otto o dieci peer. Nessuno di loro ha inbound impostato su true. Questa combinazione è normale e non è un guasto: le connessioni in uscita provano che il nodo può raggiungere gli altri, e nulla in esse prova che qualcuno possa raggiungere te. Se l'obiettivo è un nodo che accetta connessioni P2P in ingresso tramite una VPN, devi testare quella direzione separatamente.
Segui il pacchetto dal peer al tuo listener
Il P2P in ingresso è una catena di quattro cose, e si rompe all'anello più debole, non a quello più interessante.
other peer
-> provider's public address and assigned port
-> the permitted VPN mapping
-> Bitcoin Core's P2P listener
Il valore predefinito del P2P di Core sulla mainnet è 8333, ma il fornitore può darti una porta pubblica diversa e una destinazione diversa lato client. Annota l'indirizzo pubblico, la porta esterna e il punto in cui il fornitore consegna davvero il traffico. Poi conferma che il tuo piano e il tuo account consentano connessioni in ingresso, perché un indirizzo di uscita dedicato non è un contratto di port forwarding.
Questa distinzione coglie chi compra un IP statico aspettandosi la raggiungibilità. Il fatto che l'indirizzo sia stabile non dice nulla su se il fornitore inoltri una porta in ingresso verso la tua sessione.
Controlla il listener prima di controllare il fornitore
Core deve ascoltare sull'indirizzo e sulla porta a cui consegna la mappatura, e il firewall dell'host deve consentirlo. Se il nodo gira in un container o su un'altra macchina della LAN, anche il salto successivo e la sua rotta di ritorno fanno parte della catena.
Una regola di firewall locale non può creare una mappatura presso un fornitore che scarta i pacchetti in ingresso, e una mappatura del fornitore non può raggiungere un processo vincolato solo a loopback. Le due metà devono concordare sulla stessa tupla, ed è per questo che il primo passo è scrivere la tupla invece di indovinarla.
Mantieni l'endpoint annunciato coerente con la mappatura attiva. Un indirizzo statico non rende permanente una porta assegnata né il suo lease tra riconnessioni, quindi un endpoint pubblicato mesi fa potrebbe ora non puntare a nulla. Rileggi la pagina del fornitore dopo ogni riconnessione e confrontala con ciò che annuncia il tuo nodo. Se la porta si è spostata, il vecchio endpoint ora o non è di nessuno o è di qualcun altro.
Leggi il flag in ingresso, non il totale delle connessioni
Da un contesto RPC locale autorizzato, questa query di sola lettura elenca i peer:
bitcoin-cli getpeerinfo
La documentazione RPC definisce inbound come true per una connessione in ingresso e false per una in uscita. Guarda quel campo. Un totale superiore a dieci non prova nulla sulla direzione, e i totali e le categorie cambiano comunque con configurazione e versione.
Poi prova l'endpoint mappato dall'esterno con un nuovo controllo di raggiungibilità che sei autorizzato a eseguire, e vedi se compare un peer in ingresso corrispondente. Fai attenzione all'output che incolli in un thread di supporto: gli indirizzi dei peer sono dati di connessione di altre persone e non serve pubblicarli perché alla tua domanda venga data risposta.
Non risolverlo esponendo RPC
La documentazione RPC di Bitcoin Core avverte esplicitamente di non esporre l'interfaccia RPC su Internet pubblico. Le connessioni tra peer e l'amministrazione autenticata sono servizi diversi, e rendere il P2P raggiungibile pubblicando RPC scambia un problema di connettività con uno molto peggiore.
Se preferisci non dipendere affatto dal P2P in ingresso, un servizio onion è l'alternativa documentata, e ha i suoi prerequisiti: Tor disponibile, autenticazione di controllo configurata e impostazioni di ascolto che permettano di creare il servizio. Non compare solo perché per caso c'è una VPN in esecuzione.
Escludere Core dalla VPN è un terzo progetto, e legittimo per alcuni operatori, ma mette il traffico dei peer sulla tua connessione ordinaria. Non è accesso in ingresso tramite la VPN, e un router o un NAT a monte potrebbe comunque aver bisogno della propria voce consentita. Scegli quale dei tre stai davvero testando prima di cambiare qualsiasi altra cosa.