Cómo Iniciar y controlar aMule con systemd

Cuando comencé con Raspberry, tuve muchos problemas con aMule. Se comportaba de manera muy inestable, con cierres inesperados y perdida de información. Uno de los problemas consistía en el borrado del archivo amule.conf, dejando a este en la configuración por defecto, con lo que no podía entrar en remoto y debia de volver a local para arreglar el problema.

Es muy probable que este problema fuese debido a dos cosas, la primera por los puertos USB 2.0 de mi Raspberry 4, en los cuales tenía conectado mi disco SSD, Estos puertos se les conoce por su baja velocidad de lectura/escritura, que hace que aMule se sature y se bloquee. La otra podía deberse al tamaño del búfer de archivo, el cual viene por defecto con un valor muy bajo, creándose un cuello de botella, por el que la velocidad a la que descargas es más rápida a la que escribes en el disco.
Ahora que mi disco SSD arranca desde USB 3.0 y el búfer esta con un valor correcto, mi mula ha dejado de relinchar y dar coces.

Anteriormente comencé controlando el demonio de aMule con scripts a través de crontab, pero ahora tenemos la opción de usar systemd, que se encarga de hacer lo mismo que el mejor de los scripts. Este servicio se encargará de iniciar y vigilar que el demonio de amule esté siempre funcionando.

aMule debería recibir mas actualizaciones por parte de la comunidad, creo que necesita ser modernizada como lo hace Emule, su primo de Windows, el cual se actualiza mas a menudo.

En internet hay varios ejemplos para crear un servicio Systemd para amuled, también la inteligencia artificial de Google, «Gémini» te puede crear uno o varios ejemplos que funcionaran sin problema, tan solo deberás adaptarlo a tu situación.

Antes de ver este manual, puede ser que te interese ver Instalar y Configurar aMule en Debian 12

¡Comenzamos!

Comenzaremos la instalación desde cero.

Instalación

La instalación la haré instalando todos los paquete con:

sudo apt install amule amule-daemon amule-utils amule-utils-gui amule-gnome-support

Para este manual solo necesitamos usar amule-daemon (demonio) y amule-utils-gui (visor gráfico)

Deshabilitando el servicio

En este momento systemd ya controla al demonio de aMule, pero nosotros eliminaremos ese control y crearemos un nuevo servicio.

Para empezar pararemos el demonio de esta forma.

sudo systemctl stop amule-daemon

Después lo inhabilitaremos de esta otra forma:

sudo systemctl disable amule-daemon

Editando la configuración de amule-daemon

Aprovechando que tenemos parado el demonio, editaremos el archivo amuled-daemon que se encuentra en /etc/default/amule-daemon, este archivo debe modificarse con el demonio de aMule parado, ya que si no, los cambios no surtirán efecto.

sudo  nano /etc/default/amule-daemon

Dentro de ese archivo nos vamos a encontrar algo como esto.

Como puedes ver, hay una línea que indica el usuario que va a usar amuled, que aparece vacío entre comillas, ahí debes de poner <<el nombre de tu usuario del sistema>>,que será el propietario de los archivos descargados.

Edito con mi nombre de usuario que es «usuario».

AMULED_USER="usuario"

Guardamos los cambios pulsando «Control + o» y salimos del editor con «Control + x».

Ahora arrancamos el demonio para crear el primer archivo de configuración.

sudo systemctl start amule-daemon

Una vez iniciado, vuelve a detenerlo para poder modificar el archivo de configuración.

sudo systemctl stop amule-daemon

Configuración aMule

Con el demonio fuera de juego, podemos editar nuestras preferencias en el archivo de configuración de amule.

nano /home/usuario/.aMule/amule.conf

La siguiente configuración es una copia de mi archivo amule.conf. Si quieres puedes usarlo copiarlo y adaptarlo a tus necesidades. Yo he modificado las líneas que están resaltadas en amarillo con respecto al archivo original.

