CentOS安装Mldonkey实现离线下载

这两天使用迅雷离线下载岛国动作片时,被提示"该资源被举报,无法添加到离线空间",等了好一会,下载进度条一动不动。于是尝试使用百度网盘的离线下载,倒是立刻就下载完了,只是播放时出现了“温馨提示,百度积极响应净网行动号召……”的标识,下载时候也被“偷梁换柱”(原本1G的视频,下载回来的是一个1.6M的视频文件,打开时播放的是“温馨提示,净网行动XXX”)……

博主本人已经在CentOS 5.10系统上测试通过,ed2k的链接均可成功下载,也可以下载BT(.torrent文件,下载方法请见下方)。

CentOS/Redhat系统

yum install mldonkey-server         #centOS/redhat系统, 如果找不到请安装epel源

/etc/init.d/mldonkey start  #必须启动一次才能生成/var/lib/mldonkey/downloads.ini配置文件
/etc/init.d/mldonkey stop   #必须停止服务,才能修改上面的配置文件,否则重启服务后又会变回去

#改此配置文件前请先停止服务,否则修改无效
vim /var/lib/mldonkey/downloads.ini
找到allowed_ips,添加本机的外网IP(可通过ip138.com查询)

/etc/init.d/mldonkey start

Ubuntu系统

sudo apt install mldonkey-server    #ubuntu系统

sudo systemctl stop mldonkey-server    #必须启动一次才能生成/var/lib/mldonkey/downloads.ini配置文件
sudo systemctl start mldonkey-server   #必须停止服务,才能修改上面的配置文件,否则重启服务后又会变回去

#改此配置文件前请先停止服务,否则修改无效
vim /var/lib/mldonkey/downloads.ini
找到allowed_ips,添加本机的外网IP(可通过ip138.com查询)

sudo systemctl start mldonkey-server

然后用浏览器打开http://IP:4080即可看到界面。

下载方法:

web界面右上角有个长条(命令栏),后面有个按钮叫Input,填入地址然后点Input就添加入自动下载了(电驴地址和http),bt的话就输入dllink /root/mulu/test.torrent,然后Input即可。

下载后的文件默认存放为位置:
如果你是使用yum/apt方式安装的, 则存放于/var/lib/mldonkey/incoming/里面
如果你是自编译方式安装的, 则存放于~/.mldonkey/incoming/files/里面

incoming存放的是单个文件, 如果是下载的一个文件夹(bt类),就放在directories里面,当然,这些都是可以修改的。

访问时提示:
SECURITY WARNING: user admin has an empty password, use command: useradd admin password
意思是MLDonkey有个默认用户admin密码为空需要设置一个密码。(PS:删除了这个admin用户MLDonkey会启动不了)

为admin设置一个复杂的密码,在Webgui页面的命令栏输入:
useradd admin xxxxxx
点击后面的input按钮。

使用admin用户登陆,可以再添加一个自己的用户,比如:
useradd zhang3 123456
添加一个zhang3用户,密码是123456。

======================================================
2017.01.25补充一下CentOS 6系统下安装Mldonkey的方法

yum install gcc gcc-c++ make zlib zlib-devel
wget https://sourceforge.net/projects/mldonkey/files/mldonkey/3.1.5/mldonkey-3.1.5.tar.bz2
tar jxvf mldonkey-3.1.5.tar.bz2
cd mldonkey-3.1.5

cat distrib/Install.txt   #查看安装方法
./configure  #中途如果询问是否就按y并回车
gmake        #根据distrib/Install.txt介绍的安装方法, 这里无需make install
cp mlnet /usr/bin/

/usr/bin/mlnet > /dev/null 2>&1 &   #启动程序

netstat -antp | grep :4080    #确保程序运行正常

这样MLDonkey就已经运行起来了。此时会在用户目录下生成.mldonkey隐藏文件夹,里面有很多配置文件。我这里目录是/root/.mldonkey/。主要有这几个:
~/.mldonkey/downloads.ini 基本配置文件
~/.mldonkey/users.ini 用户配置文件
~/.mldonkey/servers.ini 服务器列表文件
~/.mldonkey/files.ini 当前已经完成的和未完成的文件列表
~/.mldonkey/friends.ini 好友列表
~/.mldonkey/mlnet.log 日志文件
~/.mldonkey/incoming/files/ 下载完成以后的文件存放位置

killall /usr/bin/mlnet    #先暂停程序

vim ~/.mldonkey/downloads.ini    #编辑配置文件
找到allowed_ips, 添加允许访问的客户端IP, 然后这些客户端里才可以使用http://IP:4080访问页面

/usr/bin/mlnet > /dev/null 2>&1 &   #启动程序

优化Mldonkey
点击在最上方的"Options"菜单
"Client"选项里
max_hard_upload_rate设置为10 # 如果低于此值, 软件将会强行限制max_hard_download_rate
max_hard_download_rate设置为20480
"Net"选项里
enable_kademlia设置为true
"Files"选项里
"pause_new_downloads"设置为true
"release_new_downloads"设置为true

webserver反代mldonkey
参考这篇文章.

参考文档:
Linux电驴:mldonkey初体验

#########################################

2020.01.26补充
推荐几个mldonkey的docker:
https://hub.docker.com/r/logicwar/mldonkey/
https://github.com/AngeleToR/docker-mldonkey
https://github.com/logicwar/mldonkey

CentOS系统下中文文件名乱码

从windows上传到linux的文件或者目录,在Linux系统中显示为乱码。虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF-8,但在Shell中(或通过http访问),仍是乱码……

原因在于,Windows 的文件名中文编码默认为GBK,压缩或者上传后,文件名还会是GBK编码,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。

