miércoles, 28 de noviembre de 2007

PCDescargas + MLDonkey

INSTALACION DE MLDONKEY EN UN PC VIEJO.

Esto es un manual de como rescatar un pc viejo y usarlo para hacer descargas de la red edonkey.
La ventaja principal y motivo del manual es que tu ordenador nuevo no se estropeara por estar todo el dia encendido y descargando.

Necesidades iniciales:
- Distribucion linux
- Funcionar con poca RAM

Soluciones adoptadas:
- Distribucion Damn Small Linux que necesita poquisima RAM y un ordenador poco potente. Que puede funcionar en modo grafico si nos logeamos, pero que arranca en modo texto. Ademas es "compatible" con debian y facilita las cosas.
-MLDonkey: mola porque corre como demonio y no necesita interfaz grafica. Ademas se podra controlar desde otro PC de la red.
-Una buena opcion para ampliar funciones del PC viejo (un P2P de torrents) seria TorrentFlux, pero es un poco mas pesado para el ordenador porque necesita: apache, PHP,.... tambien se puede optar por "ctorrent" que viene con DSL: En el futuro ampliare funciones de este PC.


INDICE
1)Instalamos DSL 4.0.
1.1) Instalando/activando otras aplicaciones
2)Instalamos mldonkey
2.1) Actualizando repositorios DSL
2.2) Convertimos DSL en debian (parcialmente)
3) Configuramos el nuevo disco duro y otras opciones de arranque <---Caso personal
4) Configuramos mldonkey: directorios, puertos, velocidad de descarga, etc...
4.1) Configurar equipos que pueden acceder a mldonkey.
4.2) Configurar velocidades de conexion
4.3) Activar las redes con las que funciona mldonkey
4.4) Configurar el puerto de edonkey
5) Configuramos el calendario para programar las descargas.
6) Enlaces interesantes:

1)Instalamos DSL 4.0 (con multiusuario).


1.1) Instalando/activando otras aplicaciones: ssh, betaftpd, cron

Habilitaremos ssh para tener acceso por consola desde otro ordenador y no necesitar más la pantalla/teclado/ratón. También activaremos betaftpd para tener acceso ftp al ordenador (nos da acceso a todo el pc!! cuidado!).
Solo habría que ejecutar esto para arrancar estos servicios:
sudo /etc/init.d/ssh start
sudo betaftpd
Pero podemos incluir estas ordenes en el arranque del ordenador, para que se activen los servicios al arrancar (véase el final de la sección 3).



2)Instalamos mldonkey
2.1)Actualizando repositorios DSL
Explicado perfectamente aqui:
http://www.damnsmalllinux.org/wiki/index.php/Installing_MyDSL_Extensions

Resumiendo:
Vamos a esta pagina y vemos los servidores (mirrors) que hay:
http://www.damnsmalllinux.org/download.html

Clicamos en algunonano /opt/.dslrc y comprobamos si funciona. Cuando encontremos uno que funcione, copiamos la direccion.

desde la consola hacemos (usuario dsl):
$ nano /opt/.dslrc
Y pegamos la direccion del servidor elegido. A mi me queda asi:
Mirror: gd.tuwien.ac.at/opsys/linux/damnsmall/
Protocol: http
2.2) Convertimos DSL en debian (parcialmente)

Total que necesitaremos convertir DSL en un debian funcional. Así que activaremos las librerias "gnu" y habilitaremos "apt"
Para ello hay que instalar los paquetes: gnu-utils.dsl y dsl-dpkg.dsl
Esta vez lo haremos descargandolos e instalandolos desde la consola (por variar, abajo pongo como es en la interfaz grafica). Una vez descargados:
$ sudo mydsl-load gnu-utils.dsl
$ sudo mydsl-load dsl-dpkg.dsl
En la interfaz grafica seria asi:
DSL>Apps>Tools> Upgrade to GNU
DSL>Apps>Tools> Enable Apt
Ahora actualizamos los datos de apt:
$ sudo apt-get update
De todas formas, la versión debian configurada por defecto es woody, que es arcaica y no tiene bittornado, así que cambiaremos los repositorios a una más nueva.

