(施工中)羅馬尼亞抗版權大盤雞hostsolutions.ro Ubuntu 16.04搭載Rtorren做種和nextcloud網盤 傻瓜教程

前段時間字幕組做愛娜娜動畫外傳, 因爲女性向群體用BT的人少,檔也比較冷門,導致做種的人比較少。我在老美也是不敢一直直接開BT做種,就想搭建個seedbox,順帶弄個網盤自用點艹度盤的限速。

本人電腦白,網站構建純自學XJB亂搞 。網絡上的教程太雜亂了很多會互相衝突而我又不會修!!!所以這片文章是基於自己在搗鼓使用羅馬尼亞的抗版權VPS服務hostsolutions.ro搭載Rtorren和nextcloud網盤的過程中,循環反覆不下50多遍終於成功後總結的一些經驗。是一個完全適合新手新人搭建的半流水帳教程。

hostsolutions.ro的內核比較老,所以很多方便的功能面板像QuickBoxYUNOHOST都會報錯無法安裝。不選用swizzin是因爲swizzin目前還不能和Aria2兼容實現nextcloud網盤的離線下載功能。另外像 rtinst
GitHub的這個腳本:https://github.com/Aniverse/inexistence 一鍵腳本雖然也很強大功能很多,但是 hostsolutions.ro 裝了之後迷之reboot後無法通過SSH登陸,且修改SSHD文件root遠程登陸密碼登陸也不起效果。實在是沒有能力探究排查(也沒那個能力)於是作罷。

對nginx比較熟悉如何管理二級目錄,所以環境選用 nginx+php+mysql。同樣因為內核老的原因,網站環境可視化面板像寶塔無法安裝。非面板的lnmp一鍵腳本1.5穩定版可以運作,但是考慮到對像我們這種新手小白日後想要再追加新的內容比較麻煩,所以我們還是老老實實一個一個的安裝。

另外安裝過程中因爲程序版本的原因可能反饋不太一樣,但總之萬變不離其變。另外這邊文章寫於2019年2月,以後如果再重新搗鼓的話才會更新。所以還是請注意一下時效性。說不定hostsolutions.ro升級內核了呢!!這樣就不用那麼麻煩了。

工具我使用的是付費軟件 Termius,當然可以用其它SSH和FTP工具代替,
個人推薦 Xshell + XFTP 支持中文並且學生可以免費使用(不查學生身份)下載地址


選購抗版權的服務器

嘛本身就是爲了躲老美這邊傳BT吃警告,所以就乾脆一點直接找個能抗DMCA版權投訴的服務器。搜來搜去覺得在都是1T~2T存儲空間的情況下kimsufi的獨服和hostsolutions.ro性價比比較高(約5美金/月)。

當然真的要在這兩這之間比其實明顯是獨服獨立端口Kimsufi更好一些。無奈前者申請準備文件要的多一點外加我腦子一熱後者直接下單了兩年又懶得退了(。)hostsolution.ro的問題會在下面詳細講(畢竟這也是這片文章誕生的原因)

Kimsufi相關的介紹網上挺多的可以搜一下這邊就不多說了。唯一就是性價比最高的KS-1、KS-2和KS-3不過日常缺貨,有意向的朋友這裏有個貨源上架監測網站可以幫助提醒你 https://ks.saled.cn/ 一般來說蹲個一兩天就能買到了。

反正最後折騰了半天是敲定了hostsolution.ro 1T存儲型VPS(Storage VPS),嘛對我而言是完全夠用了。網站有中文界面,下單時第一步「目前持有的網域名稱」隨便填之後可以改。基本是每月5.4刀(約合人民幣36元),買的多有優惠,像我下單2年只要80刀算下來一個約22元。root密碼一定要記着其它可以的則可以隨便填。結帳可以用信用卡、paypal或者比特幣。

接下來就是等老闆開機了,是的hostsolution.io是要等服務商手動開機的,而且是one-man制,整個公司就老闆一個人(。)這個等待開機時間可就不能保證了,可能半小時可能一兩天全看老闆心情還請耐心等待,老闆比較煩催。聯繫老闆要麼寫工單要麼去 LowEndTalk 找他(@cociu)

等服務器狀態顯示「可用」後就可以點擊查看詳細了。是不是覺得怎麼什麼都沒有而且找不到重裝系統的地方??這時候就需要右上角 – 語言選擇 – 切換英語。 你就能看到Reinstall VM了。

