阅读视图

189List:一个全新的天翼云网盘的目录列表程序,CTList升级版

说明:由于CTList因为接口问题导致程序无法使用,加上存在一些问题,所以直接放弃更新;最近萌咖大佬抽时间,摒弃CTlist的短板,开发了新的列表程序,这里暂且命名189List,可以说几乎将性能优化到极致,之前爆内存等问题统统不存在了,且安装配置更加简单。

当然,如今用天翼网盘的人估计也不多了,也不怕被滥用,所以现在的程序已经不需要授权码了,直接可以使用,且样式和CTlist差不多,这里就不截图了。

功能

  • 支持添加多账户(多配置互不干扰)
  • 支持自动签到(每天自动增加网盘容量)
  • 支持异步缓存目录结构,无须等待
  • 支持加密访问路径(隐私分享)
  • 支持展示任意目录,自定义根目录
  • 支持以JSON格式输出内容(作为后端)
  • 支持获取预览图链接,方便前端展示
  • 支持只读挂载到PotPlayer(WebDAV), nPlayer(WebDAV),kodi(WebDAV)

安装

Github地址:https://github.com/MoeClub/vList/tree/master/189List

这里只说Linux的用法。

1、安装CTList

#新建并进入CTList目录
mkdir /opt/189List && cd $_

#64位系统下载
wget https://raw.githubusercontent.com/MoeClub/vList/master/189List/amd64/linux/189List

#32位系统下载
wget https://raw.githubusercontent.com/MoeClub/vList/master/189List/i386/linux/189List

#arm32架构下载
wget https://raw.githubusercontent.com/MoeClub/vList/master/189List/arm/linux/189List

#arm64架构下载
wget https://raw.githubusercontent.com/MoeClub/vList/master/189List/arm64/linux/189List

下载好二进制后,继续使用命令:

#给予权限
chmod +x 189List

#下载主题文件
wget https://raw.githubusercontent.com/MoeClub/vList/master/index.html

2、新建配置文件

vi /opt/189List/config.json

首先按一下键盘的i键,进入编辑模式,这时候可以使用键盘进行编辑,编辑代码详解如下:

#单账号,rootId为展示的目录id,默认为根目录;rootPath指定某账户访问路径, 如ip:8000/189List,多账户时每个路径必须唯一
[
  {
    "user": "手机号",
    "passwd": "密码",
    "rootId": "-11",
    "rootPath": "/189List"
  }
]

#多账号,以下为2个账号,有几个复制几个,注意用英文逗号分隔
[
  {
    "user": "手机号",
    "passwd": "密码",
    "rootId": "-11",
    "rootPath": "/189List"
  },
  {
    "user": "手机号",
    "passwd": "密码",
    "rootId": "-11",
    "rootPath": "/189List"
  }
]

全部编辑好了后,按一下键盘的esc键退出编辑模式,接下来输入英文:wqenter键确定,即保存退出。

全部配置参数详情参考,可根据需求自行加入:

#json文件格式标准中规定最后一行数据没有逗号.
[
  {
    "disable": false,
    // 是否关闭该配置
    
    "user": "手机号",
    
    "passwd": "密码",
    
    "rootId": "-11",
    // 根目录文件夹ID, 默认 -11
    
    "rootPath": "/Cloud189",
    // 挂载的虚拟路径
    
    "authItem": "abc:123@/Movie|xyz:456@/Private/*",
    // HTTP 401 加密项, 以 | 为分隔符. 可以 * 结尾匹配路径. 路径为去掉挂载虚拟路径后的路径.
    // abc:123@/Movie  当访问 /Cloud189/Movie 时需要提供用户名 abc 和 密码 123, 但 /Cloud189/Movie 下的子项无需提供用户名密码.
    // xyz:456@/Private/*   当访问 /Cloud189/Private 及其子项时需要提供用户名 xyz 和 密码 456.
    
    "nodeInterval": 1800,
    // 目录刷新间隔, 最小值: 300
    
    "linkInterval": 300
    // 下载链接刷新间隔, 最小值: 60, 最大值 360
    
  }
]

3、调高limits

这里调整下limitslinux下可能由于高并发情况下会出错,使用命令:

[ -f /etc/security/limits.conf ] && LIMIT='262144' && sed -i '/^\(\*\|root\)[[:space:]]*\(hard\|soft\)[[:space:]]*\(nofile\|memlock\)/d' /etc/security/limits.conf && echo -ne "*\thard\tmemlock\t${LIMIT}\n*\tsoft\tmemlock\t${LIMIT}\nroot\thard\tmemlock\t${LIMIT}\nroot\tsoft\tmemlock\t${LIMIT}\n*\thard\tnofile\t${LIMIT}\n*\tsoft\tnofile\t${LIMIT}\nroot\thard\tnofile\t${LIMIT}\nroot\tsoft\tnofile\t${LIMIT}\n\n" >>/etc/security/limits.conf

windows系统下不需要调。

4、启动189List

新建一个简单的systemd配置文件,适用CentOS 7Debian 8+Ubuntu 16+

使用命令:

#设置你的运行监听端口,即你可以通过ip:端口访问程序,这里默认8000。
port="8000"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/189list.service <<EOF
[Unit]
Description=189list
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/189List
ExecStart=/opt/189List/189List -bind 0.0.0.0 -port ${port}
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
#启动并设置开机自启
systemctl start 189list
systemctl enable 189list

相关命令:

启动:systemctl start 189list
停止:systemctl stop 189list
重启:systemctl restart 189list
查看状态:systemctl status 189list

启动后就可以使用ip:8000或其它端口访问程序列表了,有些访问不了的注意下防火墙端口没打开,可使用命令:

#CentOS 7
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload

#Debian/Ubuntu
ufw allow 8000

安装过宝塔面板的,可以直接去后台安全组开放端口,且有些服务商,如阿里云,腾讯云还需要去后台面板的安全组开放该端口才可以访问。

绑定域名

提示:有宝塔面板的直接安装nginx绑定,没有的就可以使用caddy,2选1即可。

宝塔面板

先进入宝塔面板,然后点击左侧网站,添加站点,再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8000,不要设置缓存,再启用反向代理即可。

如果要启用SSL,就需要在设置反向代理之前,直接在站点配置点击SSL,申请免费let证书,然后再启用反代即可。

Caddy绑定

安装Caddy

mkdir /usr/local/caddy
wget -O /usr/local/caddy/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64"
chmod +x /usr/local/caddy/caddy

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
echo "https://www.moerats.com {
reverse_proxy 127.0.0.1:8000 {
      header_up X-Real-IP {remote_host}
      header_up X-Forwarded-Proto {scheme}
   }
}"> /usr/local/caddy/Caddyfile

注意该配置会自动配置ssl证书,请提前解析好域名并生效,且服务器80/443端口为开放状态,不然绑定会出错。

启动Caddy

#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/caddy.service <<EOF
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
User=root
ExecStart=/usr/local/caddy/caddy run --environ --config /usr/local/caddy/Caddyfile
ExecReload=/usr/local/caddy/caddy reload --config /usr/local/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
EOF

#启动并设置开机自启
systemctl start caddy
systemctl enable caddy

就可以打开域名进行访问了。

最后更多功能和参数还在调试中,后续放出来;使用过程中有BUG也可以随时反馈。

  •  

CTList:一个可以绑定多个天翼云网盘的目录列表程序,支持视频播放

