domingo, 24 de marzo de 2013

Instalar y configurar amule-daemon, para usar con emule en la raspberry

En esta entrada, voy a explicar como se configura el amule-daemon en una raspberry pi, pero se puede adaptar en general a cualquier distribución de linux basada en debian, como podría ser ubuntu. El usar la versión del amule en modo daemon permite que el servicio pueda ejecutarse sin tener cargado ningún entorno gráfico y suele ser mucho más liviano. Luego para conectarse y añadir enlaces de descarga, usaremos la interfaz web que proporciona o instalando un programa llamado amulegui, que como su nombre indica es un GUI del amule.



Lo primero que debemos hacer antes de instalar cualquier paquete, es actualizar el árbol de dependencias, para ello en raspbian, se hace así:


  • sudo apt-get install
A continuación, es aconsejable actualizar el sistema.

  • sudo apt-get -y upgrade
El parámetro -y , sirve para que acepte con yes a la pregunta si queremos instalar los paquetes. A continuación, sería recomendable reiniciar nuestro ordenador.

  • sudo reboot
Una vez tengamos la raspberry funcionando de nuevo, instalamos el amule-daemon

  • sudo apt-get install amule-daemon
Seguramente vamos a desear, que nuestro amule se inicie cada vez que la raspberry se ponga en marcha, para ello tenemos que editar como root el fichero /etc/default/amule-daemon.

  • sudo vim /etc/default/amule-daemon

En el fichero encontraremos una línea que pone:

# The init.d script will only run if this variable non-empty.
AMULED_USER=""

debemos poner un usuario, yo he puesto pi, cuando el script de inicialización en un futuro vea que la variable tiene un nombre y no está vacía, sabrá que tiene que iniciar el servicio.

Una vez hecho esto, es recomendable iniciar el servicio, para que en nuestro home, cree la carpeta oculta .aMule y dentro los diferentes ficheros de configuración.

  • sudo /etc/init.d/amule-daemon start
  • sudo /etc/init.d/amule-daemon stop

Lo iniciamos, para luego pararlo, ya que aún no está preparado para usarse.

A continuación tenemos que editar el fichero de configuración con el editor de texto que queramos, yo lo hago con el vim.

  • vim $HOME/.aMule/amule.conf
Y dentro de este fichero tenemos que modificar los parámetros a nuestro gusto por ejemplo, este es el mío.