Editamos la lista de repositorios:
$ sudo nano /etc/apt/sources.list
Los comentamos todos (con una almohadilla: #) y ponemos el primero que veis. A mi me queda así:
deb ftp://ftp.es.debian.org/debian stable main contrib non-free
#deb http://mirror.aarnet.edu.au/debian oldstable main contrib non-free
#deb http://mirror.linux.org.au/debian oldstable main contrib non-free
#deb http://mirrors.usc.edu/pub/linux/distributions/debian oldstable main contrib non-free
Nota: Si este servidor no te funciona, o prefieres otro, aqui tienes una lista (recuerda que debes escribir las líneas en el formato apropiado de source.list):
http://www.debian.org/mirror/list
Ahora actualizamos los datos de apt otra vez (comprobando que funciona):
$ sudo apt-get update
Instalamos mldonkey (rompiendo el loop):
$sudo apt-get -o APT::Force-LoopBreak=1 install mldonkey-server


3)Configuramos el nuevo disco duro y otras opciones de arranque

Lo que quiero hacer es utilizar un segundo disco duro que acabo de instalar, para las descargas de mldonkey. La verdad es que gran parte de esto me lo habria ahorrado si hubiese configurado el disco antes de instalar mldonkey, pero no pude.

Creamos el directorio de montaje del disco
sudo mkdir /pepito
Le decimos donde debe montar hdc1
sudo nano /etc/fstab
Añadiendo la linea:
/dev/hdc1 /pepito ext3 defaults 0 2
Lo montamos
sudo mount /dev/hdc1 /pepito
Copiamos los archivos desde el directorio original de mldonkey (la opción -p hace que se conserven todos los permisos como están)
#cp -rp /var/lib/mldonkey /pepito

Configuramos el mldonkey para que corra en ese directorio:
#sudo nano /etc/default/mldonkey-server
MLDONKEY_DIR= /pepito/mldonkey
Añadimos el montaje al arranque:
# sudo nano /opt/bootlocal.sh
Añadiendo esto al final del fichero (faltaria un if para mejorar el codigo).

# He añadido esto para:
# - Montar de inicio /dev/hdc1
# - Borrar el mlnet.pid de haberlo
# - Reiniciar mldonkey-server
# - Habilitar de inicio: ssh, betaftpd


sudo mount -a
sudo rm /pepito/mldonkey/mlnet.pid
sudo /etc/init.d/mldonkey-server restart
sudo /etc/init.d/ssh start
sudo betaftpd




4) Configuramos mldonkey: directorios, puertos, velocidad de descarga, etc...

4.1) Configurar equipos que pueden acceder a mldonkey.

Paramos el demonio para poder editar downloads.ini
sudo /etc/init.d/mldonkey-server stop
Debemos configurar que ips tienen acceso al servidor mldonkey, para eso buscamos la cadena allowed_ips:

allowed_ips = [”127.0.0.1″; “192.168.1.0/24″; ]

Acá le estamos diciendo que se permiten las conexiones desde la maquina que es el servidor ( localhost : 127.0.0.1), tambien desde las maquinas que esten en el segmento de red 192.168.1.*, es decir desde la 192.168.1.1 hasta la 192.168.1.254, y por ultimo le podríamos decir que pueden conectarse desde cualquier direccion ip 0/0.

4.2) Configurar velocidades de conexion

Lo siguiente que deberíamos configurar son las velocidades de conexión del mldonkey.
Para poder tener una red usable, estos valores deberian ser minimos ( diferentes de cero … aca el cero significa sin limites ), claro que esto no nos permitiria descargar esos preciados archivos de una manera rapida, aparte de que no optimizariamos el uso de nuestra red.

De momento les sugiero poner esos valores en un punto minimo ( ya luego explicare como hacer para controlar dinamicamente el ancho de banda, o al menos casi :P )

max_hard_upload_rate = 1
max_hard_download_rate = 0

4.3) Activar las redes con las que funciona mldonkey

Lo basico seria activar el protocolo donkey ( enable_donkey = true ) y las descargas FTP y HTTP ( enable_fileTP = true ).
Esto ultimo, para hacer que el servidor se encargue de descargas esas ISO pesadas.

Creo que algunas no funcionan y el cliente bittorrent es lentisimo.
enable_overnet = false
enable_kademlia = false
enable_servers = true
enable_bittorrent = false
enable_donkey = true
enable_opennap = false
enable_soulseek = false
enable_gnutella = false
enable_gnutella2 = false
enable_fasttrack = false
enable_directconnect = false
enable_fileTP = true