说明:之前介绍过很多OneDriveGoogle Drive网盘目录列表程序,但在国内使用的话,网络速度都不理想。最近使用天翼云网盘的人开始多了起来,在国内使用的话,速度还是很不错的,毕竟由电信骨干网支持,国内AWS为文件实际储存节点,基本上速度都是秒开,当然,看片也是无需等待,这里萌咖大佬就写了个天翼云网盘的目录列表程序CTList,安装也是十分简单,和博主之前介绍的OneList差不多,整个站点目录支持在nPlayer播放器中使用,之前通过BUG撸的30T和老用户10T2T空间的都可以利用一下,对于新用户,现在默认30G空间,但经常有送容量的活动,这里就说下安装方法。

截图

请输入图片描述
请输入图片描述

更新

【2021.07.30】
1、修复因天翼更换登陆接口造成登录失败的问题,直接从github下载文件覆盖即可

【2021.06.01】
1、适配kodi(WebDAV)
2、优化性能

【2020.05.10】
优化文件访问/下载速度,已安装过的建议更新下,最新版地址:https://github.com/iiiiiii1/CTList。

【2020.04.23】
1、改善cookies保活机制
2、增加强制HTML/WebDAV配置项
3、加快资源释放

【2020.04.20】
现在开始停止送码,基本上留过言的都送了,项目暂时不会开发新功能,遇到BUG的留言即可。

【2020.04.19】
修复部分BUG,已使用上的可以进行更新修复

【2020.04.15】
该项目暂时关闭,重新补发30个码,安装了未激活的或者已用的可以继续激活使用。

功能

  • 支持多账户
  • 支持显示文件夹大小
  • 支持每天自动签到
  • 支持异步缓存
  • 支持隐藏指定文件夹和文件
  • 支持整个目录,单层目录或单文件访问加密
  • 支持展示任意目录,自定义根目录
  • 支持只读挂载到PotPlayer(WebDAV), nPlayer(WebDAV),kodi(WebDAV)

申请码

提示:获取到授权码后,只能和绑定的账号一起用,在任意服务器都可以安装使用。

CTList Apply Token申请码:

#2020.4.14
2674253DF2154B5A00F5DF05756E7652
9D0B2F6DFA114276DD9A954E6F9948DA
6190D9FF0597748CF164899045D4E210
B2329E6485CD5B7694D0719BF958131E
65F0062A94F68E0179B244D636D89BCD
61683B9642E04DFF0B9353E2E990FF32
231676C503495F33E738C64E791064E9
A656DF714A20A0D2D5E279D16983AB33
D81B56EFA750E69A9AB5EE131F56E4F1
A5177158C8FC44FB8D177B22684954F1
A14519C669990E611F06F5239B0690D2
43A81E7BE5AD2369DA81B7B31FBB4F69
28C3EBC5CB06A6CA9F0BE2F7A42D6F4A
C9E223825FD750FAD4FFEF2F5BBB603E
D77462297AF7F3C333770CAFA7A99CBB
0A65F0E3C54D01502AE1D987BEA1EF89
BDC77BE0C3C504CBC6861D19654ACAF9
D87CF362094468706A7C96F4CE190862
629B180D9AA05B340EFB140B796BF4FD
60EF6F6B8FF478F06EBBA5F8D097786F
1C0A10B53D249A276C9BEDEF98E5F9A3
BFD242F9E7E2E861AAC2C7C3AFF05418
4075B20EBCBFDEBD2B7341327E4D7A95
44CD247E86EF17BFB850A1ED1F29B868
832749B873F8B3AB20271FAA9CBD108E
C0FBDC73C6445660753173E4904270C7
A85895DCB7281C9A5C97B6BEC8F24525
064C591C151D8F14000E975E61FC606E
7E09D3E6C88FD1E40D75DDA0A86BDD26
8AC4C583974E70256E1B6F994947768C

#2020.4.15新增
619A60E465F6384E6E612A39E9792A02
76F3BCD10C053DE6F590E988B5794B73
3E3B5E2EBF9B7283E4D83BD6E7A22A4D
E016F9D4E7151252978396750464B7A6
BFDBAFAC6555D3D684808C79EEC89CD7
5C5C8313311ECC9AA2CE2124D7BEDE08
9A5CA3744DCD93399C0208D8F080A345
D0378BA424E024D9A7E6AFEDCF072892
2482219C2DB38A28B693C83123ECD330
1650CE4BA08450B3069877D3196CA580
C697525F70C3573A3BFFC35A593C882B
4010DB574F9E8BC6FCE699F7EED69291
912185D9CC84F7D88079408A4C315B05
C20341E5B58D429D96A95E4129D5F853
ADA16FC3CC9791041187E8E3DA734D2E
56CA0807F24FC7BF005CA61E59A3E562
18EDA147D328AE8E715FDEF465216672
7B3E000B3EA890C76620CB3F749DFD07
135EE1FDE7B0478E8816CFB8A707FDED
651CFE6712CC68CAB511854E5FC96B04
E7008EEC4B54ED547C3A401B6E9ACB10
8390CFC71D159058615798F55D4D4D6D
2E7C42E0D395B7D66DEE2C6A80116BF4
4C9F2B93B501653308970BB20E556A1D
4D48D713CE4D552955905E5A4E78C7AD
4438DC2F531054A9279A1745FF582530
E154D7F9A7D5A3B493D642C394A38640
976130C15FE5D932F8FF86C0E54F671C
CD0A3D8DB4079DFDF51802019D8EB95D
240EF1812AE40B5F494A4134E0F309B4
FF949E15A4BBD497C276497337266481
B79DDA22666B855CED75218526998BF9
F279A5404431D34A5320D15247ED4E32
DA56FAF28AA55EB3F2C27FE22BAC6443
0123798B2BFAF5648E76ADD6D37A8A99
EDD59DCE9717DEF0684B44AA55F3220D
25DFE5E6FD05E61EC3FDEC2596B89268
428AE41787E4E40CA81D3C9BD68A7B60
D1635D178945D06825F69DCD6FE8E521
11A8CC190EB8426E21D478FC21949AF3

#2020.4.23新增
1D15BC7C9D1F144389A2B75FCCE8E4EE
941E7C1D8564D0B6BB38D4183EB2AAD4
3B48BBF789A9481A53C0EFC5C6E88C96
8046CF262FF4488553CE9AB6FC5A2ED7
B402B08B8386F612D7A087136F3029DF
7FD3ADFDEADEF2B184538B5244CF5096
35E86A05763C3F10A6C9D4FB9423000A
3A60EE7341E2D17E228E8D541AE19B5F
329586545FEA6221827F95EC39377CAA
6C519BA5CB4CD3F0BE5C00D9B679D329

#2020.4.25新增
205D21D3B34F479D0F64E1F1C5DC9647
95BFADD620483E7D6BB7B8D7957E8262
587BA47676352B4F9E11925E47937782
98DFD8A200050BE7D9A8DC7BBEE1FF5E
1E0BFF9D6D598FF146475A641725C63C
4A9ACDA1F26DA156E34D7AF2CDBD3FA3
20F1F9C98A487369745DD9EDC5B8ABC0
C051441120C80489412E40C6069980B5
3DCE9DF07BFCEE09A4EE17AC35B973E1
993011668DA5D80ACD8BDCDEDABF8DD2

安装

Github地址:https://github.com/MoeClub/CTList

这里只详细说下Linux的用法,WindowsMacOS系统二进制文件下载地址→传送门,使用方法和Linux都差不多。

1、申请天翼账号
老用户就不用申请了,新用户点击→传送门,选择短信验证码登录即可,这里联通、移动手机号都可以登录注册。

2、安装CTList

#新建并进入CTList目录
mkdir /opt/CTList && cd $_

#64位系统下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/amd64/linux/CTList
#32位系统下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/i386/linux/CTList
#arm架构下载
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/exec/arm/linux/CTList

#给予权限
chmod +x CTList

3、下载配置文件

