Ubuntu构建BT服务器FTP服务器以公开种子。 最近,为了实现文件的上传下载,要求乘坐简单的BT服务器。 因为认为公开种子是内部使用,所以想做成FTP,但是中途踩了好几个洞,所以写Blog自己记录具体的过程。
3358 www.Sina.com/http://www.Sina.com /实施版本: Ubuntu 17.04/18.04已全部测试
BT服务器构建工具-BitTorrent可以使用BitTorrent工具轻松创建自己的BT Tracker服务器,但现在很难在网上找到工具的资源,于是可以访问BitTorrent官方网站我自己上传了一个来这里取的。 链接: https://pan.Baidu.com/s/1 gkjgawhvzeslevj5ftv gkg密码: cef5
不管用什么方法,请先放在你的Linux系统下面。 不管位置如何。 此处基于放在/home下(虽然我从未真正尝试将其放在其他位置,但实践证明将其存储在/usr/local/src文件夹下是可行的)。 在进行下一步之前,确保下一个系统中存在Python2,然后直接安装一个就可以了。
Apt安装python。
没有权限的话自己sudo。 不说明。
安装python后,解压缩上传到Linux的tar文件。
tar-xzvf BitTorrent-4.0.3.tar.gz
命令结束后,将在同一目录中得到文件夹BitTorrent-4.0.3。 进入目录后输入ls,会显示一大堆. py文件。 所以我需要Python2。 因为是BT服务器搭建工具-BitTorrent,所以只有Python3还不行。
有很多以bt开头的. py文件,但这里只需要使用几个。 稍后再说。 现在,首先运行setup.py,将运行其他BT源代码所需的库文件添加到Python2中。
python setup.py install
此命令完成后,可以开始运行目录中的. py文件。 首先是构建BT服务器最重要的跟踪器。
pythonbttracker.pyport 6969dfile/home/log
端口指定跟踪器使用的端口号。
dfile :指定服务器运行log的输出文件。
使用此命令可以生成跟踪器,并通过输入http://服务器的ip:端口号进行访问。
因为服务器现在刚刚启动,所以没有可以跟踪的种子。 必须自己手动创建种子。 当然,您可以使用BitTorrent等工具创建种子,但我个人从未尝试过,因此,这里将介绍如何使用BitTorrent源工具创建种子。 直接拿到刚解压还没删除的tar压缩包进行练习比较好。
首先,创建用于存储和管理源文件的新文件夹,然后创建用于存储种子文件的新文件夹。 这里分别命名为data和torrent。 将压缩包放在data文件夹下,然后执行以下操作:
python btmaketorrent.py http://服务器ip:端口号/announce/home/data/BitTorrent-4.0.3.tar.gz
此命令可以在目标文件所在的目录中创建种子文件,并使用指定的跟踪器进行跟踪。 现在, torrent文件应该会出现在data文件夹下。 导航到种子文件夹下。
现在还有种子。 用F5查看服务器的页面吧。 但是追踪器还没有开始追踪。 这是因为实际上种子产生后还没有人开始种子,所以服务器不知道你产生了这样的种子。 然后,通知服务器已创建种子,服务器本身开始创建第一个源,供其他用户下载。 要实现此功能,请运行btlaunchmany.py。
pythonbtlaunchmany.pydata _ dir/home/datatorrent _ dir/home/torrent
这样,我们的种子文件就已经为服务器所知了。
? 但是服务器上显示的是下载,表示正在下载,没有开始制种…
这是因为种子目录中没有所需的文件,btlaunchmany认为这是未能下载的文件,正在申请下载。 在这种情况下,只需将data文件夹下的原始文件硬连接到torrent目录下即可。
ln/home/data/BitTorrent-4.0.3.tar.gz/home/torrent
然后运行btlaunchmany,可以让其他计算机开始下载。
在Ubuntu构建FTP服务器FTP服务器才是真正的一步…基本上,除了第一个sudo apt安装vsftpd以外,你只需要继续踩着洞。 先冷静下来,进入下一步吧。
在Ubuntu搭建FTP服务器
它被认为是Linux上最容易使用的FTP服务器构建工具,但实际使用时
候反而是走一步踩一个坑,网上的教程实在是太杂乱了,所以还是自己总结了一份以便以后万一会用到。apt install vsftpd
注:vsftpd需要的环境一般在默认的Ubuntu系统中都已经配置好了,所以一般都可以直接上手使用。
配置vsftpd
在安装结束之后,与网上某些版本的介绍不同,3.0.3版本的vsftpd的配置文件是直接放在/etc文件夹下的,可以用vim编辑器直接编辑。以下贴出个人的vsftpd.conf设置,仅供参考对照修改:
配置结束后,使用vim创建两个新的文件,一个命名为user_list,一个命名为vsftpd.chroot_list,在两个文件里都写上准备使用的用户名。个人准备的是两个用户,uploader和test,分别专门用于上传和下载。一个用户名起一行。
配置pam
配置好vsftpd之后下一步就是配置pam使得登录认证能够正确地生效。这里贴出一个参考链接:vsftpd架设(配置pam模块)
本部分的内容主要取自于这个教程。
首先安装db:
apt install db-util
然后去/etc/pam.d文件夹下,新建一个文件logins.txt,写入用户名和密码。注意是一行用户名一行密码。
保存后执行以下命令:
sudo db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
sudo chmod 600 /etc/vsftpd_login.db
以保证该数据库的权限无误。
然后编辑pam.d下的vsftpd文件,注释/删除掉所有原有的内容,添加以下几行:
然后输入以下命令重启:
invoke-rc.d vsftpd restart
就配置好pam了。
用户设置
配置好pam之后进行用户的设置。首先,在Ubuntu的系统中vsftpd的useradd指令不会再自己添加新的用户默认主文件夹了,所以我们需要手动创建,我将它们创建在home文件夹下,并命名为upload与download。
创建好文件夹之后,我们使用useradd来添加用户:
useradd -s /sbin/nologin -d /home/upload uploader #光使用这一条命令只能创建一个用户而已
passwd uploader #用这条指令来设置密码,个人没有尝试过不过不建议设置为跟pam设置中不同的密码
这样就创建了一个用户。不过只是这样的话还不行,刚刚创建好的uploader实际上还没有获得/home/upload的权限,因此我们需要手动修改它:
chown uploader /home/upload
chmod u+rwx /home/upload
这样就把upload文件夹的权限交给uploader了。用同样的方法设置好test的权限,注意只给予下载用户可读的权限。
准备完成之后就可以重启我们的vsftpd服务:
systemctl restart vsftpd.service
然后去看看我们的服务器了!
附:自动执行种子制作脚本 #!/bin/bashfor file in /home/test/*do if [ -d "$file" ] then echo "$file is a directory." elif [ -f "$file" ] then echo $file a=`basename "$file"` echo $a cp /home/test/$a /home/files python /home/BitTorrent-4.0.3/btmaketorrent.py http://你的服务器IP地址:你设置的tracker端口/announce /home/files/$a b=$a".torrent" echo $b mv /home/files/$b /home/torrent ln /home/files/$a /home/torrent cp /home/torrent/$b /home/download else echo $file fidone