[Statistics]
MaxClientVersions=0
[eMule]
AppVersion=2.3.1
Nick=http://www.aMule.org
NewVersionCheck=1
StartupMinimized=0
ConfirmExit=1
EnableTrayIcon=0
MinToTray=0
ToolTipDelay=1
VideoPlayer=
VideoPreviewBackupped=1
MaxDownload=0
MaxUpload=15
SlotAllocation=2
Port=5668
UDPPort=5663
Address=
MaxSourcesPerFile=300
MaxConnections=500
ConnectToED2K=1
ConnectToKad=1
UPnPEnabled=0
UPnPTCPPort=50000
Autoconnect=1
Reconnect=1
ShowOverhead=0
RemoveDeadServer=1
DeadServerRetry=3
Serverlist=1
AddServerListFromServer=0
AddServerListFromClient=0
Scoresystem=1
SmartIdCheck=1
SafeServerConnect=0
AutoConnectStaticOnly=0
ManualHighPrio=0
ICH=1
AICHTrust=0
AddNewFilesPaused=0
DAPPref=1
PreviewPrio=0
UAPPref=1
FullChunkTransfers=1
StartNextFile=0
StartNextFileSameCat=0
CheckDiskspace=1
MinFreeDiskSpace=1
AllocateFullFile=0
IncomingDir=/media/THOSIBAFAT/.aMule/Incoming
TempDir=/media/THOSIBAFAT/Temp
ShareHiddenFiles=1
StatGraphsInterval=3
StatsAverageMinutes=5
VariousStatisticsMaxValue=100
statsInterval=30
DownloadCapacity=300
UploadCapacity=100
MaxConnectionsPerFiveSeconds=20
FileBufferSizePref=16
QueueSizePref=50
ServerKeepAliveTimeout=0
3DDepth=5
AutoSortDownloads=0
ShowInfoOnCatTabs=1
ShowRatesOnTitle=0
VerticalToolbar=0
ShowPartFileNumber=0
SeeShare=2
IPFilterURL=http://sites.google.com/site/ircemulespanish/descargas-2/ipfilter.zip
IPFilterAutoLoad=1
FilterLevel=127
FilterLanIPs=1
ParanoidFiltering=1
IPFilterSystem=0
OnlineSignature=0
OnlineSignatureUpdate=5
OSDirectory=/home/pi/.aMule/
FilterMessages=1
FilterAllMessages=0
MessagesFromFriendsOnly=0
MessageFromValidSourcesOnly=1
FilterWordMessages=0
MessageFilter=
FilterComments=0
CommentFilter=
Language=
SplitterbarPosition=75
YourHostname=
DateTimeFormat=%A, %x, %X
AllcatType=0
ShowAllNotCats=0
SmartIdState=1
DropSlowSources=0
KadNodesUrl=http://emule-inside.net/nodes.dat
Ed2kServersUrl=http://sites.google.com/site/ircemulespanish/descargas-2/server.met?attredirects=0&d=1
StatColor0=4194304
StatColor1=16761024
StatColor2=8454016
StatColor3=53760
StatColor4=32768
StatColor5=8421631
StatColor6=200
StatColor7=140
StatColor8=16750230
StatColor9=12583104
StatColor10=8454143
StatColor11=0
StatColor12=8454016
StatColor13=53760
StatColor14=32768
TableOrderingServer=U:1:0,p:0:0,N:0:0
TableWidthsServer=N:150,A:140,P:25,D:150,p:25,U:116,F:45,r:60,f:40,S:40,V:80
TableOrderingDownload=N:0:0
TableWidthsDownload=a:30,N:260,Z:60,T:65,C:65,S:65,P:170,u:50,p:55,s:70,r:110,c:220,R:220
TableOrderingUploads=0 0, 
TableWidthsUploads=150,275,100,60,65,60,60,110,100,100,100
TableOrderingShared=N:0:0
TableWidthsShared=N:250,Z:100,Y:50,p:70,I:220,Q:100,A:100,T:120,R:100,P:120,C:120,D:220
TableOrderingSources=N:0:0
TableWidthsSources=N:260,D:65,S:65,U:65,P:170,V:50,q:55,O:110,F:200,R:200,m:100
TableOrderingPeers=N:0:0
TableWidthsPeers=N:260,D:65,S:65,U:65,s:65,A:170,V:50,Q:70,q:70,O:110,f:200,m:100
UDPEnable=1
StartNextFileAlpha=0
GeoIPEnabled=1
ShowVersionOnTitle=0
ShowMessagesInLog=1
AdvancedSpamFilter=1
MessageUseCaptchas=1
GeoLiteCountryUpdateUrl=http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
StatsServerName=Shorty's ED2K stats
StatsServerURL=http://ed2k.shortypower.dyndns.org/?hash=
[Browser]
DefaultBrowser=0
CustomBrowserString=
OpenPageInTab=1
[ExternalConnect]
UseSrcSeeds=0
ShowPercent=1
ShowProgressBar=1
AcceptExternalConnections=1
ECPassword= Aquí va la password que queremos
ECAddress=
ECPort=12345
UPnPECEnabled=0
IpFilterClients=1
IpFilterServers=1
UseSecIdent=1
TransmitOnlyUploadingClients=0
[SkinGUIOptions]
Skin=System:kde4.zip
[Razor_Preferences]
FastED2KLinksHandler=1
SRV_SPLITTER_POS=305
MAIN_X_POS=0
MAIN_Y_POS=0
MAIN_X_SIZE=1024
MAIN_Y_SIZE=724
Maximized=1
[WebServer]
Enabled=1
Port=4711
UPnPWebServerEnabled=0
WebUPnPTCPPort=50001
PageRefreshTime=120
UseGzip=1
UseLowRightsUser=0
Password=Aquñi va la password que queremos para la interfaz web
PasswordLow=
Template=default
Path=amuleweb
[Obfuscation]
IsClientCryptLayerSupported=1
IsCryptLayerRequested=1
IsClientCryptLayerRequired=0
CryptoPaddingLenght=254
CryptoKadUDPKey=1829164279
[Proxy]
ProxyEnableProxy=0
ProxyType=0
ProxyName=
ProxyPort=1080
ProxyEnablePassword=0
ProxyUser=
ProxyPassword=
[UserEvents]
[UserEvents/DownloadCompleted]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[UserEvents/NewChatSession]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[UserEvents/OutOfDiskSpace]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[UserEvents/ErrorOnCompletion]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[GUI]
HideOnClose=0
[GUI/TransferWnd]
Splitter=445
ShowClientList=1
[HTTPDownload]
URL_4=http://amule.sourceforge.net/lastversion
[PowerManagement]
PreventSleepWhileDownloading=0