#下载配置文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/config.json
#下载默认的主题文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/index.html

这里提供2款可在线浏览图片,在线观看视频等其他功能的主题文件→传送门,直接下载index.html文件,覆盖即可。

4、编辑配置文件
编辑配置文件config.json,大致说明如下:

[
    {
        "Enable": 1,                  # 0: 关闭, 1: 打开                                              
        "UserName": "",               # 天翼云网盘登陆用户名,不需要@189.cn.                                            
        "Password": "",               # 天翼云网盘登陆密码                                            
        "CaptchaMode": "0",           # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.             
        "ViewMode": 0,                # 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                 
        "RefreshToken": "",           # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.                                               
        "SubPath": "/CTList",         # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.                                              
        "RootPathId": "-11",          # 设置展示天翼网盘目录的ID, 根目录为 -11.                                             
        "HideItemId": "0|-16",        # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.                                             
        "AuthItemId": "",             # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"                                              
        "RefreshURL": 189,            # 下载直链缓存的秒数. 超时则被动更新.                                             
        "RefreshInterval": 1800       # 刷新目录结构,如果不常更新,建议设置更长时间.
    }
]

如果没啥特殊需求,只需要填写账号密码即可即前4项,且CaptchaMode后面将0改为https://api.moeclub.org/SampleCode用于识别登陆验证码,如果使用期间有修改过配置文件,需要重启CTList

5、调高limits
这里调整下limitslinux下可能由于高并发情况下会出错,使用命令:

[ -f /etc/security/limits.conf ] && LIMIT='262144' && sed -i '/^\(\*\|root\)[[:space:]]*\(hard\|soft\)[[:space:]]*\(nofile\|memlock\)/d' /etc/security/limits.conf && echo -ne "*\thard\tmemlock\t${LIMIT}\n*\tsoft\tmemlock\t${LIMIT}\nroot\thard\tmemlock\t${LIMIT}\nroot\tsoft\tmemlock\t${LIMIT}\n*\thard\tnofile\t${LIMIT}\n*\tsoft\tnofile\t${LIMIT}\nroot\thard\tnofile\t${LIMIT}\nroot\tsoft\tnofile\t${LIMIT}\n\n" >>/etc/security/limits.conf

windows系统下不需要调。

6、启动CTList
这里启动改成了授权模式,需要申请码获取授权码,获取授权码→传送门Apply Token和用户名即手机号必填,且一个申请码只能绑定一个天翼云账号,绑定多个账号需要在同样的授权码上绑定其它账号。

#申请码使用提示
[Success]: 绑定成功.
[Query Mode]:查询模式, 查询授权码. 申请码已经被使用.
如果没有有效授权的用户, 运行程序时会出现Error! No Valid User.

这里如果你想支持下萌咖大佬,可以前往萌咖杂货店→传送门,选择捐赠 #11即可。

获取到授权码后开始启动CTList

#直接运行
/opt/CTList/CTList -a "AUTH_TOKEN" -bind 0.0.0.0 -port 8000

#后台运行
/opt/CTList/CTList -a "AUTH_TOKEN" -bind 0.0.0.0 -port 8000 -d

AUTH_TOKEN为获取到的授权码,8000为访问端口,运行前自行修改。

启动了后,就可以使用ip:8000/CTList访问程序了,后面为SubPath参数路径,自行修改。

如果你访问不了程序,可能要检查下防火墙端口,有安全组的也要放行下相关端口。

这里提供个CentOS系统防火墙开启命令,比如开放8000端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload

7、开机自启
这里新建一个简单的systemd配置文件,适用CentOS 7Debian 8+Ubuntu 16+

使用命令:

#设置你的运行监听端口,即你可以通过ip:端口访问程序,这里默认8000。
port="8000"
#设置你的授权码,自行修改
AUTH_TOKEN="xxxxxxx"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/ctlist.service <<EOF
[Unit]
Description=ctlist
After=network.target

[Service]
Type=simple
ExecStart=/opt/CTList/CTList -a ${AUTH_TOKEN} -bind 0.0.0.0 -port ${port} -l
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
#启动并设置开机自启
systemctl start ctlist
systemctl enable ctlist

相关命令:

启动:systemctl start ctlist
停止:systemctl stop ctlist
重启:systemctl restart ctlist
查看状态:systemctl status ctlist

绑定域名

提示:有宝塔面板的直接使用宝塔就行,没有的就可以使用caddy,2选1即可。

宝塔面板

先进入宝塔面板,然后点击左侧网站,添加站点,再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8000,不要设置缓存,再启用反向代理即可。

如果要启用SSL,就需要在设置反向代理之前,直接在站点配置点击SSL,申请免费let证书,然后再启用反代即可。

Caddy绑定

安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "www.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8000
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8000
}" > /usr/local/caddy/Caddyfile

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

卸载

#未设置开机自启
rm -rf /opt/CTList

#设置过开机自启
systemctl stop ctlist
systemctl disable ctlist
rm -rf /opt/CTList /etc/systemd/system/ctlist.service

多账号配置

[
    {
        "Enable": 1,                  # 0: 关闭, 1: 打开                                              
        "UserName": "",               # 天翼云网盘登陆用户名,不需要@189.cn.                                            
        "Password": "",               # 天翼云网盘登陆密码                                            
        "CaptchaMode": "0",           # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.             
        "ViewMode": 0,                # 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                 
        "RefreshToken": "",           # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.                                               
        "SubPath": "/CTList",         # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.                                              
        "RootPathId": "-11",          # 设置展示天翼网盘目录的ID, 根目录为 -11.                                             
        "HideItemId": "0|-16",        # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.                                             
        "AuthItemId": "",             # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"                                              
        "RefreshURL": 189,            # 下载直链缓存的秒数. 超时则被动更新.                                             
        "RefreshInterval": 1800       # 刷新目录结构,如果不常更新,建议设置更长时间.
    },
    {
        "Enable": 1,                  # 0: 关闭, 1: 打开                                              
        "UserName": "",               # 天翼云网盘登陆用户名,不需要@189.cn.                                            
        "Password": "",               # 天翼云网盘登陆密码                                            
        "CaptchaMode": "0",           # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.             
        "ViewMode": 0,                # 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                 
        "RefreshToken": "",           # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.                                               
        "SubPath": "/CTList",         # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.                                              
        "RootPathId": "-11",          # 设置展示天翼网盘目录的ID, 根目录为 -11.                                             
        "HideItemId": "0|-16",        # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.                                             
        "AuthItemId": "",             # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"                                              
        "RefreshURL": 189,            # 下载直链缓存的秒数. 超时则被动更新.                                             
        "RefreshInterval": 1800       # 刷新目录结构,如果不常更新,建议设置更长时间.
    }
]

以上为2个账号配置,注意SubPath不能一样,如果3个账号,直接在[]里面加一次配置文件代码,注意中间使用英文逗号,区分。

使用问题

1、访问地址
根据配置文件中的SubPath项中参数访问具体网盘,一般SubPath的具体值在终端中显示在中括号内。

例如: "SubPath": "/CTList"
访问: http://127.0.0.1:5189/CTList

例如: "SubPath": "/"
访问: http://127.0.0.1:5189/

2、寻找目录ID
用于RootPathIdHideItemIdAuthItemId配置项,登陆https://cloud.189.cn,进入需要操作的目录,查看地址栏最后的数字就是这个目录的ID

文件ID需要浏览器F12查看请求项。

RootPathId: 列表展示的根目录对应的天翼网盘文件夹ID, 天翼网盘根目录ID为 -11 
HideItemId: 在展示目录中隐藏天翼网盘内的文件或文件夹,填写其ID,使用 "|" 分隔
AuthItemId: 在展示目录中加密天翼网盘内的文件或文件夹,使用 "|" 分隔