wget http://pkgs.repoforge.org/convmv/convmv-1.15-1.el6.rf.noarch.rpm
rpm -ivh convmv-1.15-1.el6.rf.noarch.rpm

/usr/bin/convmv -f gbk -t utf-8 -r --notest /home/wwwroot

常用参数:
-r 递归处理子文件夹
–notest 真正进行操作,默认情况下是不对文件进行真实操作
–list 显示所有支持的编码
–unescap 可以做一下转义,比如把%20变成空格
-i 交互模式(询问每一个转换,防止误操作)

linux下有许多方便的小工具来转换编码:
文本内容转换 iconv
文件名转换 convmv
mp3标签转换 python-mutagen

CentOS系统下CPU温度监控

CentOS下监控CPU的温度。本文基于CentOS 6.5 64bit。

lm_sensors通过调用/lib/modules/2.6.32-358.xxx.x86_64/kernel/drivers/hwmon/coretemp.ko模块来读取温度值。

yum install lm_sensors
sensors-detect           #一路YES即可

modprobe i2c-dev
mobprobe coretemp        #必要

cat /etc/sysconfig/lm_sensors    #查看温度监控模块
sensors                  #查看CPU温度
watch sensors            #每隔一秒显示CPU温度
watch -n 1 -d sensors    #每隔一秒显示CPU温度

以下是一些无用内容,请自动忽略。
谷歌查到的一些其它监控CPU温度的内容:

/sys/bus/acpi/devices/LNXTHERM\:00/thermal_zone/temp
cat /proc/acpi/thermal_zone/THM0/temperature

On my 2010 Debian Lenny system, the path is:
proc/acpi/thermal_zone/THRM/temperature

CentOS 6配置vsftpd

最近被pureftpd的乱码搞到头疼了。查了很多资料包括官方文档,要让pureftpd支持utf-8编码,需要在编译的时候加上–with-rfc2640选项,于是我又重新编译了一遍,发现该功能依然是失效的!很无奈只好放弃pureftpd了转向vsftpd的怀抱了。经过简单的测试,发现vsftpd默认编码就是utf-8,且能够自动处理文件的编码(例如当收到无效字节时会自动禁用utf-8,即使有用户以gbk上传的文件,也能正常显示,这个功能很赞)。本文CentOS 6 64bit上面配置vsftpd的过程,记录一下。

假设ftp的根目录是/home/wwwroot/ftp:

$ yum install vsftpd

$ useradd -d /home/wwwroot/ftp -g www -s /sbin/nologin 用户名
$ passwd 用户名

$ touch /etc/vsftpd/chroot_list

$ vim /etc/vsftpd/vsftpd.conf

#对以下选项作更改,如果没有就添加
anonymous_enable=NO
idle_session_timeout=600
ftpd_banner=Welcome to zhukun.net FTP service.
chroot_list_enable=YES     #是否启用列表文件,默认为NO
chroot_local_user=YES      #列表文件中的用户能否切换到上级目录,默认为NO
chroot_list_file=/etc/vsftpd/chroot_list
use_localtime=YES

$ chkconfig --level 2345 vsftpd on
$ service vsftpd start
$ chown -R 用户名 /home/wwwroot/ftp

Continue reading “CentOS 6配置vsftpd”

CentOS下给pptp限速

其实PPP的配置文件里有一个限速的配置项,但该配置项在Linux系统下不起作用。因此只好从其它方向研究一下限速的办法了。本文在CentOS 6 64bit系统上测试成功。

假设已经安装好了pptpd,且pptpd的子网段是172.16.36.0/24。

1,准备工作

yum install /sbin/tc

vim /etc/sysctl.conf
修改net.ipv4.ip_forward = 1
sysctl -p

#加载sch_htb模块
modprobe sch_htb
echo "modprobe sch_htb" >> /etc/rc.local

2,限速设置

vim /etc/ppp/ip-up

在最后一行的exit 0上面,添加如下内容 Continue reading “CentOS下给pptp限速”

linux下使用iptables和tc限制速度

linux下使用iptables和tc限制速度的方法,记录一下。假设本地搭建了PPTPD服务,又或者有多个网卡,需要对其中一些接口做限速处理的情况,非常有用,本文基于CentOS 6.4 64bit。

1,初始配置

yum install /sbin/tc

vim /etc/sysctl.conf
修改net.ipv4.ip_forward = 1
sysctl -p

#清除原来的mangle表规则
iptables -t mangle -F

#加载sch_htb模块
modprobe sch_htb
echo "modprobe sch_htb" >> /etc/rc.local

2,TC限速设置

假设现在有两块网卡
eth0: xx.xx.xx.xx(外网的上网地址)
eth1: 172.16.44.1(做为内网的网关) Continue reading “linux下使用iptables和tc限制速度”

CentOS 6使用mutt+msmtp发送邮件

CentOS系统下如果希望向外域发送邮件,需要配置sendmail+dovecot等一系列工具。其实不用这么麻烦,只要mutt+msmtp就可以实现向外域发送邮件的功能了。本文基于CentOS6 64bit。

1,安装配置msmtp

$ yum install gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel -y
$ wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2
$ tar -jxvf msmtp-1.4.32.tar.bz2
$ cd msmtp-1.4.32
$ ./configure --prefix=/usr/local/msmtp
$ cd msmtp-1.4.32
$ make && make install

$ mkdir /usr/local/msmtp/etc

生成配置文件

$ cat >>/usr/local/msmtp/etc/msmtprc<<EOF

直接复制以下内容粘贴在>号的位置即可 Continue reading “CentOS 6使用mutt+msmtp发送邮件”