天翼云盘的目录程序CTlist教程

ruoyer 技术笔记评论8,426阅读模式

关于CTlist

天翼云盘的目录程序CTlist教程-图片1

CTlist是萌咖大佬用Golang写的一款专门挂载天翼云盘的目录程序。同类程序有狸猫盘(采用PHP构建)、sharelist。用起来响应速度不错,搭建过程异常简单。程序主要有以下特色:

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

项目地址:https://github.com/iiiiiii1/CTList
现已关闭了捐赠通道,已经有授权的可以继续使用,没有的想办法换其他程序吧,且用且珍惜!

一.环境准备

注册好天翼账号,准备好VPS,安装好go环境,centos7以上理论上是不用管的,注意:此步非必须,作者已经编译好了程序,我是害怕出岔子才搞下的。

#更新yum
yum update
#安装wget
yum install wget
#centos系统,升级源,国内基本必须
yum install epel-release
#安装golang
yum install golang
#查看版本号,建议先运行下这个,说不定系统安装了
go version

二、安装CTList

1.下载主程序
#新建并进入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
2.配置文件

程序运行需配置相关的配置文件方可正常运行。

config.json主要用于配置程序启动参数

#下载配置文件
wget https://raw.githubusercontent.com/iiiiiii1/CTList/master/config.json

以下为config.json文件配置注释。

无特殊需要,只需要填写账号密码即可(前4项)。修改配置后需重新启动CTList。

CaptchaMode填充为”https://api.moeclub.org/SampleCode”用于识别登陆验证码。默认:“ 0天翼云盘的目录程序CTlist教程-图片2

#编辑
vi config.josn

        "Enable": 1,                                    # 0: Disable, 1: Enbale.
                                                        ## 0: 关闭, 1: 打开                                            
        "UserName": "",                                 # Input Phone Number.
                                                        ## 天翼云网盘登陆用户名(不要带上'@189.cn').

        "Password": "",                                 # Input Password.
                                                        ## 天翼云网盘登陆密码.
                                                        
        "CaptchaMode": "0",                             # Captcha Mode. 0: Auto Reject, 1: Manual Input, other: API URL. 
                                                        ## 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.

        "ViewMode": 0,                                  # View Mode. 0: Auto. 1: Only Web Page. 2: Only WebDAV.
                                                        ## 显示模式. 0: 自动识别. 1: 只使用网页模式. 2:只使用WebDAV模式.                                   

        "RefreshToken": "",                             # Token. * Do Not Modify It.
                                                        ## 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.
                                                        
        "SubPath": "/CTList",                           # Index Path. * Unique Per Account.
                                                        ## 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.
                                                        
        "RootPathId": "-11",                            # Default Root: -11
                                                        ## 设置展示天翼网盘目录的ID, 根目录为 -11.
                                                        
        "HideItemId": "0|-16",                          # Allow Folder and File.
                                                        ## 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.
                                                        
        "AuthItemId": "",                               # HTTP 401.
                                                        ## 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"
                                                        
        "RefreshURL": 189,                              # Min: 180, Max: 1800; Allow Max: 2329
                                                        ## 下载直链缓存的秒数. 超时则被动更新.
                                                        
        "RefreshInterval": 1800                         # Max: Null, Min: 300
                                                        ## 刷新目录结构,如果不常更新,建议设置更长时间.
3.皮肤文件

index.html用于前端显示及风格

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

也可更换皮肤

CTList完全兼容OneList的皮肤文件,它们是通用的。可实现在线浏览图片,在线观看视频等其他功能 点此前往下载