Para tener correctamente configurado el emule, es importante prestar atención en especial a las variables que contienen los puertos. Estás son:

  • Port=5668   #Este es el que está en la sección [eMule] y es de tipo TCP
  • UDPPort=5663 # sección [eMule] este es de tipo UDP es el que usa KAD
Estos puertos junto con el  Port + 3 que tiene que ser de tipo UDP tienen que estar accesibles desde fuera, en mi caso necesito configurar en mi router que:

  • El puerto 5668 en el que se me ve desde internet, se redireccione a el 5668 de la ip de la raspberry y sea de tipo TCP
  • El puerto Port + 3, es decir 5771 de tipo UDP que se me ve desde internet se diriga a el 5771 de la ip de la raspberry
  • El puerto 5663 de tipo UDP, también se tiene que dirigir a nuestra raspberry  

Hasta este punto deberíamos tener bien configurados los puertos en relación al funcionamiento de emule.

Luego hay otros puertos que debemos asignar que son el:
  • Port=4711 #Este está en la sección webserver
  • ECPort=12345 #Este está en la sección Browser

Otras variables interesantes son:

IncomingDir=/media/THOSIBAFAT/.aMule/Incoming  #La ruta donde se almacenarán las descargas
TempDir=/media/THOSIBAFAT/Temp #La ruta donde irán los archivos temporales
MaxDownload=0   #La velocidad máxima de descarga, yo la tengo sin límite
MaxUpload=15 # La velocidad límite de subida, esta es importante limitarla, ya que suele dar problemas si no se limita haciendo a veces imposible la navegación.
OSDirectory=/home/pi/.aMule/ #En esta le indicamos donde está la ruta principal del amule




Uno de los problemas que se suelen presentar en el emule, es el listado de servidores, es decir si tenemos buenos servidores y que no sean maliciosos, funcionaremos mucho mejor.

Para ello yo siempre sigo este magnífico tutorial de adslzone:


Y en el, podemos sacar varias cosas de interés.

Una buena URL de donde obtener buenos servidores:


En nuestro fichero de configuración esto iría en:

Ed2kServersUrl=http://sites.google.com/site/ircemulespanish/descargas-2/server.met?attredirects=0&d=1

y una lista de servidores malos que debemos evitar:


en la configuración va en la variable:

IPFilterURL=http://sites.google.com/site/ircemulespanish/descargas-2/ipfilter.zip

Aplicando estas configuraciones, tendríamos nuestro amule, preparado para descargar.

Para ponerlo en marcha si has seguido todo el tutorial, simplemente ejecutarías
  • sudo /etc/init.d/amule-daemon start