3、加密目录
AuthItemId配置项采用HTTP 401认证方式加密。

# 单个写法
"AuthItemId": "-11?0?UserName:Password"
# 多个写法
"AuthItemId": "-11?0?UserName:Password|-16?1?UserName:Password"

# 字段解析
<文件或者目录的ID>?<加密模式>?<用户名>:<密码>

# 加密模式,加密文件选0和1效果相同.
0: 只加密这一层文件夹,可以直接访问这层文件夹内部的内容.
1: 加密这个文件夹的所有子项目.

4、刷新策略

# 4个刷新逻辑完全异步,互不影响.
Token(登陆保活): 60 * 60 * 10
Cookie(会话授权): 60 * 30
RefreshURL(真实下载链接): 189 (配置文件可改 <RefreshURL>)
RefreshInterval(刷新目录结构): 60 * 15  (配置文件可改, 全局最小值生效 <RefreshInterval>)

5、使用说明

Usage of CTList:
  -bind string
        Bind Address (default "127.0.0.1")
  -port string
        Port (default "5189")
  -a string
        Auth Token.
  -c string
        Config file. (default "config.json")
  -t string
        Index file. (default "index.html")
  -json
        Output json.
  -d
        Run in the background.
  -l
        Less output.

6、目录访问
SubPath配置项,控制目录访问

# 多账户时,确保 SubPath 项唯一.

当 SubPath 配置为空("")或者为单斜杆("/")时
访问路径为 http://0.0.0.0

当 SubPath 配置为具体字段("/CTList")时, "/CTList" 可以修改成自己喜欢的字段.
访问路径为 http://0.0.0.0/CTList

7、在nPlayer播放器中使用

# 网络 --> 添加 --> WebDAV
# 主机: 填写域名.
# 路径: 填写 SubPath 值. 如: /CTList
# 其他请按照情况填写.

# 优势: 在播放器中可以播放各种编码格式的视频.
# 可以适当的将最小缓存时间调小,提高浏览体验.

8、报错相关

400(Not Found URL): 未能找到该文件的链接.
404(Not Found): 未完成初次缓存目录结构或文件路径不正确.
422(Not Found Real URL): 未能生成真实的文件下载链接(一般是文件被举报了,无法下载).
5XX: 一般是服务器端的问题. 部分可能的情况有: 主程序没开, 端口不通, 反代配置不正确.

最后天翼云网盘APP会经常做活动,送空间容量和会员什么的,可以自己下载个app领一下福利,目前这里列举2个活动:

#免费领取3个月黄金会员
https://m.cloud.189.cn/zhuanti/2020/share-vip/web.html

#免费领取1年黄金会员,图片随便传个就过了
https://m.cloud.189.cn/zhuanti/2020/teacher-vip/web.html

#免费领取家庭云1T空间
https://m.cloud.189.cn/zhuanti/2019/1t-v2/web.html

最后该程序拿来搭建个下载站什么的基本够了,空间多的还可以下点电影啥的看看都行。

  •  

live-torrent:一个支持磁力链和种子的在线搜索云播Web客户端

说明:live-torrent是一个功能强大的BT Web客户端工具,支持BT搜索和云播,我们可以直接使用程序内置的引擎搜索查找资源,也可以自行上传种子文件或磁力链接添加任务,程序支持自动识别种子内视频文件,点击播放按钮可以直接在线播放,该程序支持对接OpenSubtitles,自动给视频添加字幕。同时也提供一个热门电影排行榜,并提供对应资源给你播放和下载。不过唯一有点小遗憾的就是,不支持在线搜索中文资源,所以中文资源只能自己上传种子文件进行识别播放下载。

截图

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

手动安装

Github地址:https://github.com/Davenchy/live-torrent

1、安装NodeJS

#Debian/Ubuntu系统
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt install -y git nodejs 

#CentOS系统
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs git -y

2、安装live-torrent

git clone https://github.com/Davenchy/live-torrent
cd live-torrent
#安装依赖
npm i
#打包运行
npm run build
nohup npm start&

装好后通过ip:3000访问Web客户端了。

Docker安装

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、安装live-torrent

docker run --restart=always --name live-torrent -d -p 8080:8080 davenchy/live-torrent

然后就通过ip:8080访问Web客户端了。

最后如果你访问不了Web端,可能要检查下防火墙端口,有安全组的也要放行下相关端口。

这里提供个CentOS系统防火墙开启命令,比如开放3000端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
  •  

Proxyer:一款简单且带Web面板的内网穿透工具

说明:关于内网穿透的工具,博主已经介绍的非常多了,比如frplanproxynpsholersishserveo等,用起来都还行,不过有些在安装和使用上对于一些新手来说,还是比较复杂的,最近博主发现了个新的内网穿透项目Proxyer,目前仅支持TCP协议、虽然看起来功能比较简单,但基本可以满足日常使用了,特别是在安装和使用方面,对于新手是比较友好的,这里就分享下。

截图

请输入图片描述
请输入图片描述

服务端

Github地址:https://github.com/khvysofq/proxyer

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、安装Docker Compose

curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3、安装Proxyer

wget https://raw.githubusercontent.com/khvysofq/proxyer/master/docker-compose.yml
#请将后面1.1.1.1改成你的服务器ip地址后再运行
export PROXYER_PUBLIC_HOST=1.1.1.1
docker-compose up -d

安装完成后,就可以通过ip:6789访问服务端WEB管理面板了,进去后需要设置一个客户端认证密码。

然后CentOS系统建议关闭防火墙使用,或者打开部分端口也行,关闭命令:

#CentOS 6系统
service iptables stop
chkconfig iptables off

#CentOS 7系统
systemctl stop firewalld
systemctl disable firewalld

像阿里云等服务器,还需要去安全组那里开放下端口。

客户端

进入服务端面板后,界面会提供LinuxWindowsmacOS客户端版本,然后自行根据自身系统下载指定版本的压缩包即可。

Windows可以直接下载界面版本,然后双击可执行文件,会弹出一个网页界面,输入上面的认证密码,即可开始配置穿透。

Linux下载压缩包后,解压出二进制文件,直接在当前目录使用./proxyer命令运行即可。

最后使用起来还是很简单的,由于是新项目,功能可能不是很丰富,看作者后期会不会慢慢完善了。

  •  

视频切片后自动上传至国内免费CDN,无成本加速视频播放

说明:一般我们观看自己下载的电影时候,通常会因为网络或者带宽原因很卡,所以就得处理下,这里萌咖大佬闭关半个月,写出了一个视频转码切片后自动上传至国内cdn的脚本,脚本默认提供上传到语雀cdn的脚本、采用多线程上传,这里默认10线程,基本上可以很大程度上提高视频的播放速度。

更新

【2020.4.1】
由于语雀修复了上传bug,所以移除语雀cdn,默认修改为阿里云图床。

使用

Github地址:https://github.com/MoeClub/Note/tree/master/ffmpeg

1、安装ffmpeg

wget https://www.moerats.com/usr/down/ffmpeg/ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz
tar xvf ffmpeg-git-*-static.tar.xz
mv ffmpeg-git-*/ffmpeg  ffmpeg-git-*/ffprobe /usr/local/bin/
rm -rf ffmpeg-git-*

2、安装脚本

#新建/opt/ffmpeg文件夹存放脚本等文件
mkdir /opt/ffmpeg && cd $_
#下载并运行脚本
wget https://raw.githubusercontent.com/MoeClub/Note/master/ffmpeg/Install.sh
bash Install.sh