hostsolution.io最主要的問題就是… 內核太老了!!!openVZ,母雞Kenal 2.6,安裝系統最高centos 7、debain 8、ubuntu 16.04 而且老闆不允許你私自直接系統升級。如果在升級過程中出現了問題系統掛機了,寫工單老闆會故意晾着放置Play一段時間。如果實在是需要升級,LowEndTalk上這個帖子供參考。


HostSolutions.ro OpenVZ 升級至Debian8、9或Ubuntu 16.04

以下腳本雖然可以升級,但是並不能確保不會出錯,請謹慎操作。升級需要純淨系統,所以請先重裝系統至debian-7.0-x86-minimaldebian-7.0-x86_64ubuntu-14.04-x86_64-minimal這三個中的一個。

升級這項僅僅是本教程附加內容,可以直接跳過

Debian7 (Wheezy) 升級至 Debian 8 (Jessie) 

apt-get update;apt-get install -y wget ca-certificates;wget https://gist.github.com/lowendscripts/a69971a7a44d4919ce93a83254954489/raw/wheezy_to_jessie_installer.sh; bash wheezy_to_jessie_installer.sh

Debian7 (Wheezy) 升級至 Debian 9 (Stretch)

apt-get update;apt-get install -y wget ca-certificates;wget https://gist.github.com/lowendscripts/9631c6070b241daefcc7d10a2fdb76a2/raw/wheezy_to_stretch_installer.sh; bash wheezy_to_stretch_installer.sh

Ubuntu 14.04 升級至 Ubuntu 16.04

apt-get update;apt-get install -y wget ca-certificates;wget https://gist.github.com/lowendscripts/e6e1d980af9e41806296c0dd5536bfaa/raw/1404_to_1604_installer.sh; bash 1404_to_1604_installer.sh

安裝基本環境(Nginx + PHP + MySQL)

1. 首先我們先卸載apache2服務

sudo apt-get --purge remove apache2
sudo apt-get autoremove

2. 安裝Nginx

sudo apt-get update
sudo apt-get install nginx

3. 安裝MySQL 數據庫

sudo apt-get update
sudo apt-get install mysql-server mysql-client

 它會提示你設置root密碼,請一定要記住這個密碼。

4. 安裝php7.2

sudo apt-get install python-software-properties
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.2 

安裝Rtorrent和Rutorrent(WEBUI)

Rtorrent是純代碼指令操作的BT程序,而Rutorrent則是它的一個基於網頁顯示的操作界面。樣子就和我們平時用的電腦BT軟件一樣。

以防萬一安裝基礎工具,提示 Kernel version not supported 無視

sudo apt-get install nano apache2-utils subversion git screen build-essential automake libtool libcppunit-dev libcurl3 libsigc++-2.0-dev curl unrar unzip libncurses5-dev libfuse-dev libcurl4-openssl-dev libxml++2.6-dev libssl-dev mediainfo

安裝 XMLRPC-C

git clone https://github.com/mirror/xmlrpc-c.git
cd xmlrpc-c/stable/
./configure --disable-cplusplus
make
make install
cd /

安裝 libtorrent

git clone -b feature-bind https://github.com/rakshasa/libtorrent.git
cd libtorrent
./autogen.sh
./configure --disable-instrumentation
make
make install
cd /

安裝Rtorrent

git clone -b feature-bind https://github.com/rakshasa/rtorrent.git
cd rtorrent
./autogen.sh
./configure --with-xmlrpc-c
make
make install
ldconfig

爲了安全起見我們創建一個非root權限的用戶運行Rtorrent,就叫rutorrent好了

useradd rutorrent

useradd XXX 可以跳過設置密碼帳號名爲 XXX的用戶
adduser XXX 是添加帳號名爲 XXX的用戶,如果要刪除則是 deluser XXX

mkdir -p /home/rutorrent/
usermod -a -G rutorrent www-data
usermod -a -G www-data rutorrent

創建 .rtorrent.rc 配置文件,設定諸如同時上傳數啊限速啊保存地點啊之類的。這一步就看你有沒有這個需求了可以酌情自行修改也可以直接無視

sudo vim ~/.rtorrent.rc

這個是我自己的設定


# ----------------------------------------------------------------------
# BitTorrent
# ----------------------------------------------------------------------
 
throttle.max_peers.normal.set     = 200
throttle.max_peers.seed.set       = -1

throttle.max_uploads.global.set   = 200

throttle.min_peers.normal.set     = 1
throttle.min_peers.seed.set       = -1

throttle.global_down.max_rate.set = 0
throttle.global_up.max_rate.set   = 0