[eMule]
AppVersion=2.3.3
Nick=Burrito Sabanero
QueueSizePref=50
MaxUpload=1536
MaxDownload=0
SlotAllocation=50
Port=44662
UDPPort=44672
UDPEnable=1
Address=
Autoconnect=1
MaxSourcesPerFile=600
MaxConnections=1000
MaxConnectionsPerFiveSeconds=100
RemoveDeadServer=1
DeadServerRetry=3
ServerKeepAliveTimeout=0
Reconnect=1
Scoresystem=1
Serverlist=1
AddServerListFromServer=0
AddServerListFromClient=0
SafeServerConnect=0
AutoConnectStaticOnly=0
UPnPEnabled=0
UPnPTCPPort=50000
SmartIdCheck=1
ConnectToKad=1
ConnectToED2K=1
TempDir=/home/usuario/.aMule/Temp
IncomingDir=/home/usuario/.aMule/Incoming
ICH=1
AICHTrust=0
CheckDiskspace=1
MinFreeDiskSpace=1
AddNewFilesPaused=0
PreviewPrio=0
ManualHighPrio=0
StartNextFile=0
StartNextFileSameCat=0
StartNextFileAlpha=0
FileBufferSizePref=70
DAPPref=1
UAPPref=1
AllocateFullFile=1
OSDirectory=/home/usuario//.aMule/
OnlineSignature=0
OnlineSignatureUpdate=5
EnableTrayIcon=0
MinToTray=0
Notifications=0
ConfirmExit=1
StartupMinimized=0
3DDepth=5
ToolTipDelay=1
ShowOverhead=0
ShowInfoOnCatTabs=1
VerticalToolbar=0
GeoIPEnabled=0
ShowVersionOnTitle=0
VideoPlayer=
StatGraphsInterval=3
statsInterval=30
DownloadCapacity=300
UploadCapacity=100
StatsAverageMinutes=5
VariousStatisticsMaxValue=100
SeeShare=2
FilterLanIPs=1
ParanoidFiltering=1
IPFilterAutoLoad=1
IPFilterURL=http://upd.emule-security.org/ipfilter.zip
FilterLevel=127
IPFilterSystem=0
FilterMessages=1
FilterAllMessages=0
MessagesFromFriendsOnly=0
MessageFromValidSourcesOnly=1
FilterWordMessages=0
MessageFilter=
ShowMessagesInLog=1
FilterComments=0
CommentFilter=
ShareHiddenFiles=1
AutoSortDownloads=0
NewVersionCheck=0
AdvancedSpamFilter=1
MessageUseCaptchas=1
Language=
SplitterbarPosition=75
YourHostname=
DateTimeFormat=%A, %x, %X
AllcatType=0
ShowAllNotCats=0
SmartIdState=1
DropSlowSources=0
KadNodesUrl=http://upd.emule-security.org/nodes.dat
Ed2kServersUrl=http://upd.emule-security.org/server.met
ShowRatesOnTitle=0
GeoLiteCountryUpdateUrl=http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
StatsServerName=Shorty's ED2K stats
StatsServerURL=http://ed2k.shortypower.dyndns.org/?hash=
CreateSparseFiles=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=N:0:0
TableWidthsServer=N:150,A:140,P:25,D:150,p:25,U:40,F:45,r:60,f:40,S:40,V:80
TableOrderingDownload=a: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
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
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
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
[Browser]
OpenPageInTab=1
CustomBrowserString=
[Proxy]
ProxyEnableProxy=0
ProxyType=0
ProxyName=
ProxyPort=1080
ProxyEnablePassword=0
ProxyUser=
ProxyPassword=
[ExternalConnect]
UseSrcSeeds=0
AcceptExternalConnections=1
ECAddress=
ECPort=4712
ECPassword=0d545153bf7b94d6094a01f5f925163b
UPnPECEnabled=0
ShowProgressBar=1
ShowPercent=1
UseSecIdent=1
IpFilterClients=1
IpFilterServers=1
TransmitOnlyUploadingClients=0
[WebServer]
Enabled=1
Password=0d545153bf7b94d6094a01f5f925163b
PasswordLow=
Port=44711
WebUPnPTCPPort=50001
UPnPWebServerEnabled=0
UseGzip=1
UseLowRightsUser=0
PageRefreshTime=120
Template=default
Path=amuleweb
[GUI]
HideOnClose=0
[GUI/TransferWnd]
Splitter=386
ShowClientList=1
[Razor_Preferences]
FastED2KLinksHandler=1
MAIN_X_POS=42
MAIN_Y_POS=-1
MAIN_X_SIZE=1877
MAIN_Y_SIZE=1080
Maximized=1
SRV_SPLITTER_POS=463
[SkinGUIOptions]
Skin=
[Statistics]
MaxClientVersions=0
[Obfuscation]
IsClientCryptLayerSupported=1
IsCryptLayerRequested=1
IsClientCryptLayerRequired=0
CryptoPaddingLenght=254
CryptoKadUDPKey=911052936
[PowerManagement]
PreventSleepWhileDownloading=0
[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=
[HTTPDownload]
URL_1=http://upd.emule-security.org/ipfilter.zip
URL_2=http://upd.emule-security.org/server.met
URL_5=http://upd.emule-security.org/nodes.dat
URL_3=http://upd.emule-security.org/server.met

Descripción de los puntos más importantes de la configuración de aMule.

  • Nick=El nombre de tu usuario
  • MaxDownload= 0 para descargar sin límite de velocidad
  • MaxUpload=1536 Velocidad de subida ( se generoso con este valor )
  • Port=24662 Número del puerto TCP
  • UDPPort=24672 Número del puerto UDP
  • MaxSourcesPerFile=600 Fuentes máximas por archivo
  • MaxConnections=1000 Conexiones máximas
  • MaxConnectionsPerFiveSeconds=100 Se buscaran 100 conexiones cada 5 segundos
  • Serverlist=1 Actualizar lista de servidores al inicio
  • FileBufferSizePref=70 Tamaño del búfer de escritura, se mide en tanto por ciento. Valor bajo hace que las descargas vayan lentas.
  • AllocateFullFile=1 Reserva espacio completo del archivo (menos accesos al disco)
  • IncomingDir=/home/lenovo/.aMule/Incoming Directorio de Descargas
  • TempDir=/home/lenovo/.aMule/Temp Directorio de descargas temporales
  • MaxConnectionsPerFiveSeconds=100 Conexiones máximas cada 5 segundos
  • IPFilterURL=http://upd.emule-security.org/ipfilter.zip Filtro de IPs
  • OSDirectory=/home/usuario/.aMule/ Directorio del usuario donde se aloja aMule
  • SmartIdState=1 Te devuelve a IDHigh se la pierdes, siempre y cuando las hayas tenido al principio
  • Ed2kServersUrl=http://upd.emule-security.org/server.met Listado de servidores en internet

Generar contraseñas.

Las contraseñas del archivo amule.conf son encriptadas y no se pueden escribir directamente. Por ejemplo si tu contraseñas es BurritoSabanero habrá que encriptarla para que sea válida y se pueda usar.

Para encriptar tus contraseñas y pegarlas en el archivo de configuración, se hará de la siguiente forma.

echo -n BurritoSabanero | md5sum

esto nos dará como resultado la contraseña encriptada siguiente:

0d545153bf7b94d6094a01f5f925163b  -

Copia y pega la contraseña anterior en ECPassword y Password, pero no copies el guión final, ya que eso no pertenece a tu contraseña.

Nota las contraseñas ECPassword y Password no hacen falta que sean iguales, puedes crear una contraseña diferente para cada acceso.

Configura el nuevo servicio systemd

Creamos el archivo de configuracion para systemd:

sudo nano /etc/systemd/system/amuled.service

Copia y pega lo siguiente en la ventana de tu editor nano. (cambia «usuario» por el tuyo propio)

[Unit]
Description=Amuled P2P File Sharing Daemon
After=network.target

[Service]
Type=simple
User=usuario
WorkingDirectory=/home/usuario/.aMule
ExecStart=/usr/bin/amuled
Restart=always

[Install]
WantedBy=multi-user.target

Guardamos los cambios pulsando «Control + o» y salimos del editor con «Control + x».

Ahora recarga la configuración del administrador systemd con:

$ sudo systemctl daemon-reload

Estado del servicio.

Una vez tenemos creado nuestro servicio en systemd haremos un status para ver en que estado se encuentra.

sudo systemctl status amuled.service
○ amuled.service - Amuled P2P File Sharing Daemon
     Loaded: loaded (/etc/systemd/system/amuled.service; disabled; preset: enabled>
     Active: inactive (dead)

En este estado amule no se encuentra habilitado en el inicio y tampoco se encuentra activo.

Para habilitarlo haremos un enabled de la siguiente forma:

$ sudo systemctl enable amuled.service
Created symlink /etc/systemd/system/multi-user.target.wants/amuled.service → /etc/systemd/system/amuled.service.

Y por último lo activamos con:

sudo systemctl start amuled.service

Si haces un status, verás que está todo correcto.

sudo systemctl status amuled.service
● amuled.service - Amuled P2P File Sharing Daemon
     Loaded: loaded (/etc/systemd/system/amuled.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-12-28 16:52:20 CET; 1min 51s ago
   Main PID: 9623 (amuled)
      Tasks: 12 (limit: 9573)
        CPU: 11.186s
     CGroup: /system.slice/amuled.service
             ├─9623 /usr/bin/amuled
             └─9633 amuleweb --amule-config-file=/home/raspberry/.aMule/amule.conf

dic 28 16:52:20 pi5 systemd[1]: Started amuled.service - Amuled P2P File Sharing Daemon.
dic 28 16:52:22 pi5 amuled[9623]: 16:52:22: Debug: Failed to unregister 14 in direction>
lines 1-12/12 (END)
  • Loaded, con amuled.service y preset en modo enabled, (color verde). Se cargará al iniciar el sistema.
  • Active, con active (en verde) Servicio activo y corriendo.

aMuleGUI

Ahora llega el momento de abrir aMule en modo gráfico. Busca el programa aMuleGUI e introduce tu dirección IP o el hostname local, que es localhost, el puerto y la contraseña que pusiste en ECPasswords.

Una vez abierto, pulsa en conectar para entrar en modo gráfico.

Resultado final.

La siguiente imagen muestra la velocidad que alcanza mi aMule sobre una Raspberry Pi 4, pero mi consejo es que si puedes comprar un Pi 5, hazlo, esa placa está a otro nivel.

Velocidades según configuración de amule.conf en un Raspberry PI 4

Recuerda que aMule, descarga rápido si lo archivos tienen muchas fuentes, si hay pocas fuentes lo hará lentamente, pero lo hará. Tarde o temprano la descarga se hará efectiva.

Recuerda.

Si no inicia al arrancar el sistema, es porque Loaded no se encuentra habilitado y se habilita con:

sudo systemctl enable amuled.service

Si Active no se encuentra en su estado active, puedes activarlo con:

sudo systemctl start amuled.service

Puedes parar el servicio con:

sudo systemctl stop amuled.service

Puedes reiniciar el servicio con:

sudo systemctl restart amuled.service

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio