Debian命令行跑amule¶
目录¶
前言
准备
安装
配置
运行
重启
前言¶
本文介绍Debian系Linux操作系统命令行环境下运行amule软件。其它发行版希望骡友补充。 有固定公网IP的节点在Kad网络中是很有价值的,即使不共享任何文件,也会承担文件源和关键字的索引功能,以及lowID伙伴(buddy)的功能。希望有Linux云主机的骡友一起云养骡,共同维护共享精神。
准备¶
首先得有基本的Linux命令行操作能力。对主机的配置要求很低,单核心512M内存10G存储盘这种低端的VPS就足够共享一些小体型文件了。需要有root权限。
安装¶
用root权限(含sudo,下同)执行这个命令:
apt install amule-daemon amule-utils
其实就是安装那两个软件包。Daemon包里的核心程序是amuled,它于后台运行,执行电骡的全部功能。Utils包的核心程序是amulecmd,它是一个通过命令行来操控amuled的工具。
配置¶
建议用普通账户运行amule. 除非有说明,下文中的命令都是用这个普通账户执行的,需要替换的文字用尖括号标注<>。
先停掉amuled系统服务:
systemctl stop amule-daemon
然后创建两个目录:
mkdir -p ~/amule/incoming
mkdir -p ~/amule/temp
运行一下amuled:
amuled
运行会报错退出,但是默认配置会生成在这个目录里: ~/.aMule.
进入 .aMule 目录:
cd ~/.aMule
下载最新服务器和kad节点文件到当前目录里:
wget -O server.met "http://upd.emule-security.org/server.met"
wget -O nodes.dat "http://upd.emule-security.org/nodes.dat"
生成密码的md5值:
echo -n "<任意密码>" | md5sum | cut -d ' ' -f 1
输出结果类似于:
d30d85deadf34dcb3745c594e1b809b8
记下来备用。至于命令中用什么密码都无所谓,后面不会用到。
下面修改amuled的配置文件 amule.conf 。不会命令行编辑的可以在本地修改好再上传。
以下三项是必须修改的设置:
#接受外部连接必须是1,不然无法操控
AcceptExternalConnections=1
#骡子监听远程操控的地址
ECAddress=127.0.0.1
#远程登录密码的md5值,把前面记下的md5贴过来
ECPassword=d30d85deadf34dcb3745c594e1b809b8
以下是一些常用的可选设置,可以不改,建议按实际情况设置。
#设置昵称
Nick=JanDoe
#最大下载速度,单位KBytes/s,下同。
MaxDownload=200
#最大上传速度
MaxUpload=400
#每个上传线程的预计速度。这个数值并不限制每个线程的速度上限,
#而是用于计算上传线程数=MaxUpload/SlotAllocation
SlotAllocation=100
#TCP监听端口
Port=4662
#UDP监听端口
UDPPort=4662
#从当前服务器自动更新服务器列表。最好关掉
AddServerListFromServer=0
#是否连接服务器。我通常关掉
ConnectToED2K=1
#临时文件夹,前面创建过
TempDir=/home/<账户名>/amule/temp
#下载完成后移入文件夹
IncomingDir=/home/<账户名>/amule/incoming
改好配置后保存退回到命令行。 根据刚才改好的配置生成amulecmd的配置文件 remote.conf:
amulecmd --create-config-from amule.conf
~/.aMule 目录里的配置工作就完成了。
最后用root权限修改这个配置文件
/etc/default/amule-daemon:
#用于跑骡子的普通账户名
AMULED_USER="<账户名>"
保存后配置完成。
运行¶
用root权限运行: 启动amuled后台服务:
systemctl start amule-daemon
查看后台服务是否在运行:
systemctl status amule-daemon
查看日志:
journalctl -u amule-daemon
异常退出后重启服务:
systemctl restart amule-daemon
amule-daemon服务会随系统自动启动。 用普通账户运行amulecmd来操作amuled:
amulecmd
如果顺利进入命令行模式,说明amuled正常运行且可以用amulecmd来操作它。常用的命令有:
help 帮助
status 状态
statistics 统计
add 添加ed2k链接
cancel 取消任务
search 搜索
exit 退出
具体用法自行查阅: help <命令>
重启¶
amuled一直存在内存占用逐渐升高的问题,怀疑有内存泄漏。 在小容量的云主机上长时间跑amuled会发生进程被容器或系统杀掉的情况。 一个简单的解决方法是用一个定时任务每天/周自动重启amuled. 下面介绍利用 systemd 的定时任务自动重启amuled的设置方法。
创建一个文本文件 /usr/local/bin/amuled-recycle:
#!/bin/sh
# Recycling amule-daemon.service only if it is running
systemctl --quiet is-active amule-daemon.service \
&& systemctl restart amule-daemon.service
true
修改权限为可执行脚本:
chmod 755 /usr/local/bin/amuled-recycle
创建一个服务描述文件 /usr/local/lib/systemd/system/amuled-recycle.service:
[Unit]
Description=Recycling aMule Daemon
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/amuled-recycle
创建一个定时器描述文件 /usr/local/lib/systemd/system/amuled-recycle.timer:
[Unit]
Description=Daily Recycling amuled
[Timer]
OnCalendar=*-*-* 05:00:00
[Install]
WantedBy=timers.target
上文中的 OnCalendar 项设置定时触发的时间,文中为每日5点,可自行修改。例如 OnCalendar=weekly.
详细语法请查阅 systemd.time 的文档。
执行以下命令安装和启动定时器:
systemctl daemon-reload
systemctl enable amuled-recycle.timer
systemctl start amuled-recycle.timer
查阅定时器状态及触发时间:
systemctl status amuled-recycle.timer
当然,传统的 Unix cron 也可以实现定时任务,就不介绍了。
结束
2020年1月
更新于 2026年3月