schedule2 = low_diskspace,5,60,close_low_diskspace=500M
 
# ----------------------------------------------------------------------
# Directories
# ----------------------------------------------------------------------
 
directory                        = /home/rutorrent/
session                          = /home/rutorrent/.session
#schedule                        = watch_directory,5,5,load_start=/root/rtorrent/watch/*.torrent
encoding.add                     = UTF-8
 
# ----------------------------------------------------------------------
# Network
# ----------------------------------------------------------------------
 
network.port_range.set           = 5555-11000
network.scgi.open_port           = 127.0.0.1:5000
network.port_random.set          = yes
network.tos.set                  = throughput
protocol.pex.set                 = no
trackers.use_udp.set             = yes

dht.mode.set                     = auto
dht.port.set                     = 6881
 
encryption                       = allow_incoming,try_outgoing,enable_retry
 
# ----------------------------------------------------------------------
# Hash
# ----------------------------------------------------------------------
 
pieces.hash.on_completion.set    = no
check_hash                       = no

配置代碼解釋引用自:https://www.moerats.com/archives/638/
更多相關的配置可以參考:https://github.com/rakshasa/rtorrent/wiki/

#正在下载和已完成种子的最大和最小鏈接數量
throttle.min_peers.normal.set = 100
throttle.max_peers.normal.set = 100
throttle.min_peers.seed.set = 100
throttle.max_peers.seed.set = 100

#每个种子最大同时上传数
throttle.max_uploads.set = 20

#最大上传和下载速度,0为无限制
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 0

#BT下载后保存的目录
directory.default.set = /root/rtorrent/download

#设置会话目录,重新启动rTorrent时,所有以前加载的种子将被恢复
session.path.set = /root/rtorrent/.session