o bien reiniciando la raspberry 
  • sudo reboot
Si en algún momento se desea parar se puede hacer con un
  • sudo /etc/init.d/amule-daemon stop

Y para interactuar con el programa, desde un ordenador que disponga de un navegador simplemente ponemos:

http://[IP de la raspberry]:[PuertoWebElegido]

en mi caso: http://192.168.1.100:4711

Nos pedirá la contraseña que hemos asignado y veremos una bonita interfaz de este estilo:



Decir que abajo deberíamos ver la siguiente frase o parecida dependiendo del servidor que estemos usando:

Ed2k : Connected with high ID to UsenetNL.biz No1 [91.225.136.126:1887]Kad : Connected(OK)
Si vemos que nuestra ID es alta (hight) es que tenemos el emule perfectamente configurado, si por el contrario pone Low, debemos revisar la configuración de los puertos.

Si alguien quiere usar el amulegui, se lo descargaría en su ordenador, en ubuntu se haría así:

  • sudo apt-get install amule-utils-gui
Al ejecutarlo, nos saldrá una pantalla de bienvenida donde debemos poner los datos de conexión, usando el puerto ECPort=12345, que hayas elegido y ya tendremos la interfaz funcionando.

Y nada a disfrutar de este viejo pero muy potente programa de P2P :).

Edito: Para indicar otra variable interesante a comentar del fichero de configuración de amule.conf

AllocateFullFile=1

si esta variable está a 1, cuando añadimos un fichero, el programa reserva espacio para ese fichero. Mientras que si está a 0, el fichero temporal donde se descarga el archivo va creciendo. Suele ser mucho mejor dejarlo a 1, ya que sino, hay mucha más fragmentación en el disco y eso a la larga puede llegar a ser perjudicial para el disco duro.

6 comentarios:

  1. Buenas,

    Estoy a punto de comprar uno de estos cacharros por hacer esto mismo que comentas.

    ¿Es estable?
    Por lo que veo lo tienes conectado a un disco USB. ¿Que limitaciones te has encontrado de tener el amule-daemon en un pc normal?

    ResponderEliminar
  2. Si es muy estable, en principio no tengo limitaciones, lo tengo conectado día y noche y lo que hace basicamente es: descargar torrents, descargar con el emule, compartir los discos duros que tengo mediante samba y finalmente también lo uso para compartir mi impresora en mi red local. Todos los discos duros y la impresora están conectados mediante un hub alimentado externamente.

    ResponderEliminar
  3. Creo haber leido por hay que el Emule daba problemas en raspbian y que era mejor raspbmc. ¿Has tenido aún problema como lentitud en las descargas o algo así.?

    ResponderEliminar
  4. Solo lo puedo manejarlo desde el terminal android, cuando esta la interfaz grafica, iniciado el amule, funcionando y conectado al servidor edonkey, parece que no corre si inicar la interfaz grafica. Le hago un top y corre amue y amuleweb, pero no se como conectarlo e iniciarlo desde remoto por el android con amule remote, ahi sale que no esta conectado a la red edonkey.

    gracias

    ResponderEliminar
  5. Un par de dudas:
    ¿Qué es el puerto Port + 3 (5771)? No aparece en tu archivo .aMule/amule.conf
    La otra pregunta es, la variable Port la tienes repetida en ese archivo:

    Port=5668
    Port=4711

    Aunque también me he dado cuenta que antes de cada bloque de variables hay una etiqueta, parece ser (supongo) que estas variables repetidas están bajo el alcance de diferentes etiquetas: [emule] y [webserver]... Esto es así, ¿verdad?

    Gracias.

    ResponderEliminar
  6. cuando meto los comando para que se inicie amule al enceder la raspberry, introduzco

    sudo vim /etc/default/amule-daemon

    y me dice

    sudo: vim: command not found

    que tengo que hacer?

    ResponderEliminar