EDONKEY: Hay que actualizarle los servidores que la cosa está chunga, tenemos que buscar un "servet.met" en internet y pasarselo por la interfaz web al mldonkey. (EL USUARIO POR DEFECTO ES admin).


4.4) Configurar el puerto de edonkey

Este paso solo es necesario si tienes un router, pero no si estas conectado directamente a internet, porque el edonkey ya te elige un puerto al azar.

La configuracion de los puertos esta en los archivos .ini de cada red. Para edonkey el archivo es:
/pepito/mldonkey/donkey.ini
Se puede cambiar editando ese archivo o desde la interfaz web:
http://127.0.0.1:4080/
user: admin
password: lo pusimos al instalar mldonkey.

Options->(menu desplegable): donkey -> ED2K_port
Tambien sera necesario entrar en el router y configurarlo para que te direccione el puerto que hallas elegido hacia la ip que tu ordenador tiene en tu red local (para saberla: sudo ifconfig). Buscad algo como "redireccion de puetos" o "NAT"



5) Configuramos el calendario para programar las descargas.
Comando: calendar_add hora "comando".
Notas: Un cero significa "sin limites". Usamos un 1 para pararlo. La velocidad de descarga estara configurada a 0, de modo que sera siempre la maxima que nos permita el upload (download = 3*upload, si upload es bajo, a partir de 10 ilimitado).
#telnet localhost 4000
>calendar_add 1 "set max_hard_upload_rate 0"
>calendar_add 11 "set max_hard_upload_rate 1"
Asi veremos como queda el downloads.ini y podremos añadir mas cosas de forma mas sencilla. El mio queda asi:
calendar = [
([
0;
1;
2;
3;
4;], [
11;], "set max_hard_upload_rate 1");
([
5;
6;], [
10;], "set max_hard_upload_rate 1");
([
1;
2;
3;
4;], [
1;], "set max_hard_upload_rate 10");
([
0;
5;
6;], [
2;], "set max_hard_upload_rate 10");]

También podemos hacer que MLDonkey se apague durante el día para que no fastidie en absoluto la red. Necesitamos instalar 'cron' y para ello hay un paquete de dsl:

wget http://distro.ibiblio.org/pub/linux/distributions/damnsmall/mydsl/system/cron30.dsl
sudo mydsl-load cron30.dsl
Abrimos el archivo de configuración y añadimos el directorio /etc/init.d al path:
sudo nano /etc/crontab
A mi me queda así:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/etc/init.d

# m h dom mon dow user command
25 6 * * * root test -e /usr/sbin/anacron || run-parts --report /etc/cr$
47 6 * * 7 root test -e /usr/sbin/anacron || run-parts --report /etc/cr$
52 6 1 * * root test -e /usr/sbin/anacron || run-parts --report /etc/cr$
#
Creamos dos scripts para arrancar y parar mldonkey. arrancaMLDonkey.sh y paraMLDonkey.sh
#!/bin/sh
date
sudo /etc/init.d/mldonkey-server restart

#!/bin/sh
date
sudo /etc/init.d/mldonkey-server stop
$ chmod a+x arrancaMLDonkey.sh
$ chmod a+x paraMLDonkey.sh
$ sudo mv arrancaMLDonkey.sh /usr/bin/
$ sudo mv paraMLDonkey.sh /usr/bin/

Abrimos el archivo de configuración de cron y añadimos las lineas con los scripts:

$ sudo crontab -e
0 13 * * 1-5 paraMLDonkey.sh # Parar entre semana a la 13:00
0 11 * * 6-7 paraMLDonkey.sh # Parar el fin de semana a las 11:00
0 23 * * 1-5 arrancaMLDonkey.sh # Arranca entre semana a las 23:00
55 23 * * 6-7 arrancaMLDonkey.sh # Arranca el fin de semana a las 23:55

Comandos del editor:
Escribir Insert
Dejar de escribir Esc
Introducir comando Esc, :comando
Salir sin grabar :q!
Salir grabando :exit





6) Enlaces interesantes:
Manual Instalar extensiones DSL
Mirrors_DSL
Mirrors Debian
Damn Small Linux distro
Instalar mldonkey sin repositorios (por si acaso a alguien le hace falta)
Configurar mldonkey
Configurar calendar
Manual crontab