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
TMCI> PLUGLOAD:U:/http://sitio.com/CustomPlugin.jar

#Carga de un plugin no oficial utilizando una clave Freenet con la letra K
TMCI> PLUGLOAD:K:SSK@…………..

 

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.