Una característica interesante (y bastante útil en algunos casos) es la capacidad que tiene FreeNet de permitir que clientes que no utilizan interfaces X11 puedan acceder a la configuración del nodo e interactuar con sus valores desde una consola de texto estándar (estilo UNIX). Este interprete es conocido como Text Mode Client Interface (TCMI). Desde esta herramienta es posible hacer cosas como subir contenidos y consultar diferentes tipos de claves en FreeNet.
Por defecto en FreeNet esta característica se encuentra desactivada, sin embargo es fácil activarla, solamente es necesario editar el fichero de configuración de FreeNet que se encuentra localizado en <DIRECTORIO_INSTALACION_FREENET>/freenet.ini en dicho fichero las lineas que deben incluirse son las siguientes:
console.enabled=true
console.directEnabled=true
Con estos valores será suficiente, sin embargo es posible cambiar otras propiedades que cuentan con un valor por defecto que en la mayoría de los casos no es necesario editar, sin embargo dichas propiedades (y su valor por defecto) son las siguientes
console.ssl false
console.bindTo 127.0.0.1,0:0:0:0:0:0:0:1
console.allowedHosts 127.0.0.1,0:0:0:0:0:0:0:1
console.port 2323
Como se ha dicho, los valores anteriores pueden ser modificados dependiendo de las necesidades particulares de cada usuario. Esto es todo lo que se necesita tener en cuenta para activar TCMI en un nodo FreeNet.
NOTA: Es importante anotar que para editar el fichero de configuración, el nodo de FreeNet debe encontrarse detenido, ya que en el caso de que se encuentre iniciado, el cambio de dicho fichero de configuración será detectado y posteriormente será revertido, por este motivo se debe detener el nodo, editar el fichero de configuración y finalmente iniciar FreeNet normalmente.
Una vez que la consola se ha activado, es posible acceder a ella utilizando Telnet, SSH, NetCat, Socat o cualquier herramienta que permita la conexión y el flujo de paquetes hacia la máquina en el puerto 2323 (valor por defecto)
El ejemplo más “habitual” suele darse utilizando directamente Telnet:
>telnet 127.0.0.1 2323 Trying 127.0.0.1… Connected to 127.0.0.1. Escape character is ‘^]’. Trivial Text Mode Client Interface ————————————— Freenet 0.7.5 Build #1405 rbuild01405…………………………………………… |
Sin embargo, el “problema” de este comando es que toda la información que se intercambie entre el cliente y el servidor puede ser “traceable” (suponiendo que el nodo de Freenet se encuentre en una máquina remota), en el caso de que el nodo de FreeNet se encuentre en una máquina distinta a la local, se puede utilizar SSH para el cifrado de la comunicación de la siguiente forma
>ssh adastra@localhost ‘nc 192.168.1.33 2323’
En este caso, se realiza la conexión con la consola de FreeNet utilizando SSH para el transporte seguro y NetCat para realizar la conexión con la máquina remota en el puerto 2323.
Una vez se han explicado los pasos para la activación y conexión de la consola de texto de FreeNet, se procede a explicar su funcionamiento.
USO DE LOS COMANDOS INCLUIDOS EN TCMI
Los comandos disponibles en TCMI se encuentran divididos en diferentes categorías, se encuentran aquellos comandos que permiten conocer el comportamiento del nodo y su configuración general, así como también existen comandos que permiten interactúan directamente con FreeNet del mismo modo que se ha explicado anteriormente con FProxy. El uso de estos comandos es muy simple, solamente es necesario indicar el comando y las opciones que recibe como parámetro (en el caso de que el comando pueda ser parametrizado). A continuación se indica el uso de estos comandos.
COMANDOS PARA ADMINISTRACIÓN LOCAL DEL NODO
Se trata de comandos útiles que permiten conocer los valores de configuración establecidos en el nodo de FreeNet, estos comandos son:
MEMSTAT
Permite conocer los diferentes segmentos de memoria utilizados por el Nodo (Memoria utilizada por el proceso de la máquina virtual de Java), así como también algunas de las propiedades físicas de la maquina sobre la que se ejecuta FreeNet.
TMCI> MEMSTAT Used Java memory:?407?MiB Allocated Java memory:?445?MiB Maximum Java memory:?455?MiB Running threads:?154 Available CPUs:?4 Java Version:?1.6.0_18 JVM Vendor:?Sun Microsystems Inc. JVM Version:?1.6.0_18 OS Name:?Linux OS Version:?2.6.32-5-amd64 OS Architecture:?amd64 |
STATUS
Enseña el estado actual del nodo FreeNet en ejecución, además también enseña las conexiones existentes con otros nodos de la red.
TMCI> STATUS DARKNET: opennet=false identity=QXv15QjD3VXM5bBo-VSgD2HEa4061nd~DA3rDbuA5X4 myName=adastra lastGoodVersion=Fred,0.7,1.0,1405 sig=03b1936655dfeffb390043081e2425433df49563e1ae07172a00f34d717ceb92,2619d5678668b474db205be5c3d3018852a0dc5baf8f315c0c082662745087ca version=Fred,0.7,1.0,1405 End BACKED OFF 50.11.80.225:2507 0.4284925110604586 Fred,0.7,1.0,1405 RT backoff: 1000 (0 ) bulk backoff: 16000 (3215) CONNECTED 99.37.4.21:63736 0.8473969559758158 Fred,0.7,1.0,1405 RT backoff: 1000 (0 ) bulk backoff: 1000 (0) DISCONNECTED 212.106.16.122:44276 0.8468642870409859 Fred,0.7,1.0,1405 RT backoff: 1000 (0 ) bulk backoff: 2000 (33114) NEVER CONNECTED 94.7.3.61:36690 -1.0 Fred,0.7,1.0,1405 RT backoff: 1000 (0 ) bulk backoff: 1000 (0) |
RESTART
Reinicia el nodo.
SHUTDOWN
Apaga el nodo
NAME
Cambia el nombre del nodo
TMCI> NAME: ADASTRA Node name currently: ADASTRA_FREENew name: ADASTRA |
UPDATE
Intenta actualizar el nodo de FreeNet a la ultima versión disponible, si es posible realizar la actualización.
INTERACTUANDO CON OTROS NODOS FREENET
Se trata los comandos necesarios para la interacción con FreeNet.
PEERS
Este comando retorna un listado con cada uno de los nodos con su correspondiente nombre, ip+puerto, identidad, localización, estatus y tiempo de inactividad.
TMCI> PEERS 110.175.181.81:36853 1SvPJbmT7u-isJKELoD9G7rqABcRXXWlgGLDFYO6uGc 0.43957276500519327 DISCONNECTING 11 121.83.100.35:8344 siGwnC0G6a8Cmg4uuKwYioH5hYPZvuXRZs1jcLsm3CI 0.3991823581669439 DISCONNECTING 14430 147.232.181.0:27395 jV4oL1O2UWyp5t2hsMgToEZHs1k7cNCrWJyRyHmO94I 0.44076615922472173 CONNECTED 0 173.74.95.141:1024 kNCfgEcWgcUo6bQVKxve–TCcNRe~RRJbB28CY5-s-E 0.43810587074659135 CONNECTED 0 186.224.43.135:4292 B04RwovBEqxDzOAB2Dg1avDbcrx3EycHgXRmXIA7l5g -1.0 NEVER CONNECTED 144 |
HAVEPEER
Reporta true/false si un un determinado nodo (especificando ip+port, identidad o nombre) se encuentra dentro de las conexiones existentes con el nodo local.
TMCI> HAVEPEER:89.230.67.63:25428 true for 89.230.67.63:25428 |
REMOVEPEER
Elimina un PEER de la lista peers conectados al nodo local
TCMI> REMOVEPEER:98.244.63.186:32231 |
ADMINISTRACIÓN DE PLUGINS
Del mismo modo que en entradas anteriores se ha utilizado FProxy para la administración de plugins en FreeNet, también es posible hacer las mismas operaciones desde TCMI utilizando los siguientes comandos.
PLUGLIST
Con este comando es posible listar todos los plugins que se encuentran instalados y cargados en el nodo
TMCI> PLUGLIST ID: «pplugins.Library.Main_899933215», Name: class plugins.Library.Main, Started: Thu Jan 12 14:45:28 CET 2012 ID: «pplugins.KeyUtils.KeyUtilsPlugin_239468736», Name: class plugins.KeyUtils.KeyUtilsPlugin, Started: Thu Jan 12 14:45:31 CET 2012 ID: «pplugins.ThawIndexBrowser.ThawIndexBrowser_1356841826», Name: class plugins.ThawIndexBrowser.ThawIndexBrowser, Started: Thu Jan 12 14:45:31 CET 2012 ID: «pplugins.UPnP.UPnP_2103044750», Name: class plugins.UPnP.UPnP, Started: Thu Jan 12 14:45:31 CET 2012 ID: «pplugins.WebOfTrust.WebOfTrust_1830942291», Name: class plugins.WebOfTrust.WebOfTrust, Started: Thu Jan 12 14:45:34 CET 2012 ID: «pplugins.Freetalk.Freetalk_767750569», Name: class plugins.Freetalk.Freetalk, Started: Thu Jan 12 14:46:51 CET 2012 |
PLUGLOAD
Permite cargar un plugin oficial o no oficial en el nodo local, permite indica el nombre del plugin (en el caso de que sea un plugin oficial) un fichero en el sistema de archivos, una clave FreeNet o una dirección HTTP en internet. Cada una de estas opciones viene declarada de una “letra” que permite especificar el tipo de “carga” que se realizará.
#Carga de un plugin Oficial con la letra O TMCI> PLUGLOAD:O:Freemail#Carga de un plugin no oficial directamente desde el sistema de ficheros local con la letra F TMCI> PLUGLOAD:F:/home/adastra/CustomPlugin.jar #Carga de un plugin no oficial directamente desde Internet con la letra U #Carga de un plugin no oficial utilizando una clave Freenet con la letra K |
PLUGKILL
Permite descargar un plugin determinado de la instancia local. Solamente es necesario indicar el ID del plugin, el cual puede ser obtenido con el comando PLUGLIST
TMCI> PLUGLIST ID: «pplugins.Library.Main_899933215», Name: class plugins.Library.Main, Started: Thu Jan 12 14:45:28 CET 2012 ID: «pfreemail.FreemailPlugin_1563585891», Name: class freemail.FreemailPlugin, Started: Thu Jan 12 23:52:50 CET 2012 ID: «pplugins.WebOfTrust.WebOfTrust_1830942291», Name: class plugins.WebOfTrust.WebOfTrust, Started: Thu Jan 12 14:45:34 CET 2012 ………………………………………..TMCI> PLUGKILL:pfreemail.FreemailPlugin_1563585891 |
Hasta este punto se han explicado las principales características de TCMI, en la próxima entrada se hablará sobre como interactuar con FreeNet desde TCMI.
Buenos dias Adastra,
he intentado utilizar el comando HAVEPEER y REMOVEPEER de la interfaz TMCI y me da siempre false al comprobar la direccion IP+puerto de un peer que previamente habia comprobado con el comando PEERS, sabes porque podría ser?
Compré el libro que aparece en el margen del blog y no aclara esto que le comento y necesito saberlo porque estoy realizando el Trabajo Fin de Master acerca de Freenet. Si alguien puede ayudarme..
Muchas gracias.
Me gustaMe gusta