4、调高limits(未作验证

这里调整下limits,不然运行会出错,使用命令:

[ -f /etc/security/limits.conf ] && LIMIT='262144' && sed -i '/^(*|root)[[:space:]]*(hard|soft)[[:space:]]*(nofile|memlock)/d' /etc/security/limits.conf && echo -ne "*thardtmemlockt${LIMIT}n*tsofttmemlockt${LIMIT}nrootthardtmemlockt${LIMIT}nroottsofttmemlockt${LIMIT}n*thardtnofilet${LIMIT}n*tsofttnofilet${LIMIT}nrootthardtnofilet${LIMIT}nroottsofttnofilet${LIMIT}nn" >>/etc/security/limits.conf
5.打开端口

程序默认监听5189端口,也可以直接授权80出去

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

#CentOS 7
firewall-cmd --zone=public --add-port=5189/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
6.运行程序

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

现已关闭申请码的申请,所以。。。。。

获取必须绑定转换成授权码后开始启动CTList

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

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

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

程序运行成功提示、仅供参考

[root@xiaolong ~]# /home/ct/CTList -a  2b37ee28a554dcfb3ae4abf0poa7657 -bind 0.0.0.0 -port 80
Config Num: 1
[/CTList]: Login ...
[/CTList]: Cache ...
[/CTList]: 75 Done!

这时候打开浏览器,你的完整网址为

http://ip:端口/CTList
天翼云盘的目录程序CTlist教程-图片3

三.开机自启

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

使用命令:

vi /usr/lib/systemd/system/ctlist.service

或直接

#设置你的运行监听端口,即你可以通过ip:端口访问程序,这里默认8000。
port="5189"
#设置你的授权码,自行修改
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 "授权码" -bind 0.0.0.0 -port "端口号" -l
Restart=on-failure

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

systemctl stop ctlist            #停止服务
systemctl restart ctlist         #重启服务
systemctl status ctlist          #查看状态
systemctl disable ctlist        #关闭开机自启

四、卸载CTlist

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

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

五.反向代理

此时如果成功的话,用你的ip:端口号,应该能访问到你的天翼云直链程序了。那么如果我们想要用自己的域名要怎么访问呢?

1.宝塔面板设置

首先打开宝塔,新建一个站点,例如www.baidu.com。至于根目录在哪里并不重要,默认就好了。

天翼云盘的目录程序CTlist教程-图片4

先开启SSL和强制HTTPS。

天翼云盘的目录程序CTlist教程-图片5

然后开启反代,输入http://127.0.0.1:5189。这里把端口号换成你自己的端口号,提交一下。

天翼云盘的目录程序CTlist教程-图片6

不出意外的话,你应该能通过你的域名访问到你的目录了。

2.标准修改

也可以在直接编辑webxxxx.com.nginx.conf文件,重启nginx进程生效

 location ^~ /CTList {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:5189;
    }

六、高阶功能

1、访问地址

根据配置文件中的SubPath项中参数访问具体网盘
一般 SubPath 的具体值在终端中显示在中括号内. 比如: [/CTList]

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

例如: "SubPath": "/"
访问: http://127.0.0.1:5189/
2.使用说明
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.
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.寻找目录ID

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

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

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

天翼云网盘登陆验证码识别API(基于开源OCR识别)

# 目前去噪算法只支持天翼云网盘登陆的验证码(其他类型根本识别不出来)
# 使用时可多次尝试下载不同的验证图片进行提交(目前准确率不算高,但可用.)
# 下载天翼云验证码需要添加请求头 "Referer: https://open.e.189.cn/"

# 接口: https://api.moeclub.org/SampleCode
# 方式: POST
# 参数: Base64=<IMAGE_BASE64_CODE>&Type=CTCloud
# 返回: 状态码:200, 显示识别结果. 状态码:404, 识别错误或结果不符合预设规则, 显示为空.
7、在nPlayer播放器中使用
# 网络 --> 添加 --> WebDAV
# 主机: 填写域名.
# 路径: 填写 SubPath 值. 如: /CTList
# 其他请按照情况填写.

# 优势: 在播放器中可以播放各种编码格式的视频.
# 可以适当的将最小缓存时间调小,提高浏览体验.
8、报错相关
400(Not Found URL): 未能找到该文件的链接.
404(Not Found): 未完成初次缓存目录结构或文件路径不正确.
422(Not Found Real URL): 未能生成真实的文件下载链接(一般是文件被举报了,无法下载).
5XX: 一般是服务器端的问题. 部分可能的情况有: 主程序没开, 端口不通, 反代配置不正确.

 

 
ruoyer
  • 本文由 ruoyer 发表于 2020年7月14日03:51:04
  • 转载请务必保留本文链接:https://www.ruoyer.com/ctlist.html
城通网盘怎么使用客户端下载文件 技术笔记

城通网盘怎么使用客户端下载文件

有部分同学不明白如何使用城通网盘的客户端下载文件,尤其是充了会员的同学,可能不太明白使用方法,所以撰写本图文教程教学。 请注意,资源建议下载完一个再下另一个,并行多个任务下载,很容易造成个别资源损坏。...

发表评论