Para poder instalar OpenWRT necesitaremos PuTTY (si usamos windows) y descargar el firmware de la rama 'trunk' (las últimas versiones
'estables' aún no dan soporte para ester router).
Desde aquí
http://downloads.openwrt.org/snapshots/trunk/brcm63xx/ bajamos el fichero
openwrt-HW553-squashfs-cfe.bin Ahora para poder actulizar con el nuevo firmware, deberemos entrar en el modo 'rescate' del router: lo apagamos, pinchamos el botón de reset y
encendemos el router manteniendo pulsado el botón durante 30 segundos.
Configuramos la ip de nuestra tarjeta de red dentro del rango 192.168.1.x (podemos usar la 192.168.1.2 en adelante) con máscara de red
255.255.0.0 (no es necesario configurar puerta de enlace ni nada más).
Abrimos nuestro navegador y tecleamos la ip 192.168.1.1

Aquí cargaremos el firmware recién descargado. Damos a update y tras unos minutos, veremos como el router se reinicia (únicamente veremos
iluminado el led de power).

Ya tenemos operativo OpenWrt
Instalación de LuCiLas versiones del 'trunk' no incorporan interfaz web, así que será lo primero que instalemos.
A partir de ahora y con el fin de actualizar los paquetes, deberemos contar con conexión a internet. Conectamos un puerto LAN del HG553 al router adsl/cable que nos 'de' internet (lógicamente nuestro PC deberá seguir conectado también).
Configuramos PuTTY para una sesión de telnet a la ip 192.168.1.1 (puerto 23) y conectamos.
Si os fijáis, nos avisa de que hay que cambiar el password del usuario root. Lo hacemos
passwd
Nos pedirá el nuevo password, confirmación del mismo y listos.
Ya podemos cerrar la sesión telnet.
Ahora deberemos configurar PuTTY para una sesión de ssh a la ip 192.168.1.1 (puerto 22). Conectamos.
Lo primero será editar el fichero network. Así que ...
vi /etc/config/network
Debemos editar el apartado de la lan
A modo de ejemplo os pongo mi configuración:
config interface lan
option type bridge
option ifname eth1
option proto static
option ipaddr 10.0.0.94
option netmask 255.0.0.0
option gateway 10.0.0.1
option dns 8.8.8.8
Debeís cambiar las opciones marcadas en negrita adecuándolas a las de vuestra red.
Reiniciamos el router:
reboot
Ahora debemos adecuar los parametros de nuestra tarjeta de red, de acuerdo a nuestra configuración habitual.
En mi caso y tomado el ejemplo anterior como guía, mi pc quedaría con la ip 10.0.0.2, subred 255.0.0.0, puerta de enlace predeterminada 10.0.0.1 (mi router adsl) y dns principal 8.8.8.8
Volvemos a lanzar una sesión de PuTTY, pero teniendo en cuenta que ahora deberemos configurarlo para conectarse con la ipaddr (dirección ip asignada al HG553) que pusimos en el fichero network. En mi caso 10.0.0.94 (protocolo ssh y puerto 22).
Para comprobar que todo funcione bien, podemos lanzar un ping a google
ping www.google.com
Si la respuesta es correcta, seguimos adelante. De lo contrario algún parámetro habrá quedado mal configurado (toca repasar).
Podemos parar el comando ping con CONTROL + C
Actulizamos la lista de paquetes disponibles
opkg update
Y ahora procedemos a instalar LuCI y todos los paquetes necesarios para su funcionamiento
opkg install luci-mod-admin-full
opkg install luci-lib-fastindex
opkg install luci-theme-base
opkg install luci-theme-openwrt
opkg install uhttpd
Habilitados el 'demonio' del servidor web
/etc/init.d/uhttpd enable
Y ahora lo iniciamos
/etc/init.d/uhttpd reload
Ya tenemos OpenWRT instalado con LuCI, su interfaz web
Wifi.El driver incluido en el firm, es open source (aunque se podría instalar el propietario de broadcom).
Para tener un modo 'cliente transparente' deberemos configurarlo usando el método Pseudobridge (Routed Client with relayd):
http://wiki.openwrt.org/doc/recipes/relayclientLo primero será instalar el paquete relayd así que:
opkg update
opkg install relayd
Lo habilitamos para que se ejecute al inicio
/etc/init.d/relayd enable
Paramos el firewall
/etc/init.d/firewall stop
Y ahora lo desactivamos para que no se inicie automáticamente
/etc/init.d/firewall disable
Configuramos el sistema (timezone) de acuerdo a nuestra zona horaria.
Desde LuCi: Network / Wifi Advanced setting configuramos el country code a España.
después de esto podremos usar los canales 12 y 13.
Debemos editar el fichero wireles:
vi /etc/config/wireless
config 'wifi-device' 'radio0'
option 'type' 'mac80211'
option 'macaddr' '00:24:d2:15:1c:cd'
option 'hwmode' '11g'
option 'disabled' '0'
Cambiamos la opción de 'disabled' de 1 a 0. Con esto, acabamos de activar el wifi del router.
Editamos el fichero network
vi /etc/config/network
Añadimos un nuevo interface llamado wwan con protocholo dhcp
Quedándonos así:
config 'interface' 'wwan'
option 'proto' 'dhcp'
Ahora añadimos otro, este, tendrá el nombre stabridge:
config 'interface' 'stabridge'
option 'proto' 'relay'
option 'network' 'lan wwan'
Como veis, este nuevo interface es el que usa el paquete relayd que instalamos previamente.
Ahora toca editar el fichero de configuración wireless
vi /etc/config/wireless
Más o menos así:
config 'wifi-device' 'radio0'
option 'type' 'mac80211'
option 'macaddr' '00:24:d2:15:1c:cd'
option 'hwmode' '11g'
option 'disabled' '0'
option 'txpower' '20'
option 'country' 'ES'
option 'channel' '13'
option 'distance' '12'
config 'wifi-iface'
option 'device' 'radio0'
option 'network' 'wwan'
option 'mode' 'sta'
option 'ssid' 'ssid_de_la_red_a_conectar'
option 'encryption' 'psk'
option 'key' 'pass_de_la_conexion'
Lógicamente, debemos sustituir '13', 'ssid_de_la_red_a_conectar' y 'pass_de_la_conexion' por los datos oportunos.
Yo tengo configurada mi red en wpa-psk, si no es vuestro caso, deberéis cambiarlo también.
Ahora hay que desactivar el dhcp:
vi /etc/config/dhcp
config dhcp lan
option interface lan
option start 100
option limit 150
option leasetime 12h
option ignore 1
Option ignore debe estar en 1 (desactivado)
Ahora reiniciamos el servicio dhcp
/etc/init.d/dchp restart
reconfiguramos el interfaz wifi
wifi down; wifi
Para terminar, debemos volver a editar el fichero network.
vi /etc/config/network
De nuevo, pongo el mío de ejemplo
config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
config interface lan
option type bridge
option ifname eth1
option proto static
option ipaddr 10.0.1.94
option netmask 255.0.0.0
option gateway 10.0.0.1
option dns 8.8.8.8
config interface wan
option ifname eth0
option proto dhcp
config 'interface' 'wwan'
option 'proto' 'dhcp'
config 'interface' 'stabridge'
option 'proto' 'relay'
option 'network' 'lan wwan'
option 'ipaddr' '10.0.0.94'
En el
interface lan, la opción
ipaddr es la importante. Deberá estar en una subred distinta a la que tenéis actualmente. En mi caso ha pasado de ser 10.0.0.94 a 10.0.1.94
Y en el
inteface stabridge, opción
ipaddr podremos la que teníamos hasta ahora (10.0.0.94 para mí).
Esto en principio os puede resultar algo lioso (aunque en realidad no lo es si entendemos que hay una redirección de tráfico entre dos interfaces), pero es la forma de poder acceder desde 'detrás' del Huawei a la red principial y viceversa.
Rebotamos, esperamos unos minutos y todo debería funcionar. Si nos hemos equivocado en algo y no podemos acceder al router, probamos con la ip que asignamos en la interface lan (es posible que también tengamos que cambiar la ip de nuestra tarjeta de red).
Samba + swapInstalamos samba, el servidor de impresión y varios paquetes necesarios para el soporte de dispositivos usb además de swap-utils (para montar particiones swap)
opkg install luci-app-samba
opkg install luci-app-p910nd
opkg install kmod-usb-printer
opkg install kmod-usb2
opkg install kmod-usb-core
opkg install kmod-usb-ohci
opkg install usbutils
opkg install kmod-usb-storage e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1
opkg install swap-utils
opkg install ntfs-3g kmod-fs-ext4
Los dos últimos paquetes son para el soporte de ficheros ntfs y ext3/ext4. Deberéis escoger uno o ambos dependiendo del formato del disco duro/pendrive que conectéis al router.
Después de la instalación, rebotamos.
reboot
Ahora vamos a empezar a crear la estructura de directorios para compartir/descargar.
En mi caso, el disco tienes 3 particiones, una en formato ntfs (con unas copias de seguridad), a la cual llamaré /130 gigas, otra en formato ext2 a la que le pondré el nombre de 35 gigas y otra en formato swap (útil para cuando la memoria RAM del equipo se agota)
Creamos los directorios para el montaje de las dos primeras particiones
mkdir /mnt/130gigas
mkdir /mnt/35gigas
Editamos el fichero rc.local y añadimos las ordenes de montaje de las particiones (para que se monten al inico del sistema)
vi /etc/rc.local
Quedaría así
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
ntfs-3g /dev/sda1 /mnt/130gigas -o rw,sync
mount -t ext2 /dev/sda2 /mnt/35gigas -o rw,sync
swapon /dev/sda3
exit 0
Añadimos samba al inicio
/etc/init.d/samba enable
Iniciamos samba
/etc/init.d/samba start
Añadimos un usuario al sistema (necesario para compartir archivos)
vi /etc/passwd
root:PcJ8cToKAkeCk:0:0:root:/root:/bin/ash
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
daemon:*:65534:65534:daemon:/var:/bin/false
jar:*:1000:65534:jar:/mnt/130gigas:/bin/ash
Os pongo el contenido de mi fichero de ejemplo. La última línea, es la que debéis añadir/editar, sustituyendo mi usuario (
jar) por el vuestro, y la ruta del directorio del usuario (
/mnt/130gigas) por la vuestra.
Ponemos password al usuario
passwd jar
Añadimos el password de samba para el usuario
smbpasswd -a jar el_password_que_querais
Ahora debemos editar la configuración de las carpetas/directorios compartidos
vi /etc/config/samba
Mi fichero de ejemplo
config 'samba'
option 'homes' '0'
option 'name' 'Huawei'
option 'description' 'Huawei'
option 'workgroup' 'GRUPO_TRABAJO'
config 'sambashare'
option 'name' '130gigas'
option 'path' '/mnt/130gigas'
option 'read_only' 'no'
option 'writeable' 'yes'
option 'create_mask' '0777'
option 'dir_mask' '0777'
option 'guest_ok' 'no'
option 'users' 'jar'
config 'sambashare'
option 'name' '35gigas'
option 'path' '/mnt/35gigas'
option 'read_only' 'no'
option 'writeable' 'yes'
option 'create_mask' '0777'
option 'dir_mask' '0777'
option 'guest_ok' 'no'
option 'users' 'jar'
Comento:
option 'name' 'Huawei' (
este es el nombre de equipo que veremos en nuestra red)
option 'description' 'Huawei' (
una descripción del equipo)
option 'workgroup' 'GRUPO_TRABAJO' (
el grupo de trabajo de vuestra red)
Como se puede ver, yo comparto dos directorios/carpetas. En ambos los permisos son de lectura/escritura y sólo tiene acceso el usuario 'jar'
Rebotamos la máquina.
reboot
Accedemos a nuestra red, a ver si todo está bien y vemos el router. De ser así, al intentar entrar a los nuevos recursos compartidos se nos pedirá usuario (el usuario de sistema que creamos) y contraseña (la que pusimos con el comando 'smbpasswd jar el_password_que_querais')
TransmissionPara tener el ciente torrent transmission debemos instalar 3 paquetes
opkg install transmission-daemon transmission-web transmission-remote
Acordaros previamente de actualizar la lista de paquetes
opkg update
Lo primero, será añadir transmission para que se ejecute automáticamente cada vez que se inicie el sistema (esto es opcional, lógicamente)
/etc/init.d/transmission enable
Antes de iniciarlo por primera vez, vamos a editar el fichero de configuración de acuerdo a nuestras necesidades y a crear una carpeta para los ficheros de condiguración temporales de la sesión
mkdir /etc/config/trans
vi /etc/config/transmission
Pongo el mío de ejemplo y comento después los parámetros más importantes
config transmission
option enabled 1
option config_dir '/etc/config/trans'
option run_daemon_as_user root
option alt_speed_down 50
option alt_speed_enabled false
option alt_speed_time_begin 540
option alt_speed_time_day 127
option alt_speed_time_enabled false
option alt_speed_time_end 1020
option alt_speed_up 50
option bind_address_ipv4 '0.0.0.0'
option bind_address_ipv6 '::'
option blocklist_enabled false
option blocklist_url ''
option cache_size_mb 2
option dht_enabled true
option download_dir '/mnt/35gigas/torrents/incoming'
option download_queue_enabled true
option download_queue_size 4
option encryption 1
option idle_seeding_limit 30
option idle_seeding_limit_enabled false
option incomplete_dir '/mnt/35gigas/torrents/temp'
option incomplete_dir_enabled true
option lazy_bitfield_enabled true
option lpd_enabled false
option message_level 1
option open_file_limit 32
option peer_congestion_algorithm ''
option peer_limit_global 200
option peer_limit_per_torrent 50
option peer_port 51413
option peer_port_random_high 65535
option peer_port_random_low 49152
option peer_port_random_on_start false
option peer_socket_tos 0
option pex_enabled true
option port_forwarding_enabled true
option preallocation 1
option prefetch_enabled 1
option queue_stalled_enabled true
option queue_stalled_minutes 30
option ratio_limit 1.2
option ratio_limit_enabled true
option rename_partial_files true
option rpc_authentication_required false
option rpc_bind_address '0.0.0.0'
option rpc_enabled true
option rpc_password 'el_password_del_interfaz_web'
option rpc_port 9091
option rpc_url '/transmission/'
option rpc_username 'jar'
option rpc_whitelist '127.0.0.1,10.0.0.*'
option rpc_whitelist_enabled true
option scrape_paused_torrents_enabled true
option script_torrent_done_enabled false
option script_torrent_done_filename ''
option seed_queue_enabled false
option seed_queue_size 10
option speed_limit_down 100
option speed_limit_down_enabled false
option speed_limit_up 120
option speed_limit_up_enabled true
option start_added_torrents true
option trash_original_torrent_files false
option umask 18
option upload_slots_per_torrent 14
option utp_enabled true
option scrape_paused_torrents true
option watch_dir_enabled false
option watch_dir ''
option config_dir '/etc/config/trans' (directorio para los ficheros temporales de configuración y dónde se almaceran los archivos .torrent que estamos descargando)
option enabled 1
(deberéis modificar el 0 por un 1)option download_dir '/mnt/35gigas/torrents/incoming'
(directorio dónde se moverán los torrents terminados)option download_queue_enabled true (
este parámetro debe estar en true, de lo contrario los ficheros finalizados no se moverán a la carpeta anterior)option incomplete_dir '/mnt/35gigas/torrents/temp'
(directorio temporal)option incomplete_dir_enabled true
(debe estar en true)option peer_limit_global 200
(es el número total de peers/clientes)option peer_limit_per_torrent 50
(número de peers/clientes por torrent)option peer_port 51413
(puerto que usará transmission, deberá estar abierto en el router-adsl o router/neutro que os de salida a internet)option ratio_limit 1.2
(yo he puesto que al llegar al ratio 1.2 de compartición, los torrents se detengan)option ratio_limit_enabled true
(para que la opción anterior sea efectiva esta, debe estar en true)option rpc_enabled true
(debe estar en true)option rpc_password 'el_password_del_interfaz_web'
(este será el password que se nos solicitará cuando nos conectemos mediante el webui)option rpc_port 9091
(el puerto por el cual accederemos al webui)option rpc_username 'jar'
(el usuario del webui)option rpc_whitelist '127.0.0.1,10.0.0.*'
(aquí limitaremos el rango de ips que se podrán conectar al webui, yo he puesto el rango de mi red 10.0.0.*)option rpc_whitelist_enabled true
(debe estar en true para que el parámetro anterior sea efectivo)option speed_limit_down 100
(límite de velocidad de descarga)option speed_limit_down_enabled false
(como no quiero limitar la velocidad de bajada, pongo la opción en false)option speed_limit_up 120
(límite de subida)option speed_limit_up_enabled true
(como quiero limitar la subida, para no saturar la línea, pongo la opción en true)Una vez modificado, iniciamos transmission
/etc/init.d/transmission start
Para conectarnos al webui, abrimos en el navegador la dirección de nuestro router añadiendo 9091 como parámetro, tal que así
http://10.0.0.94:9091 (la ip de mi Huawei es la 10.0.0.94).
Introducimos usuario y contraseña y ya podemos añadir torrents (mediante el icono de la parte superior izquierda).
Opcional: como el webui que incorpora transmission es algo 'rudimentario', podemos instalar
transmission-control. Que es un interfaz web muchísimo más completo.
El proceso es sencillo.
Detenemos transmission:
/etc/init.d/transmission stop
Hacemos una copia del actual webui (antes de sustituirlo).
cp -R /usr/share/transmission/web /usr/share/transmission/antiguo_webui
Si no queremos que nos ocupe espacio en la limitada memoria del router, guardaremos en nuestros PC la carpeta antiguo_webui
Borramos la carpeta del webui
rm -R /usr/share/transmission/web
Ahora descargamos el nuevo interfaz web
cd /usr/share/transmission
wget http://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/transmission-control/transmission-control-v0.2_beta_20130128_full.tar.gz
Lo descomprimimos y posteriormente borramos el fichero comprimido
tar -xvzf transmission-control-full.tar.gz
rm transmission-control-full.tar.gz
Volvemos a poner en marcha transmission
/etc/init.d/transmission start
Para conectarnos al nuevo webui, abrimos en el navegador la dirección de nuestro router añadiendo
:9091/transmission/web/?lang=es como parámetro, tal que así
http://10.0.0.94:9091/transmission/web/?lang=es (la ip de mi Huawei es la 10.0.0.94).
Esta es el estupendo aspecto de transmission-control


