El teu blog de Linux en català

El Messenger primitiu

Fa realment falta una infraestructura com The Microsoft Network (MSN) per a fer un xat privat*? Cal dependre dels seus servidors i usar el seu protocol? La resposta és no. Podeu implementar un messenger primitiu amb el programa netcat, i alhora establir manualment un socket TCP. Netcat és una potent utilitat de xarxa que permet molt més: pretenc amb aquest apunt només introduïr-vos-hi.

sudo apt-get install netcat

Es tracta de fer escoltar un port TCP arbitrari en la vostra màquina i connectar-hi amb una altra instància del netcat. Si, encerteu: ho podeu fer en un sol ordinador. Obriu una consola i feu que el netcat escolti:

nc -l 192.168.1.2 -p 1234

En efecte, 192.168.1.2 exemplifica la vostra IP de rang privat, i mil dos-cents vint-i-quatre el port arbitrari al qual escolteu. Obriu una altra pestanya o terminal i establiu el ditxós socket:

nc 192.168.1.2 1234

Proveu de transmetre una cadena de caràcters des de qualsevol de les consoles. El netcat envia el text cru a través del socket, que apareix instantàniament a l’altra consola.

Aquesta xorrada és més divertida si ho feu des de màquines diferents. Aleshores haureu de saber la IP de la màquina remota, la màquina remota haurà de saber la vostra (per a haver-hi comunicació bidireccional), si hi ha tallafocs haureu d’excloure qualsevol restricció (penseu que heu d’usar dos ports diferents) i si hi ha algun enrutador que fa masquerading (NAT), doncs haureu de dirigir aquest port cap una la màquina local concreta dins la subxarxa de destí.

I no, no m’ho pregunteu. Netcat no pot fer el No Admitir 😉

Salut!

* Privat si, però gens segur…

    • oriolsbd on 9 de març de 2009 at 14:50

    Reply

    Ei, aquesta és de les que m’agraden! Ja ho provaré a casa! 🙂

    Per cert, per a fer-lo segur, es pot fer tunneling a través de ssh?

    • jordi on 9 de març de 2009 at 20:11

    Reply

    Si, és molt fàcil.

    Primer de tot, hem de tenir el dimoni d’SSH funcionant (tant a la màquina local com a la remota):

    sudo apt-get install ssh

    I l’exemple és útil per a una connexió únicament local. Fem el túnel:

    ssh -R localhost:1234:localhost:5678 usuari@localhost

    Aquest és un túnel SSH amb un extrem al port 1234/tcp i l’altre al port 5678/tcp. Aleshores, usem el netcat per a escoltar al segon i connectar-se al primer, en un altre terminal

    nc -l localhost -p 5678

    I en un tercer

    nc localhost 1234

    I ja el tenim.

    • oriolsbd on 10 de març de 2009 at 18:27

    Reply

    Gràcies. 🙂

    • guillem on 10 de març de 2009 at 21:36

    Reply

    Jo ja ho he utilitzat per xatejar amb el meu germà, és un passada Jordi! 😀

    Si ho voleu fer servir entre dos ordinadors de la xarxa local és tan fàcil com que un escolti, i l’altre parli.

    Persona-A

    nc -l -p 4000

    El teu àmic que està a dins de la teva xarxa local (Persona-B)

    nc ip-persona-A 4000

    Així, amb una sola finestra podeu parlar els dos, però és engorròs perquè quan un esciu i tu estàs escrivint et superposa el teu text amb el seu. El més recomanable és obrir una nova terminal d’us exclusiu per escoltar el teu amic a través d’un port determinat i fer que el teu àmic et parli a través d’aquest port. I llavors que el teu àmic obri un a altra terminal per escoltar-te a través d’un altre port i que tu li parlis a través d’aquest port. Així tu només utilitzes una terminal per parlar amb el teu àmic i l’altra per rebre els seus missatges. Espero explicar-me bé 🙂

    Recordeu que usant l’idioma netcat, com que és un programa molt educat, primer s’ha d’escoltar perquè et puguin parlar 😉

Deixa un comentari

Your email address will not be published.