3、启动播放器
由于切片生成m3u8文件后,需要播放器才能播放,而上传脚本也会自动推送m3u8文件到播放器根目录,所以这里可以配合一起用,当然自己会播放m3u8的也可以不用搭建,自行选择。

安装pip3

#CenOS 6系统
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum install python34 -y
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

#CenOS 7系统
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install python36 -y
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

#Debian/Ubuntu系统
apt update
apt install python3-pip -y

安装依赖:

#进入到播放源码文件夹
cd /opt/ffmpeg/Player
pip3 install tornado

后台启动:

nohup python3 Player.py&

注意Player.py文件的MasterKey值需和publish.shToken值对应,别乱改就行。

4、脚本用法

#命令示例
bash /path/to/media.sh <不含特殊字符的文件名.mp4> [特殊选项]

#特殊选项: 数字;可选参数,默认为0
#0:自动根据文件比特率计算合适的切片大小。(目标文件大小小于20M,一般情况下没问题)
#1:强制重新编码,重新编码比特率为2400k。(一般用于非H264编码,文件切片,速度较慢)
#2:自定义切片时间,当为2时切片时间为3秒,当大于等于3时切片时间为特殊选项数字。

使用示例:

#进入视频所在目录
cd /root/movies

#默认模式切片
bash /opt/ffmpeg/media.sh rats.mp4
#强制重新编码
bash /opt/ffmpeg/media.sh rats.mp4 1
#极速模式, 设置2s一个切片(源文件为H264编码情况下)
bash /opt/ffmpeg/media.sh rats.mp4 2

5、播放示例

#查看推送到播放器这边的m3u8所有文件
http://ip:5866/Player/list

#播放list显示的根目录下的rats.m3u8文件
http://ip:5866/Player/rats.m3u8

上传到语雀CDN

提示:该方案可选,目前语雀默认免费10G,具体可参考官方说明。

先前往语雀官网注册一个账号→传送门,然后获取ctokensession的值,这里说下大概获取方法,以谷歌浏览器为例。

登录后,F12进入控制台选择Network,随便点击一个以yuque开头的链接文件,再选择Cookies即可看到所需要的2个参数。
请输入图片描述
然后复制ctokensession的值。

接下来查看语雀脚本→传送门,将脚本所有的内容复制替换到upload.sh脚本里面,并填入ctokensession的值,保存即可,上传方法参考上面。

最后如果你是vps的话,就不建议强制转码,只切片就行了,不然长时间占用cpu的话,服务器可能会被ban,基本上大多数mp4都可以直接切片。

  •  

unlock-music:支持解密网易云/QQ音乐的加密文件和ID3信息补全

说明:最近有小伙伴推荐了个解密工具unlock-music,支持网易云音乐/QQ音乐的VIP音乐文件批量解密导出为MP3或无损格式,包括ncmqmc0qmc3mcflacqmcoggmflac格式及补全ncmID3信息,挺实用的,毕竟通常情况下,当这些客户端VIP会员到期后会自动删除已下载的VIP音乐文件。而且文件是加密格式的只能用客户端播放,会员到期后就算保留音乐文件也无法使用,而且加密格式无法在汽载音响或其他设备上播放,用起来限制很大,该程序可以部署在远程服务上或者本地离线使用,解密速度非常快,任务完成后还可以在线播放和批量下载,这里就介绍下。

截图

请输入图片描述

安装

Github地址:https://github.com/ix64/unlock-music

本地使用

如果你想在Windows电脑上使用的话,可以直接下载作者打包好的文件→传送门,下载最新的legacy版本压缩包。

然后将压缩包解压到桌面,打开解压出来的文件夹里面的index文件就可以直接使用。

服务器搭建

如果服务器上已经装有NginxApacheCaddyWeb服务的,可以直接将作者打包好的文件,下载并解压到网站根目录就可以直接使用了,下载地址→传送门,选择最新的modern版本压缩包解压即可。

没有这些Web程序的,可以随便搞个临时用用也行,具体步骤如下:

#下载最新modern版压缩包
curl -O -L https://github.com/ix64/unlock-music/releases/download/`curl -s https://api.github.com/repos/ix64/unlock-music/releases|grep -w tag_name|head -n 1|cut -d'"' -f4`/modern.tar.gz
#解压并删除压缩包
tar zxvf modern.tar.gz && rm -rf $_
cd dist
#运行端口4567,可自行修改
nohup python -m SimpleHTTPServer 4567&

然后访问ip:4567即可,打不开的话就检查下防火墙。

网易云用法

提示:这里只列举博主知道的一种玩法,有意的可以了解下,毕竟该玩法可以节省很多硬盘空间。

该工具支持补全ncmID3信息,就方便我们配合网易云音乐自带的云盘一起使用。

首先将下载的VIP音乐文件解密,然后再将已经解密的音乐文件上传到网易云的我的音乐云盘。
请输入图片描述
上传成功后,系统会自动根据文件ID3信息进行匹配,该上传文件会永久有效,此后不管你还是不是VIP会员或者该歌曲有没有下架,你都可以完整的播放该VIP歌曲和无损格式歌曲,也就是会直接从你的网盘调用,即PC/手机端歌曲信息会包含云盘字眼。
请输入图片描述
注意非VIP会员也可以上传解密后的VIP歌曲,且已经下架的歌曲评论区无法使用,其它正常。

最后QQ音乐用的不多,就不说了,关于使用的一些注意事项可以直接查看→传送门

  •  

Simple Torrent:一个支持边下边播、无版权限制和自动上传的BT离线下载程序

说明:博主很久以前水过一个BT下载工具Cloud Torrent,不过好像2年没维护了,这里就介绍个基于Cloud Torrent开发的项目Simple Torrent,同样的使用Golang编写,功能在原有的基础上加了些适用的功能,下载/上传速度限制、无版权限制,RSS订阅和自定义添加BT-Trackers等,而且还有api接口,同时还支持下载后自动调用外部命令,可玩性还是很高的,比如我们可以和aria2一样,将下载完成的资源自动上传到OneDriveGoogle Drive等网盘,博主大概用了下,感觉还可以,这里就分享下。

截图

请输入图片描述
请输入图片描述

安装

Github地址:https://github.com/boypt/simple-torrent

使用SSH客户端登录服务器,运行命令:

bash <(wget -qO- https://raw.githubusercontent.com/boypt/simple-torrent/master/scripts/quickinstall.sh)

然后使用ip:3000访问即可。

顺便提供个博主经常用的BT-Trackers服务器地址,效果不错,如下:

https://trackerslist.com/all.txt

直接在Web界面修改即可。

相关命令:

启动:systemctl start cloud-torrent
重启:systemctl restart cloud-torrent
停止:systemctl stop cloud-torrent
查看状态:systemctl status cloud-torrent

Docker安装

1、安装Docker

#CentOS 6系统
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu系统
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、安装Simple Torrent

docker run --restart=always --name simple-torrent -d \
-p 3000:3000 \
-v ~/downloads:/downloads \
-v ~/torrents:/torrents \
boypt/cloud-torrent

然后使用ip:3000访问即可。

最后如果你访问不了Web端,可能要检查下防火墙端口,有安全组的也要放行下相关端口。

这里提供个CentOS系统防火墙开启命令,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload

API使用

关于API的用法,官方文档说的很详细了,这里就大概列举几个,如下:

#通过远程地址添加种子
curl --data "http://domain.com/file.torrent" "http://localhost:3000/api/url"
#通过本地文件添加种子
curl --data-binary "my.torrent" "http://localhost:3000/api/url"
#通过磁力链接添加种子
curl --data "magnet:?xt=urn:btih:..." "http://localhost:3000/api/url"

#开始种子任务
curl --data "start:${HASH}" "http://localhost:3000/api/torrent"
#停止种子任务
curl --data "stop:${HASH}" "http://localhost:3000/api/torrent"
#删除种子任务
curl --data "delete:${HASH}" "http://localhost:3000/api/torrent"

#查看文件和种子信息
/api/files和/api/torrents

外部程序调用

先修改配置文件,通过上面脚本安装的配置文件在你的主目录,比如/root目录,配置文件cloud-torrent.json

修改以下参数:

#外部程序调用参数
"donecmd": "",

#比如我要下载完成后,直接运行/home目录下的rats.sh脚本
"donecmd": "/home/rats.sh",

那么下载完成后就会运行该脚本。

一般种子下载完成后,会返回以下参数变量,这里列举下主要的:

CLD_DIR为下载路径,且为绝对路径
CLD_PATH为下载文件名称
CLD_SIZE为文件大小
CLD_TYPE为调用事件类型,分为files和torrent,分别为种子里单个文件和整体文件
CLD_HASH为文件HASH值

这里随便放一个下载后自动移动的脚本,针对rclone挂载的文件夹。

#!/bin/bash

#下载后移动的文件夹路径
RemoteDIR="/down/moerats";  

if [[ ${CLD_TYPE} == "torrent" ]]; then
eval mv \'"${CLD_DIR}/${CLD_PATH}"\' "${RemoteDIR}";
#移动后停止该任务
curl --data "stop:${CLD_HASH}" "http://127.0.0.1:3000/api/torrent";
#停止后清除该任务,也就是不会出现在Web界面了
curl --data "delete:${CLD_HASH}" "http://127.0.0.1:3000/api/torrent";
fi

这里还可以结合TG机器人啥的一起使用,玩法很多,可以自行结合API一起使用。

要注意的是,配置调用脚本的时候,需要给予脚本可执行权,并重启程序生效,比如:

#给予可执行权,脚本路径/root/rats.sh
chmod +x /root/rats.sh
#重启程序
systemctl restart cloud-torrent

相关教程

最后关于这个无版权限制,博主从未遇见过版权投诉,所以无法测试,对于下载的话,有些资源速度还是不错的,具体效果就自行体验了。

  •  

多种功能强大的BT离线下载程序Docker镜像及安装

说明:最近看到很多小伙伴对离线下载啥的,兴趣蛮大,博主以前也水了不少了BT下载相关的脚本和安装,不过都没Docker简单,这里就找了一些用的人比较多,也经常在维护的BT离线程序的Docker镜像,包括Aria2utorrentDelugeTransmissionRutorrentQbittorrent,算是比较全了,这里就分享下。

安装Docker

首先安装下面程序之前,需要在服务器上安装Docker环境,使用命令:

#CentOS 6系统
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu系统
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

安装Aria2

镜像来源:https://hub.docker.com/r/onisuly/aria2-with-webui

先安装Docker,然后执行以下命令:

docker run --restart=always --name aria2-ariang -d \
-p 6060:80 \
-p 6800:6800 \
-e SECRET=moerats \
-v ~/aria2/down:/data \
-v ~/aria2/conf:/conf \
onisuly/aria2-with-webui

安装完成后,相关信息如下:

AriaNg地址:http://ip:6060
aria2连接端口:6800
aria2连接密匙:moerats
下载/配置目录:~/aria2

CentOS系统安装后,可能还需要开启相应的端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 6060 -j ACCEPT
iptables -A INPUT -p tcp --dport 6800 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=6060/tcp --permanent
firewall-cmd --zone=public --add-port=6800/tcp --permanent
firewall-cmd --reload

如果你不想用了,可以使用以下命令卸载:

#删掉容器
ContainerID=`docker ps|grep onisuly/aria2-with-webui|awk '{print $1}'`
docker kill ${ContainerID}
docker rm ${ContainerID}
docker rmi `docker images|grep onisuly/aria2-with-webui|awk '{print $3}'`
#删掉下载文件夹
rm -rf ~/aria2

安装utorrent

镜像来源:https://hub.docker.com/r/ekho/utorrent

先安装Docker,然后执行以下命令:

docker run --restart=always --name utorrent -d \
-p 8080:8080 \
-p 6881:6881 \
-v ~/utorrent:/utorrent/data \
ekho/utorrent

安装完成后,相关信息如下:

utorrent地址:http://ip:8080/gui
访问用户名:admin
访问密码:为空
下载目录:~/utorrent

CentOS系统安装后,可能还需要开启相应的端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=6881/tcp --permanent
firewall-cmd --reload

如果你不想用了,可以使用以下命令卸载:

#删掉容器
ContainerID=`docker ps|grep ekho/utorrent|awk '{print $1}'`
docker kill ${ContainerID}
docker rm ${ContainerID}
docker rmi `docker images|grep ekho/utorrent|awk '{print $3}'`
#删掉下载文件夹
rm -rf ~/utorrent

安装Deluge

镜像来源:https://hub.docker.com/r/linuxserver/deluge

先安装Docker,然后执行以下命令:

docker run --restart=always --name deluge -d \
--net=host \
-v ~/deluge/config:/config \
-v ~/deluge/downloads:/downloads \
linuxserver/deluge

安装完成后,相关信息如下:

deluge地址:http://ip:8112
访问密码:deluge
配置/下载目录:~/deluge

CentOS系统安装后,可能还需要开启相应的端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8112 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8112/tcp --permanent
firewall-cmd --reload

进入界面后,记得点击上方的Preferences,将下载目录设置为/downloads

如果你不想用了,可以使用以下命令卸载:

#删掉容器
ContainerID=`docker ps|grep linuxserver/deluge|awk '{print $1}'`
docker kill ${ContainerID}
docker rm ${ContainerID}
docker rmi `docker images|grep linuxserver/deluge|awk '{print $3}'`
#删掉下载文件夹
rm -rf ~/deluge

安装Transmission

镜像来源:https://hub.docker.com/r/linuxserver/transmission

先安装Docker,然后执行以下命令:

docker run --restart=always --name transmission -d \
-e TRANSMISSION_WEB_HOME=/transmission-web-control/ \
-e USER=moerats \
-e PASS=moerats \
-p 9091:9091 \
-p 51413:51413 \
-p 51413:51413/udp \
-v ~/transmission/config:/config \
-v ~/transmission/downloads:/downloads \
-v ~/transmission/watch:/watch \
linuxserver/transmission

安装完成后,相关信息如下:

transmission地址:http://ip:9091
访问用户名:moerats
访问密码:moerats
配置/下载目录:~/transmission

CentOS系统安装后,可能还需要开启相应的端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 9091 -j ACCEPT
iptables -A INPUT -p tcp --dport 51413 -j ACCEPT
iptables -A INPUT -p udp --dport 51413 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=9091/tcp --permanent
firewall-cmd --zone=public --add-port=51413/tcp --permanent
firewall-cmd --zone=public --add-port=51413/udp --permanent
firewall-cmd --reload

如果你不想用了,可以使用以下命令卸载:

#删掉容器
ContainerID=`docker ps|grep linuxserver/transmission|awk '{print $1}'`
docker kill ${ContainerID}
docker rm ${ContainerID}
docker rmi `docker images|grep linuxserver/transmission|awk '{print $3}'`
#删掉下载文件夹
rm -rf ~/transmission

安装Rutorrent

镜像来源:https://hub.docker.com/r/linuxserver/rutorrent

先安装Docker,然后执行以下命令:

docker run --restart=always --name rutorrent -d \
-p 2222:80 \
-p 5000:5000 \
-p 51413:51413 \
-p 6881:6881/udp \
-v ~/rutorrent/config:/config \
-v ~/rutorrent/downloads:/downloads \
linuxserver/rutorrent

安装完成后,相关信息如下:

rutorrent地址:http://ip:2222
配置/下载目录:~/rutorrent

CentOS系统安装后,可能还需要开启相应的端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
iptables -A INPUT -p tcp --dport 51413 -j ACCEPT
iptables -A INPUT -p udp --dport 6881 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --zone=public --add-port=5000/tcp --permanent
firewall-cmd --zone=public --add-port=51413/tcp --permanent
firewall-cmd --zone=public --add-port=6881/udp --permanent
firewall-cmd --reload

如果你不想用了,可以使用以下命令卸载:

#删掉容器
ContainerID=`docker ps|grep linuxserver/rutorrent|awk '{print $1}'`
docker kill ${ContainerID}
docker rm ${ContainerID}
docker rmi `docker images|grep linuxserver/rutorrent|awk '{print $3}'`
#删掉下载文件夹
rm -rf ~/rutorrent

安装Qbittorrent

镜像来源:https://hub.docker.com/r/linuxserver/qbittorrent

先安装Docker,然后执行以下命令:

docker run --restart=always --name qbittorrent -d \
-p 6881:6881 \
-p 6881:6881/udp \
-p 8080:8080 \
-v ~/qbittorrent/config:/config \
-v ~/qbittorrent/downloads:/downloads \
linuxserver/qbittorrent

安装完成后,相关信息如下:

qbittorrent地址:http://ip:8080
用户名:admin
密码:adminadmin
配置和/下载目录:~/qbittorrent

CentOS系统安装后,可能还需要开启相应的端口,大致如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
iptables -A INPUT -p udp --dport 6881 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=6881/tcp --permanent
firewall-cmd --zone=public --add-port=6881/udp --permanent
firewall-cmd --reload

如果你不想用了,可以使用以下命令卸载:

#删掉容器
ContainerID=`docker ps|grep linuxserver/qbittorrent|awk '{print $1}'`
docker kill ${ContainerID}
docker rm ${ContainerID}
docker rmi `docker images|grep linuxserver/qbittorrent|awk '{print $3}'`
#删掉下载文件夹
rm -rf ~/qbittorrent

这里顺便推荐个磁力链接聚合搜索magnetW,有兴趣的可以下载Windows/Mac端应用程序,下载地址→传送门

最后这里只列举简单的安装,更深层次的可以访问镜像地址使用,如果还有其它好用没有列举的,可以留言提下。

  •  

一个可以绑定多个OneDrive网盘的极简目录列表:OneList

说明:OneList以前介绍过,主要的特色就是解决了因OneDrive API抽风导致的很多问题,稳定性和访问速度都是不错的。不过由于使用Python写的,而Py单线程容易阻塞,响应不够迅速,刷新缓存时,Web端请求基本不可用,所以在整体性能上有点瑕疵。基于Golang的性能更好,效率更高,多盘并发缓存等众多好处,于是萌咖大佬就弃用Python版本,使用Golang重写了OneList,同时支持国际版、个人免费版(家庭版)、中国版(世纪互联)及多网盘绑定。

截图

请输入图片描述

更新

【2020.01.09】
修复内存占用过大。
新增支持在线视频播放的移动端自适应主题。

【2019.12.29】
新增隐藏目录或者文件。直接跳过缓存,减少API调用。
新增目录加密,支持不同目录不同账户密码。HTTP 401认证。

【2019.12.28】
新增搜索功能。

功能

  • 支持国际版、个人免费版(家庭版)、中国版(世纪互联)。
  • 支持同时列出多个盘的目录。(要求每个盘的SubPath唯一)
  • 支持文件夹内超过200个项目。
  • 支持后台自动刷新缓存。
  • 支持路径中含有特殊字符。
  • 数据储存在内存中,响应更加迅速。

安装

Github地址:https://github.com/MoeClub/OneList/tree/master/Rewrite

1、授权认证
点击右侧URL登录并授权,授权【国际版、个人版(家庭版)】、【中国版(世纪互联)】。

授权后会获取一个localhost开头打不开的链接,这里复制好整个链接地址,包括localhost

2、安装OneList

#新建并进入OneList目录
mkdir /opt/OneList && cd $_

#64位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/amd64/linux/OneList
#32位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList//master/Rewrite/i386/linux/OneList
#arm架构下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/arm/linux/OneList
    
#给予权限
chmod +x OneList

3、使用命令

Usage of OneList:
  -a string
        // 初始化配置文件,添加新配置
        Setup and Init auth.json.
  -bind string
        // 绑定IP地址(公网: 0.0.0.0)
        Bind Address (default "127.0.0.1")
  -port string
        // 绑定端口(HTTP:80)
        Port (default "5288")
  -s string
        // 设置 SubPath 项, 需要与 -a 一起使用.
        Set SubPath. [unique per account] (default "/")
  -c string
        // 配置文件
        Config file. (default "config.json")
  -t string
        // Index.html 目录样式文件
        Index file. (default "index.html")
  -cn
        // 开关
        // 授权中国版(世纪互联), 需要此参数.
        OneDrive by 21Vianet.
  -ms
        // 开关
        // 授权个人版(家庭版), 需要此参数.
        OneDrive by Microsoft.

4、生成配置文件

#国际版,将url换成你上面复制的授权地址,包括http://loaclhost。
./OneList -a "url" -s "/onedrive01"

#个人版(家庭版),将url换成你上面复制的授权地址,包括http://loaclhost。
./OneList -ms -a "url" -s "/onedrive02"

#中国版(世纪互联),将url换成你上面复制的授权地址,包括http://loaclhost。
./OneList -cn -a "url" -s "/onedrive03"

提示Success! Add config. '/path/to/config.json'信息,则添加成功。

这里要注意的是:

1、授权url地址只能用一次,超过需要重新授权。
2、命令中的/onedrive01参数为指定网盘地址后缀,比如http://domain.com/onedrive01。
3、授权多个网盘的话,重复授权多次即可,参数均会添加到一个配置文件,且后缀不能重复。
4、地址后缀填错了的,可以稍后在配置文件中修改。

本文默认的配置文件路径/opt/OneList/config.json,参数详解,可自行修改:

[
  {
    // 如果是家庭版或者个人免费版, 此项应为 true.
    "MSAccount": false,
    // 如果是中国版(世纪互联), 此项应为 true.
    "MainLand": false,
    // 授权令牌
    "RefreshToken": "1234564567890ABCDEF",
    // 单配置文件中,此项要唯一.将此OneDrive中设置为`RootPath`目录映射在`http://127.0.0.1:5288/onedrive` 下.
    // (只推荐一个盘位的时候使用根目录"/".)
    "SubPath": "/onedrive",
    // 读取OneDrive的某个目录作为根目录. (支持根目录"/")
    "RootPath": "/Test",
    // 隐藏OneDrive目录中的文件夹和文件, 条目间使用 "|" 分割. (跳过缓存设置的条目.)
    "HidePath": "/Test/Obj01|/Test/Obj02",
    // 使用用户名和密码加密OneDrive目录. 目录和用户名密码间使用 "?" 分割, 用户名密码使用 ":" 分割, 条目间使用 "|" 分割. 无效条目将跳过.
    "AuthPath": "/Test/Auth01?user01:pwd01|/Test/Auth02?user02:pwd02",
    // 缓存刷新间隔.(所有项目中的刷新时间取最小值为有效刷新间隔)
    "RefreshInterval": 900
  }
]

这里注意,挂载多个盘符的时候,SubPath参数请不要为/,单个网盘建议为/

5、运行OneList

#下载默认的index.html主题,与config.json同目录,即本文默认的/opt/OneList
wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/index.html -P /opt/OneList
#监听8000地址,自行修改
/opt/OneList/OneList -bind 0.0.0.0 -port 8000

最后打开ip:端口访问即可,如果你挂载网盘的时候SubPath/,那么直接通过根目录查看,如果为/onedrive1,那么通过ip:端口/onedrive1查看,如果该路径不存在,则会提示No Found.

且首次运行会异步缓存,也就是至少有一个盘缓存成功了,才会显示。

6、开机自启
这里新建一个简单的systemd配置文件,适用CentOS 7Debian 8+Ubuntu 16+

使用命令:

#设置你的运行监听端口,即你可以通过ip:端口访问程序,这里默认8000。
port="8000"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/onelist.service <<EOF
[Unit]
Description=onelist
After=network.target

[Service]
Type=simple
ExecStart=/opt/OneList/OneList -bind 0.0.0.0 -port ${port}
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
#启动并设置开机自启
systemctl start onelist
systemctl enable onelist

更换主题

提示:下载主题的index.html文件,覆盖默认index.html文件,本文默认存放/opt/OneList,然后重启程序即可

主题地址:https://github.com/MoeClub/OneList/tree/master/Rewrite/@Theme

1、HaorWu

#作者
https://github.com/HaorWu

#特点
支持移动端自适应
支持当页搜索
支持按文件名, 日期, 大小排序
支持主动查看图片
支持在线播放视频

#下载地址
https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/%40Theme/HaorWu/index.html

2、jackjieYYY

#作者
https://github.com/jackjieYYY
https://www.hostloc.com/space-uid-38920.html

#特点
支持移动端自适应
支持当页搜索
支持按文件名, 日期, 大小排序
支持在线播放视频

#下载地址
https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/%40Theme/jackjieYYY/index.html

相关命令

启动:systemctl start onelist
停止:systemctl stop onelist
重启:systemctl restart onelist
查看状态:systemctl status onelist

卸载

#未设置开机自启
rm -rf /opt/OneList

#设置过开机自启
systemctl stop onelist
systemctl disable onelist
rm -rf /opt/OneList /etc/systemd/system/onelist.service

最后如果我们只想显示网盘的某些文件夹,那么可以分别挂载该网盘的不同目录即可,具体操作看配置文件说明。

如果有发现该程序存在BUG,可以提下,方便修复,有会前端的热心大佬,也可以自荐下,帮忙美化下该前端。

  •  

TopDocs:一款美观实用的在线文档编辑系统,支持Markdown语法

说明:最近博主对文档程序小有需求,找了很久发现都是单页,而且还不支持移动端,不是很理想,所以萌JJ大雕就专门花了半天时间,给博主写了一个,该文档程序基于graphqlnuxtjsmongodbkeystonejs的实时在线文档编辑系统,可用作各种在线文档编辑和展示,支持markdown语法,对移动端特别友好,这里就开源分享出来,给对文档有需求的人。

截图

请输入图片描述
请输入图片描述

安装

Gitee地址:https://gitee.com/quazero/topdocs

所需环境:NodeJSMongoDB

1、安装NodeJS

#Debian/Ubuntu系统
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt install -y git nodejs 

#CentOS系统
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs git -y

2、安装Mongodb

#CentOS 6系统,将下面命令一起复制进SSH客户端运行
cat <<EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
yum -y install mongodb-org

#CentOS 7系统,将下面命令一起复制进SSH客户端运行
cat <<EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
yum -y install mongodb-org

#Debian 8系统
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

#Debian 9系统
curl https://www.mongodb.org/static/pgp/server-4.0.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt-get update -y
apt-get install -y mongodb-org

#Debian 10系统
curl https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list
apt update -y
apt install -y mongodb-org

#Ubuntu 16.04系统
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

#Ubuntu 18.04、18.10、19.04系统
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

如果导入公匙时出现gnupg, gnupg2 and gnupg1 do not seem to be installed错误,使用apt install -y gnupg2,然后重新导入即可。

启动Mongodb并设置开机自启:

#CentOS 6系统
service mongod start
chkconfig mongod on

#CentOS 7、Debian、Ubuntu系统
systemctl start mongod
systemctl enable mongod

3、新建数据库

#数据库用户名和密码均为topdocs,将下面命令一起复制进SSH客户端运行
cat <<EOF > createdb
use topdocs
db.createUser( { user: "topdocs", pwd: "topdocs", roles: [ { role: "readWrite", db: "topdocs" } ] } )
EOF
mongo<createdb && rm -rf createdb

4、安装TopDocs

#拉取源码
git clone https://gitee.com/quazero/topdocs /opt/topdocs
cd /opt/topdocs
#安装yarn和依赖
npm i -g yarn
yarn
#编辑index.js
vi index.js

修改以下代码:

endpoint: 'http://127.0.0.1:3000/admin/api',

#如果我后面使用docs.moerats.com域名反代本地地址127.0.0.1:3000,那么修改为:
endpoint: 'http://docs.moerats.com/admin/api',
或
endpoint: 'https://docs.moerats.com/admin/api',

#如果我后面直接使用ip地址1.2.3.4访问,那么修改为:
endpoint: 'http://1.2.3.4:3000/admin/api',

vi编辑步骤:使用i进入编辑状态,编辑完成使用esc退出编辑状态,再输入:wq,然后Enter确定退出。

开始打包并运行:

yarn build
yarn start

#后台运行
nohup yarn start&

这里访问地址为index.js中修改域名或http://服务器ip:3000

对于IP访问的,如果CentOS系统打不开的话,可能还需要开启3000端口,使用命令:

#CentOS 6
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload

像阿里云等服务器,还需要去安全组那里开放下端口。

绑定域名

如果你在上面编辑index.js的时候填的域名,那么就需要绑定下域名,反代下http://127.0.0.1:3000即可,反之,使用的ip就不用。

这里依旧使用Caddy,如果你安装过Nginx或者Apache,就自行搜索反代教程了。

安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "docs.moerats.com {
 gzip
 proxy / 127.0.0.1:3000 {
    websocket
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "docs.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:3000 {
    websocket
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

开机自启

这里新建一个简单的Systemd配置文件,只适用于CentOS 7Debian 8+Ubuntu 16+等。

#新建systemd配置文件,将以下代码一起复制到SSH运行
cat > /etc/systemd/system/topdocs.service <<EOF
[Unit]
Description=topdocs
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/topdocs
ExecStart=$(command -v yarn) start
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

如果你使用的宝塔,还需要做下软连接,不然启动可能会失败,反之不需要,使用命令:

ln -sf $(which node) /usr/bin/node

开始启动并设置开机自启:

systemctl start topdocs
systemctl enable topdocs

使用教程

后台地址/admin,账号为admin@admin.com,密码为adminadmin,自己进后台修改。

设置中index中是首页的展示内容,需要注意的是:

-logo-/logo.png-logo-
-title-跨世代文档编辑系统-title-
-subtitle-实时动态markdown文档编辑系统,基于graqhql、mongodb、keystonejs、nuxtjs开发的移动优先的服务端渲染文档系统。-subtitle-
-button-查看文档$https://gitee.com/quazero/topdocs-button-
===header===
header下面就是完全的markdown语法的编写区域,编辑完成之后,首页可查看变化。

参数大致意思:

-logo-之间的是LOGO图片,可链接也可路径。
-title-之间的是首页展示大标题。
-subtitle-之间的是首页展示的项目介绍。
-button-是首页展示按钮需要的内容。其中<按钮名>$<链接>,链接可链接也可路径,按需更改。
===header===下面的就是正常的markdown语句,自己根据需要编写。

最后如果要上传图片或者文件的话,需要从后台左侧Images处上传并获取地址。

  •