Opcionalmente también podemos instalar
transmisson-remote-gui/ . Hay versiones para windows, linux y Mac.
Servidor de impresión.Entre los paquetes que instalamos al inicio, estaba el servidor de impresión. Si lo hicimios de forma correcta, ahora desde LuCi podremos verlo y configurarlo.
La ruta es
LuCi/Services/p910nd - Printer Server. Marcamos
enable y
Bidirectional Mode.
Ahora, para añadir la impresora a un equipo con WindowsXP (con win7 o Linux es muy similar):
Inicio/Configuración/Impresoras y FaxesEscogemos Agregar impresora. Nos saldrá el asistente, damos a siguiente.
Seleccionamos Impresora Local conectada a este equipo y desmarcamos Detectar e instalar mi impresora Plug & Play automáticamente. Damos a siguiente.
En esta nueva ventana seleccionamos Crear nuevo puerto y escogemos en el tipo de puerto Standar TCP/IP port. Siguiente.
Otra vez siguiente.
En nombre de impresora o direccion ip, ponemos la ip que hayamos asignado al router. Siguiente.
En la nueva ventana, escogemos en Tipo de dispositivo Personalizado y nos aseguramos (pinchando en configuración) que el puerto es el 9100 y que el protocolo esté marcado como sin formato (win7 indicada Raw).
Le damos a finalizar, y ahora escogemos (de entre la inmesa lista) nuestra impresora (marca y modelo).
Por último, podemos imprimir una página de prueba para comprobar el correcto funcionamento
Servidor FTPFácil.
Actualizamos la lista de paquetes
opkg update
Instalamos pure-ftpd
opkg install pure-ftpd
Lo configuramos
vi /etc/config/pure-ftpd
config pure-ftpd
option port '21'
option noanonymous '1'
option chrooteveryone '1'
option maxclientsperip '10'
option maxclientsnumber '4'
option peruserlimits '3:4'
option umask '133:022'
option authentication 'unix'
option enabled '1'
Añadimos el servicio al inicio
/etc/init.d/pure-ftpd enable
Lo ponemos en marcha
/etc/init.d/pure-ftpd start
MLDonkeyMLDonkey (
http://mldonkey.sourceforge.net/Main_Page) es un cliente p2p multiplataforma y multiprotocolo.
Tiene un consumo de recursos muy comedido, así que va realmente bien en equipos limitados en hardware (como un router).
Para que funcione en nuestro hg553 con OpenWRT, este, debe estar compilado con FPU Emulation. Los firmwares que podemos descargar del servidor de OpenWRT no están compilados con esta opción, así que, o bien compilamos nosotros mismos o nos bajamos alguna que sí la incluya (hay varias en este hilo).
Lo primero será instalar screen (el que quiera saber más:
http://es.wikipedia.org/wiki/Screen) que lo necesitaremos más adelante.
opkg update
opkg install screen
Ahora nos descargamos los binarios de mldonkey compilados para nuestra plataforma desde aquí:
Versión 3.1.0 Versión 3.1.3 Versión 3.1.5 (nueva)Una vez descomprimido veremos varias carpetas: full, minimal, mormal y normal_gd, que corresponden a los diferentes protocolos soportados. Como yo únicamente lo uso para la red edonkey (que incluye kademlia), siempre uso la versión
minimal (que además es la que menos recursos consume).
Así pues, esa será la carpeta que nos 'quedemos'. Dentro de ella, hay otra (mldonkey-distrib-3.1.0.CVS) que por comodidad renombraremos como mldonkey. Dentro de esta, debemos descomprimir el fichero libraries.tar.bz2.
Ahora, copiamos la carpeta mldonkey al pendrive o disco duro que tengas conectado a nuestro router (podéis usar winscp para hacerlo).
Abrimos putty y creamos en el disco duro un script para ejecutar mldonkey (yo lo he llamado start_mlnet)
vi /mnt/35gigas/start_mlnet
Adecuar las rutas a vuestro caso:
#ruta donde tenemos mldonkey y sus ficheros de configuración
MAIN_FOLDER="/mnt/35gigas/mldonkey/"
#ruta a la carpeta lib (el fichero libraries.tar.bz2 descomprimimos previamente
MY_LIBRARY_PATH="/mnt/35gigas/mldonkey/lib/"
LD_LIBRARY_PATH=$MY_LIBRARY_PATH:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
#este es el comando para ejecutarlo, en la primera parte 'apuntamos' el directorio de mldonkey
#y en la segunda parte al ejecutable en sí, que es mlnet
export MLDONKEY_DIR="/mnt/35gigas/mldonkey/" && /mnt/35gigas/mldonkey/mlnet
Guardamos el fichero y lo hacemos ejecutable
chmod +x /mnt/35gigas/start_mlnet
Lanzamos screen y ejecutamos nuestro script
screen
/mnt/35gigas/start_mlnet
Si todo va bien, veremos en pantalla algo así:
2015/03/04 11:16:10 [cO] Starting MLDonkey 3.1.5.CVS ...
2015/03/04 11:16:10 [cO] Language EN, locale ANSI_X3.4-1968, ulimit for open files 1024
2015/03/04 11:16:10 [cO] raised ulimit for open files from 1024 to 4096
2015/03/04 11:16:10 [cO] MLDonkey is working in /mnt/35gigas/mldonkey
2015/03/04 11:16:10 [Gettext] Loading language resource mlnet_strings.EN_ANSI_X3.4-1968
2015/03/04 11:16:10 [cO] loaded language resource file
2015/03/04 11:16:10 [DNS] Resolving [OpenWrt] ...
2015/03/04 11:16:11 [DNS] Resolving [www.mldonkey.org] ...
2015/03/04 11:16:11 [cO] Logging in /mnt/35gigas/mldonkey/mlnet.log
2015/03/04 11:16:17 [dMain] Core started
Es posible que la primera vez que lo ejecutemos tarde algo en 'responder' (cuando vemos la última línea que dice [dMain] Core started) ya que debe crear una serie de ficheros (de configuración).
Ya tenemos mldonkey en marcha, así que abrimos nuestro navegador favorito y escribimos la ip de nuestro router seguida de : y el puerto 4080 (en mi caso:
http://10.0.0.240:4080).
Como se puede ver por la captura de pantalla, nos avisa de un problema, y es que por defecto mldonkey viene preconfigurado para que únicamente se pueda conectar a él desde la ip de la máquina que se ejecuta

Volvemos a la ventana de putty y cerramos a las 'bravas' (con control + z) mldonkey.
Debemos editar el fichero
downloads.ini para añadir el rango de las ip's admitidas.
Está así
allowed_ips = [
"127.0.0.1";]
Y lo dejaremos así (repito, adecuar los parametros a vuestra caso/rango de red)
allowed_ips = [
"127.0.0.1";
"10.0.0.0-10.0.0.255";]
Guardamos el fichero y volvemos a arrancar mldonkey.
Por cierto, si en algún momento al ejecutarlo no véis
[dMain] Core started, sino que simplemente parece que la aplicación se cierra sin más, mirad el fichero
mlnet.log, seguro que os da alguna pista si hay algún problema

Volvemos al navegador, y si todo ha ido bien, debéis ver una pantalla como esta:

De acuerdo al aviso, lo primero será poner pass al usuario admin, así que escribimos
useradd admin este_es_el_password (poned el pass que os apetezca) y le damos a
InputAhora ya debería solicitarnos usuario y contraseña

Vamos a configurar las cosas más básica desde el interfaz web.
Pinchamos en
Options, después en
Net y habilitamos la red
kademlia.
Damos a Enter para hacer efectivos los cambios.

Ahora pinchamos en
Options y
SysInfo. Si os fijáis, en la parte inferior se os muestran los puertos que usa mldonkey. Estos son los 3 puertos que debéis abrir en vuestro router para tener un funcionamiento óptimo.

Además, en la misma pantalla os muestra mucha información util, como la ruta de los directorios icoming y temporal, etc.
Para no tener siempre abierto putty (ya que si lo cerramos sin más, mldonkey también se cerrará), y si hemos usado previamente screen, podemos recuperar y luego cerrar la sesión pulsando CONTROL + D, CONTROL + A, CONTROL + D.
Si en algún momento queremos recuperar la sesion de screen escribimos desde puttty
screen -r
Para cerrar correctamente mldonkey, lo haremos desde el interfaz web: Botón
Help+ y despues
KillCorePara terminar os recomiendo instalar (en el PC dónde penséis controlar la descargas) el gui Sancho:
http://sancho-gui.sourceforge.net/ Hay versiones para Linux, windows, Solaris, FreeBSD y OSX, y es bastante más 'amigable' (se puede poner en español) que el interfaz web.

Quedan muchas cosas por configurar (el usuario que verán los clientes edonkey, el ancho de banda, etc.), pero eso ya os lo dejo a vosotros

Más info sobre la nueva versión 3.1.5:
[NUEVO] Mldonkey 3.1.5 (mips)rtorrent (cliente torrent) + rutorrent (webui)De la wikipedia: rTorrent es un cliente de BitTorrent en modo texto capaz de rivalizar con otros clientes de interfaz gráfica; en especial por su bajo consumo de recursos.
A diferencia de transmission, rtorrent no incluye un webui. Así que para poder controlar el cliente desde un navegador, deberemos instalar un servidor web (el incluído con LuCi es demasiado 'sencillo'), php y diversas utilidades.
A día de hoy (12 de septiembre de 2014), las versiones de rtorrent que se pueden bajar del repositorio de la rama trunk de OpenWrt no funcionan correctamente. Así que lo mejor, antes de ponerse con esto, es editar la URL con la ruta de descarga de los paquetes por la de Attitude Adjustment.
El fichero a modificar es opkg.conf y hay que cambiar la primera línea por "src/gz barrier_breaker http://downloads.openwrt.org/attitude_adjustment/12.09/brcm63xx/generic/packages/" (después podéis volver a poner la otra).Vamos a ello.
opkg update
opkg install rtorrent tar screen coreutils coreutils-stat wget
opkg install lighttpd php5 php5-cgi lighttpd-mod-auth lighttpd-mod-cgi lighttpd-mod-scgi mini-httpd-htpasswd
Después de unos minutos de espera, vamos a crear en nuestro disco duro o pen, los 3 directorios que necesitamos (más adelante explico para que es cada uno)
mkdir /mnt/35gigas/rtorrent/
mkdir /mnt/35gigas/rtorrent/dl
mkdir /mnt/35gigas/rtorrent/sesion
Y creamos el fichero de configuración de rtorrent, que debe estar en la carpeta /root
cd /root
vi .rtorrent.rc
Este es mi fichero, dónde he comentado algunas líneas.
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.
# Minumum amount of peers to connect per torrent, if available.
min_peers = 20
# Minumum amount of peers to connect per torrent.
max_peers = 40
# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 20
# Maximum number of simultanious uploads per torrent.
max_uploads = 5
# Global download rate in KiB. "0" for unlimited.
# Máxima velocidad de descarga. "0" es sin límite
download_rate = 0
# Global upload rate in KiB. "0" for unlimited.
# Máxima velocidad de subida
upload_rate = 150
# Default directory to save downloaded files. Note it doesn't support
# space yet.
#
# Directorio por defecto para las descargas
directory = /mnt/35gigas/rtorrent/trabajo/
# Watch a directory for new torrents, and stop those that have been deleted.
#schedule = watch_directory,5,5,load_start=/opt/share/torrent/dl/*.torrent
#
# Directorio dónde rtorrent irá a buscar ficheros ".torrent"
# Todos los fichero que subamos a este directorio, será descargados automáticamente por rtorrent
schedule = watch_directory,5,5,load_start=/mnt/35gigas/rtorrent/dl/*.torrent
schedule = untied_directory,5,5,stop_untied=
# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M
# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#session = /opt/share/torrent/session
# Aquí se guardarán datos de la sesión actual
session = /mnt/35gigas/rtorrent/sesion
# The ip address reported to the tracker.
#ip = rakshasa
# The ip address the listening socket and outgoing connections is
# bound to.
#bind = rakshasa
# Port range to use for listening.
# Podemos definir un rango de puertos por ejemplo 8295-8299 o un único puerto 8299-8299
port_range = 8299-8299
# Start opening ports at a random position within the port range.
port_random = no
# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no
# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = yes
# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa
#
# Do not modify the following parameters unless you know what you're doing.
#
# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10
# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100
# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10
# Max number of files to keep open simultaniously.
#max_open_files = 128
# Number of sockets to simultaneously keep open.
#max_open_sockets = <no default>
# Example of scheduling commands: Switch between two ip's every 5
# seconds.
#schedule = "ip_tick1,5,10,ip=torretta"
#schedule = "ip_tick2,10,10,ip=lampedusa"
# Remove a scheduled event.
#schedule_remove = "ip_tick1"
# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"
# Aquí se definen los ratios. Yo prefiero usar el plugin 'ratio'
schedule = ratio,30,60,stop_on_ratio=200
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext
# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
# Si habiltamos el soporte DHT necesitaremos un puerto abierto para él
dht = on
# UDP port to use for DHT.
#
# Aquí el puerto para el DHT
dht_port = 6881
# Enable peer exchange (for torrents not marked private)
#
# Se usará para el intercambio de fuentes entre pares en trackers marcados como no privados
peer_exchange = yes
#
# Do not modify the following parameters unless you know what you're doing.
#
scgi_port = 127.0.0.1:5000
En el directorio raiz del router crearemos una nueva carpeta dónde se alojaran los ficheros para el servidor web.
Como ya tenemos un directorio www, crearemos otro con el nombre www1 (sí soy muy original

)
cd /
mkdir /www1
Nos movemos al nuevo directorio y descargamos rutorrent
cd /www1/
wget http://rutorrent.googlecode.com/files/rutorrent-3.5.tar.gz
Lo descomprimimos y después, borramos el fichero comprimido.
tar -xvf rutorrent-3.5.tar.gz
rm rutorrent-3.5.tar.gz
Ahora vamos a proteger el directorio /www1/ para que cuando se quiera acceder desde el navegador a rutorrent (o cualquier otro webui que podamos instalar) nos pida usuario y contraseña. En lugar de root (que no se refiere al usuario root del sistema) podemos poner el usuario que nos de la gana

cd /www1/
htpasswd -c ./.htpasswd root
Ahora toca editar el fichero de configuración del servidor web (lighttpd)
vi /etc/lighttpd/lighttpd.conf
Voy a ir comentándolo por partes
# lighttpd configuration file
#
## modules to load
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules = (
"mod_scgi",
# "mod_rewrite",
# "mod_access",
# "mod_redirect",
# "mod_alias",
"mod_auth",
# "mod_status",
# "mod_setenv",
# "mod_fastcgi",
# "mod_proxy",
# "mod_simple_vhost",
"mod_cgi",
# "mod_ssi",
# "mod_usertrack",
# "mod_expire",
# "mod_webdav"
)
Debemos descomentar (quitar el "#") de las líneas:
server.modules = (
"mod_scgi",
"mod_auth",
"mod_cgi",
) Es el último paréntesis que se ve debajo de # "mod_webdav"
Y las líneas se refieren a los modulos que vamos a usar con lighttpd
## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root = "/www1/"
Aquí le indicamos el directorio en el que estarán los documentos del servidor.
## where to send error-messages to
server.errorlog = "/var/log/lighttpd/error.log"
Y aquí dónde se creará el log de errores.
## bind to port (default: 80)
server.port = 8010
Como el puerto 80 lo usa el servidor web de LuCi, debemos indicar un nuevo puerto para lighttpd. En mi caso el 8010
#### proxy module
## read proxy.txt for more info
#proxy.server = (
# ".php" => (
# "localhost" => (
# "host" => "192.168.0.101",
# "port" => 80
# )
# )
#)
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable"
)
)
)
Debajo del proxy module (que he dejado en la cita de ejemplo), debemos indicar los parametros del scgi.server, que son necesarios para la comunicación entre rtorrent y el servidor web.
#### CGI module
cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
La ruta de php-cgi
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/www1/.htpasswd"
auth.require = ( "/" =>
(
"method" => "basic",
"realm" => "Introduce Usuario y Password",
"require" => "user=root"
)
)
Añadimos esto al final del fichero. Es dónde definimos el directorio protegido (para el que creamos el usuario y password previamente con htpasswd)
Si en lugar de root, habéis usado otro usuario, debéis modificarlo aquí: "user=root"
Nota importante: a partir de la versión 1.4.35 de lighttpd ha habido algunos pequeños cambios en el fichero de configuración. Tenéis el mío de ejemplo aquí: http://www.mediafire.com/view/3dc9vuz3k8v60cb/lighttpd.conf
Hemos terminado con el fichero lighttpd.conf, así que guardamos los cambios. Ahora toca modificar php.ini para indicar la ruta de la carpeta de nuestro servidor web
vi /etc/php.ini
doc_root = /www1
Para que no os perdáis, está a mitad del fichero en el apartado " Paths and Directories "
Guardamos el fichero.
Vamos a ir probando las cosas ...
Desde screen, arrancamos rtorrent
screen
rtorrent
Si todo ha ido bien, veremos una pantalla similar a esta.
(si en algún momento queréis cerrar rtorrent: Control + Q)

Ahora para recuperar putty, y como siempre que hayamos lanzado una aplicación desde screen: CONTROL+D, CONTROL+A, CONTROL+D
Habilitamos el nuevo servidor web para que se ejecute al inicio
/etc/init.d/lighttpd enable
Y lo reiniciamos para que aplique los cambios que hemos hecho (si da algún mensaje de error, es que hay algún módulo o parámetro mal configurado)
/etc/init.d/lighttpd restart
Ahora abrimos nuestro navegador y escribimos
http://ip:8010/rutorrent (dónde ip, es la ip del hg553)
Si lo hemos hecho bien, se nos pedirá usuario y contraseña, después de introducirlo veremos algo parecido a esta captura

En el registro se nos muestran las siguientes líneas:
WebUI started.
Webserver user can't access 'stat' program. Some functionality will be unavailable.
La primera, nos dice que el WebUI ha sido iniciado, en la segunda que no puede acceder al programa 'stat'.
Vamos a arreglarlo

Para evitar este aviso de error, hemos de crear un enlace simbólico a stat
cd /www1/rutorrent
ln -s /usr/bin/stat stat
Y editar el config.php de rutorrent
vi /www1/rutorrent/conf/config.php
"php" => '/usr/bin/php-cgi', // Something like /usr/bin/php. If empty, will be found in PATH.
"curl" => '', // Something like /usr/bin/curl. If empty, will be found in PATH.
"gzip" => '', // Something like /usr/bin/gzip. If empty, will be found in PATH.
"id" => '', // Something like /usr/bin/id. If empty, will be found in PATH.
"stat" => '/www1/rutorrent/stat', // Something like /usr/bin/stat. If empty, will be found in PATH.
Las líneas que debemos modificar son la primera y la última. Hay que indicar la ruta a php-cgi y a stat respectivamente.
Guardamos los cambios y recargamos la página del navegador.
El 'aviso' de stat habrá desaparecido

Ahora vamos a instalar unos cuantos plugins, que nos permitirán añadir funcionalidades a rutorrent.
Tenéis una lista completa con una pequeña descripción aquí:
http://code.google.com/p/rutorrent/wiki/PluginsInstalad sólo los que necesitéis, ya que cuantos más instalemos, más 'carga' innecesaria añadiremos al servidor web.
Yo uso: ratio, diskspace y erase data
Bajamos diskspace
cd /www1/rutorrent/plugins
wget http://rutorrent.googlecode.com/files/diskspace-3.5.tar.gz
Lo descoprimimos/instalamos y después borramos el fichero comprimido
tar -xvf diskspace-3.5.tar.gz
rm diskspace-3.5.tar.gz
Idem con erasadata y ratio
wget http://rutorrent.googlecode.com/files/erasedata-3.5.tar.gz
tar -xvf erasedata-3.5.tar.gz
rm erasedata-3.5.tar.gz
wget http://rutorrent.googlecode.com/files/ratio-3.5.tar.gz
tar -xvf ratio-3.5.tar.gz
rm ratio-3.5.tar.gz
Por último deberemos volver a moficar el fichero config.php de rutorrent para que nos muestre de forma correcta el espacio en disco:
vi /www1/rutorrent/conf/config.php
Sustituimos la línea "
$topDirectory = '/';" por "
$topDirectory = '/mnt/35gigas';"
Después de la instalación de los plugins, hay que recargar la página del navegador.
Ahora a disfrutarlo/configurarlo a vuestro gusto.
Se ha actualizado la versión disponible de rtorrent en el repositorio de OpenWrt (en la rama trunk) a la 0.9.3. Esta sí soporta enlaces magnet.aria2 + webui-aria2Aria2 es un programa de descarga de ficheros en línea de comandos. Es compatible con enlaces HTTP, FTP, BitTorrent y Metalink, y puede descargar más de un fichero a la vez usando todo el ancho de banda disponible. Fuente:
SoftonicLa última versión disponible (1.15.1) es la que está en los repositorios de OpenWRT.
Para instalarlo:
opkg update && opkg install aria2
Ahora a crear el fichero de configuración
vi /etc/config/aria2.conf
daemon=true
enable-rpc=true
rpc-listen-port=6800
rpc-listen-all=true
####### Directorio de descargas ##########
dir=/mnt/35gigas/aria2
#Directorio dónde se alojará el log de aria2
log=/mnt/35gigas/aria2/aria2.log
log-level=warn
dht-listen-port=6599
auto-save-interval=30
#seed ratio and seed time in minutes
seed-ratio=1.0
seed-time=1460
max-upload-limit=120K
event-poll=select
El puerto 6599 es el que usaremos para dht. Debemos abrirlo en el router principal para que tenga salida a internet.
Listos, ya podemos ejecutar aria2, y lo haremos indicándole la ruta del fichero de configuración
aria2c --conf-path /etc/config/aria2.conf
Para saber si está en marcha podéis usar top o htop (si es que lo habéis instalado)
Ahora vamos a proceder a instalar el webui.
Desde un navegador, nos vamos a la web del desarollador
https://github.com/ziahamza/webui-aria2 , pinchamos en downloads y luego en download as zip.
Descomprimimos el fichero, renombramos la carpeta a aria2web y lo copiamos con winscp dentro del subdirectorio /www1
Ahora, abrimos el navegador y ponemos en la dirección:
http://ip:8010/aria2web (dónde ip, es la ip del hg553)
Recordar, que igual que para acceder a rutorrent, nos pedirá user y pass.
IMPORTANTE: A lo largo del hilo, hay diferentes compilaciones del firmware para este router. Alguna de éllas ya incluyen LuCi, transmission, pure-ftp, etc. Así que es recomendable, antes de ponerse a actualizar el router, leer el hilo completo, ya que luego a la hora de instalar/configurar pueden ahorrarnos mucho tiempo (y algún que otro quebradero de cabeza)Para el que quiera ahorrarse algunos pasos, aquí tiene un par de compilaciones.33378: https://app.box.com/s/qo8v5m1vo2zq7ob2bxmo | SIN ADSL. Kernel 3.3.8. Driver wifi de Broadcom, transmission, cliente ntp, vpnc, crda, p910nd (servidor de impresion), soporte de sistema de ficheros ext4,fat,cifs(montar carpetas compartidas),soporte de tarjetas de sonido usb, usb, video4linux(camaras web, todos los modulos incluidos), modulo rt2800-usb para adaptadores wifi con chip Ralink, soporte para tarjetas realtek 8187,fdisk, swap-utils, bash,bzip2, usbutils, y Luci con: Tema adicional Bootstrap, Gestión de puntos de montaje, Configuración de LEDs, Gestión del servidor de impresora, Configuración de transmission, Configuración de dynamic ns, Configuración de samba, Configuración de openvpn, ushare,minidlna y los modulos para usar modems 3g |
r30875: http://www.mediafire.com/download.php?2h9bdylt4s9x1hv | SIN ADSL. Kernel 3.0.18.Tiene FPU emulation, LuCi, driver wifi de Broadcom, transmission, p910nd (servidor de impresion), soporte de sistema de ficheros ext4, samba, pure-ftp (servidor de ftp), wol, etc. |
Backport a Backfire: http://www.mediafire.com/download/qgbaegvsmbqobvc/backfire.openwrt-HW553-squashfs-cfe.bin | SIN ADSL. Kernel 2.6.32.27.Tiene FPU emulation, LuCi, driver wifi b43, transmission, p910nd (servidor de impresion), usb-storage, usb-storage-extras, samba, pure-ftp (servidor de ftp), wol, soporte para dispositivos wibi USB con chipset Ralink rt73, Zydas 1211 y Atheros AR9271 y AR7010, etc. |
Y por cierto, para el que use las compilaciones con el driver propietario de broadcom, la configuración del wifi que se comenta en este post, no es válida.
No hay que instalar relayd. Este driver conecta como 'cliente transparente' (en la misma subred del AP principal) sin ningún paquete adicional. Para configurarlo desde LuCi, activamos el wifi, escaneamos, nos unimos a la red, introducimos la clave, indicamos que el interface asociado es LAN y listos
(previamente, deberemos haber configurado el apartado LAN, en la misma subred del router principal, y poniendo la IP del mismo, como puerta de enlace y servidor DNS)