PC de casa sense obrir ports: pas a pas amb WireGuard
Per accedir al PC de casa sense obrir ports calen dos equips que surtin a Internet i es trobin a través d'un punt de coordinació, en lloc d'un que esperi connexions entrants. Això és el que fa una xarxa privada de malla amb WireGuard: cada equip rep una adreça fixa 100.64.x.x i es veuen entre ells siguin on siguin.
Per què obrir el port 22 o el 3389 al router és un risc
Un port obert al router és un servei a l'escolta per a qualsevol que escanegi la teva IP pública, i les IP residencials s'escanegen de manera contínua. SSH al 22 rep intents de contrasenya des del primer minut; l'escriptori remot de Windows al 3389 ha estat durant anys una de les portes d'entrada habituals del ransomware. Canviar el número de port només retarda l'escaneig. A més cal una IP pública fixa o un DNS dinàmic, i mantenir al dia el servei exposat, perquè qualsevol fallada que tingui és explotable des de fora.
CGNAT: per què redirigir ports ni tan sols funciona en moltes fibres
Amb CGNAT, el teu operador comparteix una sola IPv4 pública entre diversos abonats i l'adreça que veus al router és dins de 100.64.0.0/10, l'espai compartit de la RFC 6598. Un paquet entrant adreçat a aquella IP pública no sap a quin abonat anar, així que la redirecció de ports que configuris al router no rep mai res. La sortida és invertir el sentit: que el PC de casa iniciï ell la connexió cap enfora i la mantingui oberta. És exactament el que fa un node de xarxa de malla, i per això funciona igual amb IP fixa, dinàmica o CGNAT.
Obrir ports, VPN al router o xarxa de malla: què exposa cada opció
| Opció | Què queda exposat a Internet | Funciona darrere de CGNAT? | Què mantens tu |
|---|---|---|---|
| Redirigir el port 22 o 3389 | El mateix servei (SSH o RDP), a qualsevol escàner | No | IP fixa o DNS dinàmic i els pegats del servei exposat |
| Servidor WireGuard al router | Un port UDP, sense credencials per endevinar | No, sense IP pública pròpia | Les claus de cada client, el router i el DNS dinàmic |
| Xarxa de malla (prialo) | Cap port entrant a casa | Sí, per STUN i relay | Res a casa; el pla de control, si l'autoallotges |
Pas a pas: unir el PC de casa i el portàtil a una xarxa privada prialo
El recorregut complet són cinc passos i cap no toca el router. Avui es fa amb el paquet autoallotjat i el client de línia d'ordres a Linux o macOS; les apps de Mac i iPhone són en revisió d'Apple i el client de Windows és una versió primerenca, sense instal·lador ni signatura. Si prefereixes no muntar servidor, el servei allotjat donarà el mateix resultat tan bon punt les apps estiguin disponibles.
- Pla de control: en un VPS Linux amb Docker, descarrega el paquet autoallotjat de prialo, copia .env.example a .env amb els tres secrets i arrenca amb docker compose up -d. Obre al tallafoc 50051/tcp, 4430/tcp i 3478/udp; mai el 8080.
- Pin TLS: llegeix l'empremta del servidor amb docker compose logs prialo-server | grep -oE 'sha256:[0-9a-f]{64}' | sort -u. N'ha de sortir una sola; copia-la per un canal que ja sigui teu, mai per l'enllaç que vols protegir.
- Clau d'alta: crea una clau d'un sol ús des de dins del contenidor contra l'API d'administració (POST /api/v1/auth/preauth-keys amb reusable:false). Una clau per equip; les claus caduquen i es poden revocar.
- PC de casa: instal·la el node com a servei amb l'ordre de sota. prialo status ha de dir «Control: tls, pinned» i mostrar una IP dins de 100.64.0.0/10; prialo ip la imprimeix sola.
- Portàtil o mòbil: repeteix la instal·lació amb una altra clau d'alta. Des d'aleshores ssh [email protected] (la IP que t'ha donat prialo ip al PC) funciona des de qualsevol xarxa, i un client SSH al mòbil hi arriba per la mateixa adreça.
sudo PRIALO_AUTH_KEY='<clau d'alta>' prialo install \
--server=control.exemple.cat:50051 \
--relay=control.exemple.cat:4430 \
--tls-pin=sha256:<empremta>
RDP, SSH i fitxers per la xarxa privada: què canvia i què no
Dins de la malla, el PC de casa es fa servir igual que a la xarxa local: ssh a la seva 100.64.x.x, escriptori remot a 100.64.x.x:3389 o fitxers per SMB, sense tocar la configuració de cada programa. El que canvia és que cap d'aquests serveis ja no escolta a Internet: només els equips de la teva xarxa hi arriben, i cadascun s'identifica amb la seva clau WireGuard, no amb una contrasenya. Quan els dos equips aconsegueixen parlar-se en directe, la latència és la del camí més curt; si l'operador ho impedeix, el relay del teu servidor reenvia els paquets xifrats, i llavors una sessió SSH gasta força menys d'1 MB per hora i una d'escriptori remot entre 0,5 i 1 GB per hora.
Preguntes freqüents
Puc accedir al PC de casa sense obrir ports si tinc CGNAT?
Sí. Amb CGNAT la redirecció de ports no funciona perquè la IP pública es comparteix amb altres abonats, però una xarxa de malla no necessita connexions entrants: el PC de casa surt ell cap al pla de control i, si no hi ha camí directe, el relay reenvia el trànsit xifrat.
Necessito IP fixa o DNS dinàmic per a la xarxa privada?
No. La xarxa privada no depèn de la teva IP pública: cada equip rep una adreça fixa 100.64.x.x dins de la malla i la conserva encara que canviï de wifi, d'operador o de país. L'únic nom DNS necessari és el del pla de control, que viu al VPS.
L'escriptori remot va més lent per la xarxa de malla?
L'escriptori remot per la xarxa de malla va a la velocitat del camí directe entre els dos equips quan WireGuard aconsegueix obrir-lo, que és l'habitual. Si passa pel relay, el límit és l'ample de banda del teu servidor; una sessió consumeix entre 0,5 i 1 GB per hora.
Què passa si perdo el pin TLS del servidor?
El pin TLS és la identitat del teu pla de control: cada node rebutja un servidor que no presenti aquella clau. Per això el fitxer control-tls.key es copia fora del host, xifrat, tan bon punt el servidor arrenca per primera vegada; sense aquesta còpia, perdre el servidor obliga a donar d'alta tots els equips.
Prefereixes el teu propi servidor? Guia del paquet autoallotjat de prialo