把aMule变成系统服务,后台运行!
据说很久以前LD逛禁站时,邂逅了eMule,无数站点下马后,这头驴子却坚韧地活了下来,不仅成全了华人分享第一站──VeryCD,同时ISP亦对之头痛至极。中间穿插的无数故事:VeryCD修改版的大获成功、无聊的骡驴之争、吸血驴的无耻…… 以此同时Linux阵营的大黑们也不甘寂寞,N多驴哥驴姐诞生了,其中最具代表性就是MLdonkey和aMule。MLdonkey可以同时连接多个服务器,而且由于它是后台运行模式,节省了资源,也丰富了控制器的选择(PS:LD比较喜欢web版本)。aMule则偏向于用户体验,所以界面几乎和win下的eMule一模一样。就在不久之前,aMule发布了2.2.2版本。
那么除了GUI,aMule还有什么是MLdonkey大哥哥所不具备的呢?
好吧,似乎aMule也可以像MLdonkey一样后台运行,那么就来讲讲把aMule变成服务来运行吧
首先自然是安装,各大发行版源中应该都有amule这个包,嫌麻烦的话一个命令自己安装。如果是编译安装就跟我来(比较简单,见谅)。 aMule需要wxgtk2.8以上,编译wxgtk时记得加上–enable-unicode参数。到http://www.amule.org下载aMule-2.2.2.tar.bz2,也可以在使用ed2k链接:ed2k://|file|aMule-2.2.2.tar.bz2|4669549|9E0CA7FA56560B079E92D1D47CD3FF4E|/ 。 需要UPnP的同志请到http://pupnp.sourceforge.net/下载libupnp。
解压amule后进入amule源码目录,
| ./configure –prefix=/usr –enable-cas –enable-wxcas –enable-amule-daemon –enable-amulecmd –enable-amule-gui –enable-webserver –enable-alc –enable-alcc –disable-debug –enable-optimize –enable-geoip –enable-utf8-systray –with-language=zh_CN |
这么多参数,解释一下:
- –prefix=/usr 安装目录,其实我是PKGBUILD打的包,自己看着办喽~
- –enable-cas –enable-wxcas 统计选项,VeryCD BBS上无数牛X都秀过上传达到T级的截图;
- –enable-amule-daemon 这个就是后台服务选项了;
- –enable-amulecmd 命令行控制,喜欢的话就选;
- –enable-amule-gui 图形界面
- –enable-webserver 网页控制,优点鸡肋
- –enable-alc –enable-alcc 生成文件的ed2k链接,其实保留一个命令行的alcc就够了
- –enable-geoip 根据IP判断国籍,得安装geoip包
- –enable-utf8-systray –with-language=zh_CN UTF-8编码,不指定语言也可(程序中可以设置)
假如你要把amule放在专门的主机上使用,也可使用官方WiKi中的配置:
| ./configure –disable-monolithic –with-toolkit=base –enable-amule-daemon –enable-amulecmd –enable-webserver |
( make && make install )编译安装完aMule后,你会发现有5个命令:
- amule 主程序(GUI),一般就用它
- amuled 后台运行,加上 -f 参数即可
- amulecmd 命令行控制
- amuleweb web控制的服务端
- amulegui 远程控制GUI(和本地的amule界面相同)
在运行 amuled -f 之前,得先配置一下(当然,其他配置完全使用amule进行图形设置,也可参考Tips),用文本编辑器编辑/home/yourname/.aMule/amule.conf下这几个选项; 如果没有这个文件,先运行一下amuled和amule自动生成。
| [ExternalConnect] #这个允许远程连接,改成1 AcceptExternalConnections=1 #用于远程控制地md5密码,这个命令可以生成 echo -n “password” | | md5sum | cut -d ‘ ‘ -f 1 ECPassword= #远程计算机地ip和端口,根据自己情况修改 ECAddress= ECPort=4712 #UPnP,需要的话改成1 UPnPECEnabled=0 |
如果,你并非只在本机上使用amuled,记得修改iptables规则
| iptables -A INPUT -p tcp –dport 4712 -j ACCEPT |
后面还有关于Web服务端地选项,这个东西实在是鸡肋,根本无法和MLdonkey的Web相比,用着心巴凉巴凉地。选项和上面差不多,可以参考,注意用WiKi。
修改完配置文件直接 amuled -f 就可以启动; 当然麻烦一点,把amuled加入系统服务,这里有一个服务脚本,
NAME=$(basename “$0″)
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/amuled
DESC=amuled
USER=g2p #A user who already ran amule once to configure it.
test -x “$DAEMON” || exit 0
case “$1″ in
start)
echo -n “Starting $DESC: ”
su “$USER” -c “$(printf “%q -f” “$DAEMON” )”
echo “$NAME.”
;;
stop)
echo -n “Stopping $DESC: ”
killall –quiet “$DAEMON”
echo “$NAME.”
;;
restart|force-reload)
echo -n “Restarting $DESC: ”
killall –quiet “$DAEMON”
sleep 1
su “$USER” -c “$(printf “%q -f” “$DAEMON” )”
;;
*)
printf “Usage: %q {start|stop|restart|force-reload}n” “$0″ >&2
exit 1
;;
esac
exit 0
把USER改成你自己地用户名,文见改名成amuled,放到 /etc/rc.d/ 下,来个sudo /etc/rc.d/amuled start 启动了,呵呵。如果你和我一样使用Arch Linux,可以在/etc/rc.conf里的 DAEMONS 选项加入 amuled,开机自动运行。其他发行版可以再参考参考官方WiKi: http://www.amule.org/wiki/index.php/FAQ_amuled
启动amulegui这个远程GUI控制界面,还真吓了我一跳,速度变成平时地十倍了,再一看总速度,还是100来几,假象。通过amuled启动后,下载中文件,文件名是乱码,我不知道怎么解决,反正改个英文名权当练习E文了。amule相对MLdonkey来说,冷门的东西很好下,和windows下地eMule 没啥区别,可是作为服务启动还是得多向MLdonkey大哥哥学习学习。即使这样,省了GUI地开销,即使图形界面崩溃也不会影响下载XX了。嘿嘿
- 相对于国内来说可以把Server列表改成从电驴中文的http://www.emule.org.cn/server.met
用户名改为[CHN][VeryCD]yourname,这里还有3个很好地服务器,一般amule连上服务器自己就会更新服务器列表。- 77.247.178.244:4242 eDonkeyServer No1
- 77.247.178.245:4242 eDonkeyServer No2
- 222.73.207.86:8080 China eMule/eDonkey Server No.1
- firefox关联ed2k到aMule: 在地址栏中键入:about:config,打开配置页。右键点击配置列表,创建“布尔”项 network.protocol-handler.external.ed2k,值为 true,然后在创建一个“字符串”项 network.protocol-handler.app.ed2k,值为 /usr/bin/ed2k。
注意:这个是网上流传,也是aMule官方WiKi里的方法,但是不成功者大又人在。经过我反复试验,发现只有第一次设置firefox的ed2k关联时,这个方法才会成功。
如果是新安装的firefox(讲得是默认的配置文件),点击ed2k链接会出现下图:(像我以前使用MLdonkey,早已设置过,所以已经无用)
而此时你使用前面提到的方法后,再点击ed2k链接就会出现下图:
那么我以后想换到MLdonkey,又或是我想随时切换下载工具,怎么办? 也可其实可以在/usr/bin/ 下新建一个脚本── ed2k.sh ,然后把关联应用程序指向这个脚本,以后要换直接修改这个脚本就是了。#!/bin/bash 这里MLdonkey和aMule都有两种方法,自己选了,反正结果都一样。
# MLdonkey submit script
#echo dllink $*|nc 127.0.0.1 4000
#(echo “dllink $*”; echo q ) | nc localhost 4000
#
# aMule submit script
/usr/bin/ed2k “$*”
#amulecmd -c “add $*”
- Opera关联ed2k到aMule: 在菜单->工具->首选项->高级->程序->选择其他协议的帮手程序中,添加一项,协议为 ed2k,程序为 /usr/bin/ed2k。也可以是刚才firefox的脚本。
- 为aMule开放iptables端口: aMule默认的TCP端口4662,UDP端口4672,而你要开放的还有一个UDP端口4662+3=4665 ;
iptables -A INPUT -p tcp –dport 4662 -j ACCEPT
iptables -A INPUT -p udp –dport 4665 -j ACCEPT
iptables -A INPUT -p udp –dport 4672 -j ACCEPT
多多参考:http://www.amule.org/wiki和man



厄…是不是除非关服务,别人就无法关闭驴子了?! 偷偷装公司服务器上去才好 哈哈哈
回复
LD 回复:
八月 16th, 2008 at 9:05 上午
如果管理员发现网络异常,那就不好了
回复
ddkk3000 回复:
八月 20th, 2008 at 11:34 上午
这样挂为系统服务的好同志要多一点,这样我们就能下的快一点,十倍速度也许能变成百倍。
回复
那么多东西,看得头都大了。呵呵。
回复
[...] Truco/Solución: Obtener el pais de una IP desde la consola Saved by redynsm on Mon 02-2-2009 把aMule变成系统服务,后台运行! Saved by mhl20 on Thu 29-1-2009 Saber país del visitante sin GeoIP, con PHP Saved by stevetl on [...]
[...] | user-saved public links | iLinkShare 2 votes把aMule变成系统服务,后台运行!>> saved by andrewstr 30 days ago6 votesGentoo x64 – Performance Shock>> saved by foundmyrosebud01 [...]