#设置种子目录,添加种子自动下载,种子删除后自动停止
schedule2 = watch_directory,5,5,load_start=/root/rtorrent/.watch/*.torrent
schedule2 = untied_directory,5,5,stop_untied=

#服务器硬盘低于200M时停止下载
schedule2 = low_diskspace,5,60,close_low_diskspace=200M 

#监听的端口范围
network.port_range.set = 5555-8888
network.port_random.set = no

#连接UDP trackers
trackers.use_udp.set = yes

#当trackers失效后,启用DHT
dht.mode.set = auto
dht.port.set = 6881

复制好了后,使用Ctrl+XYEnter保存退出,然后新建文件夹。
我用的SSH軟件是Termiuss,vim后開始修改要按i然後才能輸入,保存退出指令是Esc然後:wq!

創建文件賦予權限。注意地址和帳號要和配置文件相同

sudo cp ~/.rtorrent.rc /home/rutorrent/
mkdir -p /home/rutorrent/.session/
chown -R rutorrent:rutorrent /home/rutorrent/
chown -R rutorrent:rutorrent /home/rutorrent/.rtorrent.rc

安裝 WEBUI界面 Rutorrent
因為我的想法是在網站不同的二級目錄里對應配置不同的工具,例如:
xxx.com/Rtorrent —– 對應rtorrent BT工具
xxx.com/nextcloud —– 對應 nextcloud 網盤

所以我們先在 /var/www/ 目錄下面創建一個主網站對應的新目錄 toolbox

mkdir -p /var/www/toolbox

然後安裝界面Rutorrent

cd /var/www/toolbox/
git clone https://github.com/Novik/ruTorrent.git
sudo chown -R www-data:www-data /var/www/toolbox/ruTorrent

修改目錄里/var/www/toolbox/ruTorrent/conf/config.php文件,
可以通過FTP找到筆記本修改,找到下面幾項後修改

$topDirectory = "/home/rutorrent";
$scgi_port = 5000;
$scgi_host = "127.0.0.1"
 
 
$pathToExternals = array(
                "php"   => '',                  // Something like /usr/bin/php. If empty, will be found in PATH.
                "curl"  => '/usr/bin/curl',     // Something like /usr/bin/curl. If empty, will be found in PATH.
                "gzip"  => '',                  // Something like /usr/bin/gzip. If empty, will be found in PATH.
                "id"    => '',                  // Something like /usr/bin/id. If empty, will be found in PATH.
                "stat"  => '/usr/bin/stat',     // Something like /usr/bin/stat. If empty, will be found in PATH.
        );

配置 nginx

通過FTP進入目錄/etc/nginx/sites-available
default文件下載到電腦改個名 ,這裏改成toolbox
用記事本(我個人喜歡用付費軟件EmEditor)打開將下文替換
解釋一下server_name _ 後跟你註冊的域名例如 XXX.com
root後面跟你在 /var/www/ 目錄下面創建一個主網站文件夾地址
修改完後保存並通過FTP上傳至目錄/etc/nginx/sites-available

server {
	listen 80 ;
	listen [::]:80 ;

	listen 443 ssl ;
	listen [::]:443 ssl ;
	server_name _ 你註冊的域名;

	root /var/www/toolbox/;
	index index.html index.htm index.nginx-debian.html;

	location / {
		try_files $uri $uri/ =404;
	}
	location /ruTorrent {
		try_files $uri $uri/ =404;
	}
 
	location /ruTorrent/RPC2 {
		include /etc/nginx/scgi_params;
		scgi_pass 127.0.0.1:5000;
	}
 
	location ~ .php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/run/php/php7.0-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
 	 }


}

重新關聯短鏈接

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/toolbox /etc/nginx/sites-enabled/

确认nginx有没有正确配置

nginx -t

重启nginx

sudo service nginx restart

這樣就可以通過你的網址 xxx.com/ruTorrent/ 訪問你的seedbox了


安裝 supervisor + H5ai 支援 rtorrent (施工中)

框架已經搭好了,然而現在還有個問題,我們要讓rtorrent保持後臺運行
不然你通過網頁訪問rtorrent就會顯示 Torrent list not yet available, connection to rTorrent not established.

sudo apt-get install supervisor
echo_supervisord_conf > /etc/supervisord.conf

通過FTP找到 /etc/supervisord.conf文件進行修改,在最下方添加如下字段
注意 environment = HOME="/home/rutorrent"user = rutorrent 要改成先前創建的用戶名。我這邊用戶名是就rutorrent所以不去變動了

[program:rtorrent]
command = rtorrent
environment = HOME="/home/rutorrent"
user = rutorrent
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/rtorrent.log
stderr_logfile = /var/log/supervisor/rtorrent.error.log

給予讀寫權限,同樣注意用戶名的問題

sudo chmod 777 /home/rutorrent/.session/

創建查錯目錄

mkdir -p /var/log/supervisor

最後運行supervisord讓Rtorrent保持後臺運行

supervisord -c /etc/supervisord.conf

設置開機啓動 supervisord (hostsolutions.ro有時會自行reboot服務器,如果我們不設置supervisord開機自起,那什麼時候rtorrent後臺停止工作了都不知道 )

sudo wget https://raw.githubusercontent.com/mjsilva/rtorrent-screen-debian-init-script/master/rtorrent -P /etc/init.d/ && sudo chmod +x /etc/init.d/rtorrent && sudo update-rc.d rtorrent defaults 99

找到/etc/rc.local 這個文件,在 exit 0之前加入如下命令並給修改權限

vim /etc/init.d/rtorrentrestart.sh
#!/bin/bash
### BEGIN INIT INFO
# Provides:          bbzhh.com
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: tomcat service
# Description:       tomcat service daemon
### END INIT INFO
 
sleep 3
supervisord -c /etc/supervisord.conf
exit 0
chmod +x /etc/init.d/rtorrentrestart.sh
cd /etc/init.d/
update-rc.d rtorrentrestart.sh defaults 90
update-rc.d -f /etc/init.d/rtorrentrestart.sh remove

安裝Rtorrent插件 (非必要)

sudo apt-get install unrar unzip ffmpeg mediainfo curl sqlite3 -y

cd /var/www/toolbox/
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.5.zip
unzip nextcloud-15.0.5.zip 
rm -f nextcloud-15.0.5.zip
chown www-data nextcloud -Rf
chmod 770 nextcloud -Rf
mysql -uroot -p

CREATE USER 'nextcloud'@'localhost' identified by '密码';
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
quit;
vim /etc/nginx/sites-available/toolbox
   location /nextcloud {
        try_files $uri $uri/ =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME                         
        $document_root/$fastcgi_script_name;

    }

參考資料:

https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-ubuntu-16-04
https://chooseneye.com/2018/03/install-rtorrent-rutorrent-with-nginx-on-debian-9/
https://lala.im/3216.html
https://sb.sb/blog/debian-install-rtorrent-rutorrent-nginx/
https://blog.csdn.net/xyang81/article/details/51555473
https://www.cnblogs.com/xishuai/p/ubuntu-install-supervisor.html
https://raspberrypi.stackexchange.com/questions/13358/insserv-warning-script-mathkernel-missing-lsb-tags-and-overrides




发表评论