OpenWRT en Huawei 553: LuCi Samba FTP MLDonkey Transmission Wifi
rtorrent, etc.
« : 08-06-2011, 13:46 (Mircoles) »
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 LuCi
Las 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
Código: 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 ...
Citar
vi /etc/config/network
Debemos editar el apartado de la lan
A modo de ejemplo os pongo mi configuración:
Citar
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:
Código: 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
Código: 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
Código: opkg update
Y ahora procedemos a instalar LuCI y todos los paquetes necesarios para su
funcionamiento
Código: 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
Código: /etc/init.d/uhttpd enable
Y ahora lo iniciamos
Código: /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/relayclient
Lo primero será instalar el paquete relayd así que:
Código: opkg update
opkg install relayd
Lo habilitamos para que se ejecute al inicio
Código: /etc/init.d/relayd enable
Paramos el firewall
Código: /etc/init.d/firewall stop
Y ahora lo desactivamos para que no se inicie automáticamente
Código: /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:
Código: vi /etc/config/wireless
Citar
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
Código: vi /etc/config/network
Añadimos un nuevo interface llamado wwan con protocholo dhcp
Quedándonos así:
Citar
config 'interface' 'wwan'
option 'proto' 'dhcp'
Ahora añadimos otro, este, tendrá el nombre stabridge:
Citar
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
Código: vi /etc/config/wireless
Más o menos así:
Citar
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:
Código: vi /etc/config/dhcp
Citar
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
Código: /etc/init.d/dchp restart
reconfiguramos el interfaz wifi
Código: wifi down; wifi
Para terminar, debemos volver a editar el fichero network.
Código: vi /etc/config/network
De nuevo, pongo el mío de ejemplo
Citar
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
Instalamos samba, el servidor de impresión y varios paquetes necesarios para el soporte
de dispositivos usb
Código: 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 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.
Código: reboot
Ahora vamos a empezar a crear la estructura de directorios para compartir/descargar.
En mi caso, el disco tienes 2 particiones, una en formato ntfs (con unas copias de
seguridad), a la cual llamaré /130 gigas, y otra en formato ext2 a la que le pondré el
nombre de 35 gigas
Creamos los directorios para el montaje
Código: 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)
Código: vi /etc/rc.local
Quedaría así
Citar
# 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
exit 0
Añadimos samba al inicio
Código: /etc/init.d/samba enable
Iniciamos samba
Código: /etc/init.d/samba start
Añadimos un usuario al sistema (necesario para compartir archivos)
Código: vi /etc/passwd
Citar
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
Código: passwd jar
Añadimos el password de samba para el usuario
Código: smbpasswd -a jar el_password_que_querais
Ahora debemos editar la configuración de las carpetas/directorios compartidos
Código: vi /etc/config/samba
Mi fichero de ejemplo
Citar
config 'samba'
option 'homes' '1'
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.
Código: 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')
Transmission
Para tener el ciente torrent transmission debemos instalar 3 paquetes
Código: opkg install transmission-daemon transmission-web transmission-remote
Acordaros previamente de actualizar la lista de paquetes
Código: 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)
Código: /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
Código: mkdir /etc/config/trans
vi /etc/config/transmission
Pongo el mío de ejemplo y comento después los parámetros más importantes
Citar
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
Código: /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).
El webui, es algo 'sencillito'. Si queremos tener un control total sobre transmission,
recomiendo instalar la siguiente aplicación: http://code.google.com/p/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 Faxes
Escogemos 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 FTP
Fácil.
Actualizamos la lista de paquetes
Código: opkg update
Instalamos pure-ftpd
Código: opkg install pure-ftpd
Lo configuramos
Código: vi /etc/config/pure-ftpd
Citar
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
Código: /etc/init.d/pure-ftpd enable
Lo ponemos en marcha
Código: /etc/init.d/pure-ftpd start
MLDonkey
MLDonkey (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.
Código: 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
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)
Código: vi /mnt/2gigas/start_mlnet
Adecuar las rutas a vuestro caso:
Código: #ruta donde tenemos mldonkey y sus ficheros de configuración
MAIN_FOLDER="/mnt/2gigas/mldonkey/"
#ruta a la carpeta lib (el fichero libraries.tar.bz2 descomprimimos
previamente
MY_LIBRARY_PATH="/mnt/2gigas/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/2gigas/mldonkey/" &&
/mnt/2gigas/mldonkey/mlnet
Guardamos el fichero y lo hacemos ejecutable
Código: chmod +x /mnt/2gigas/start_mlnet
Lanzamos screen y ejecutamos nuestro script
Código: screen
/mnt/2gigas/start_mlnet
Si todo va bien, veremos en pantalla algo así:
Código: 2012/04/12 15:29:55 [cO] Starting MLDonkey 3.1.0.CVS ...
2012/04/12 15:29:55 [cO] Language EN, locale ANSI_X3.4-1968, ulimit
for open files 1024
2012/04/12 15:29:55 [cO] raised ulimit for open files from 1024 to
4096
2012/04/12 15:29:55 [cO] MLDonkey is working in /mnt/2gigas/mldonkey
2012/04/12 15:29:55 [cO] creating new MLDonkey base directory in
/mnt/2gigas/mldonkey
2012/04/12 15:29:55 [cO] loaded language resource file
2012/04/12 15:29:55 [DNS] Resolving [OpenWrt] ...
2012/04/12 15:29:56 [DNS] Resolving [www.mldonkey.org] ...
2012/04/12 15:29:56 [DNS] Resolving [mldonkey.sf.net] ...
2012/04/12 15:29:56 [DNS] Resolving [www.mldonkey.net] ...
2012/04/12 15:29:56 [DNS] Resolving [www.google.com] ...
The core therefore is unable to get eDonkey serverlists and loading
.torrent files via dllink from websites is also impossible.
If you are using MLDonkey in a chroot environment you should
consider reading this article to get DNS support back:
http://mldonkey.sourceforge.net/Chroot
2012/04/12 15:29:56 [cO] Logging in /mnt/2gigas/mldonkey/mlnet.log
2012/04/12 15:29:59 [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í
Código: allowed_ips = [
"127.0.0.1";]
Y lo dejaremos así (repito, adecuar los parametros a vuestra caso/rango de red)
Código: 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
Input
Ahora 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
Código: screen -r
Para cerrar correctamente mldonkey, lo haremos desde el interfaz web: Botón Help+ y
despues KillCore
Para 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
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.
Vamos a ello.
Código: opkg install rtorrent tar screen coreutils coreutils-stat wget
opkg install lighttpd php5 php5-cgi lighttpd-mod-access 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)
Código: 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
Código: cd /root
vi .rtorrent.rc
Este es mi fichero, dónde he comentado algunas líneas.
Código: # 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 )
Código: cd /
mkdir /www1
Nos movemos al nuevo directorio y descargamos rutorrent
Código: cd /www1/
wget http://rutorrent.googlecode.com/files/rutorrent-3.4.tar.gz
Lo descomprimimos y después, borramos el fichero comprimido.
Código: tar -xvf rutorrent-3.4.tar.gz
rm rutorrent-3.4.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
Código: cd /www1/
htpasswd -c ./.htpasswd root
Ahora toca editar el fichero de configuración del servidor web (lighttpd)
Código: vi /etc/lighttpd/lighttpd.conf
Voy a ir comentándolo por partes
Código: # lighttpd configuration file
#
## modules to load
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules = (
"mod_access",
"mod_scgi",
# "mod_rewrite",
# "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_access",
"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
Código: ## 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.
Código: ## where to send error-messages to
server.errorlog = "/var/log/lighttpd/error.log"
Y aquí dónde se creará el log de errores.
Código: ## 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
Código: #### 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.
Código: #### CGI module
cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
La ruta de php-cgi
Código: 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"
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
Código: vi /etc/php.ini
Código: 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
Código: 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
Código: /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)
Código: /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:
Código: 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
Código: cd /www1/rutorrent
ln -s /usr/bin/stat stat
Y editar el config.php de rutorrent
Código: vi /www1/rutorrent/conf/config.php
Código: "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/Plugins
Instalad 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
Código: cd /www1/rutorrent/plugins
wget http://rutorrent.googlecode.com/files/diskspace-3.4.tar.gz
Lo descoprimimos/instalamos y después borramos el fichero comprimido
Código: tar -xvf diskspace-3.4.tar.gz
rm diskspace-3.4.tar.gz
Idem con erasadata y ratio
Código: wget http://rutorrent.googlecode.com/files/erasedata-3.4.tar.gz
tar -xvf erasedata-3.4.tar.gz
rm erasedata-3.4.tar.gz
wget http://rutorrent.googlecode.com/files/ratio-3.4.tar.gz
tar -xvf ratio-3.4.tar.gz
rm ratio-3.4.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:
Código: 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.
Un aviso, la versión actual disponible para openwrt NO SOPORTA enlaces magnet.
aria2 + webui-aria2
Aria2 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: Softonic
La última versión disponible (1.15.1) es la que está en los repositorios de OpenWRT.
Para instalarlo:
Código: opkg update && opkg install aria2
Ahora a crear el fichero de configuración
Código: vi /etc/config/aria2.conf
Citar
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
Código: 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: http://ubuntuone.com/0b384ZfyQc0SgePdJJQlh4 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.
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)