一个简简单单的博客，平时记录下自己所看到的，所想到的，仅此而已。
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键退出编辑模式，接下来输入英文:wq，enter键确定，即保存退出。全部配置参数详情参考，可根据需求自行加入：#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这里调整下limits，linux下可能由于高并发情况下会出错，使用命令：[ -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 7、Debian 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：一个可以绑定多个天翼云网盘的目录列表程序，支持视频播放
说明：之前介绍过很多OneDrive和Google Drive网盘目录列表程序，但在国内使用的话，网络速度都不理想。最近使用天翼云网盘的人开始多了起来，在国内使用的话，速度还是很不错的，毕竟由电信骨干网支持，国内AWS为文件实际储存节点，基本上速度都是秒开，当然，看片也是无需等待，这里萌咖大佬就写了个天翼云网盘的目录列表程序CTList，安装也是十分简单，和博主之前介绍的OneList差不多，整个站点目录支持在nPlayer播放器中使用，之前通过BUG撸的30T和老用户10T和2T空间的都可以利用一下，对于新用户，现在默认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的用法，Windows、MacOS系统二进制文件下载地址→传送门，使用方法和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这里调整下limits，linux下可能由于高并发情况下会出错，使用命令：[ -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 -dAUTH_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 7、Debian 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用于RootPathId、HideItemId、AuthItemId配置项，登陆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-torrent1、安装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-torrentgit 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-torrentdocker 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面板的内网穿透工具
说明：关于内网穿透的工具，博主已经介绍的非常多了，比如frp、lanproxy、nps、holer、sish和serveo等，用起来都还行，不过有些在安装和使用上对于一些新手来说，还是比较复杂的，最近博主发现了个新的内网穿透项目Proxyer，目前仅支持TCP协议、虽然看起来功能比较简单，但基本可以满足日常使用了，特别是在安装和使用方面，对于新手是比较友好的，这里就分享下。截图服务端Github地址：https://github.com/khvysofq/proxyer1、安装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 Composecurl -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、安装Proxyerwget 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 像阿里云等服务器，还需要去安全组那里开放下端口。客户端进入服务端面板后，界面会提供Linux、Windows、macOS客户端版本，然后自行根据自身系统下载指定版本的压缩包即可。Windows可以直接下载界面版本，然后双击可执行文件，会弹出一个网页界面，输入上面的认证密码，即可开始配置穿透。Linux下载压缩包后，解压出二进制文件，直接在当前目录使用./proxyer命令运行即可。最后使用起来还是很简单的，由于是新项目，功能可能不是很丰富，看作者后期会不会慢慢完善了。
视频切片后自动上传至国内免费CDN，无成本加速视频播放
说明：一般我们观看自己下载的电影时候，通常会因为网络或者带宽原因很卡，所以就得处理下，这里萌咖大佬闭关半个月，写出了一个视频转码切片后自动上传至国内cdn的脚本，脚本默认提供上传到语雀cdn的脚本、采用多线程上传，这里默认10线程，基本上可以很大程度上提高视频的播放速度。更新【2020.4.1】 由于语雀修复了上传bug，所以移除语雀cdn，默认修改为阿里云图床。 使用Github地址：https://github.com/MoeClub/Note/tree/master/ffmpeg1、安装ffmpegwget 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.sh的Token值对应，别乱改就行。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，具体可参考官方说明。 先前往语雀官网注册一个账号→传送门，然后获取ctoken和session的值，这里说下大概获取方法，以谷歌浏览器为例。登录后，F12进入控制台选择Network，随便点击一个以yuque开头的链接文件，再选择Cookies即可看到所需要的2个参数。然后复制ctoken和session的值。接下来查看语雀脚本→传送门，将脚本所有的内容复制替换到upload.sh脚本里面，并填入ctoken和session的值，保存即可，上传方法参考上面。最后如果你是vps的话，就不建议强制转码，只切片就行了，不然长时间占用cpu的话，服务器可能会被ban，基本上大多数mp4都可以直接切片。
unlock-music：支持解密网易云/QQ音乐的加密文件和ID3信息补全
说明：最近有小伙伴推荐了个解密工具unlock-music，支持网易云音乐/QQ音乐的VIP音乐文件批量解密导出为MP3或无损格式，包括ncm、qmc0、qmc3、mcflac、qmcogg、mflac格式及补全ncm的ID3信息，挺实用的，毕竟通常情况下，当这些客户端VIP会员到期后会自动删除已下载的VIP音乐文件。而且文件是加密格式的只能用客户端播放，会员到期后就算保留音乐文件也无法使用，而且加密格式无法在汽载音响或其他设备上播放，用起来限制很大，该程序可以部署在远程服务上或者本地离线使用，解密速度非常快，任务完成后还可以在线播放和批量下载，这里就介绍下。截图安装Github地址：https://github.com/ix64/unlock-music本地使用如果你想在Windows电脑上使用的话，可以直接下载作者打包好的文件→传送门，下载最新的legacy版本压缩包。然后将压缩包解压到桌面，打开解压出来的文件夹里面的index文件就可以直接使用。服务器搭建如果服务器上已经装有Nginx、Apache或Caddy等Web服务的，可以直接将作者打包好的文件，下载并解压到网站根目录就可以直接使用了，下载地址→传送门，选择最新的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即可，打不开的话就检查下防火墙。网易云用法提示：这里只列举博主知道的一种玩法，有意的可以了解下，毕竟该玩法可以节省很多硬盘空间。 该工具支持补全ncm的ID3信息，就方便我们配合网易云音乐自带的云盘一起使用。首先将下载的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一样，将下载完成的资源自动上传到OneDrive或Google 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 Torrentdocker 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 相关教程在Linux VPS上使用rclone挂载OneDrive网盘在Linux VPS上使用rclone挂载Google Drive网盘最后关于这个无版权限制，博主从未遇见过版权投诉，所以无法测试，对于下载的话，有些资源速度还是不错的，具体效果就自行体验了。
多种功能强大的BT离线下载程序Docker镜像及安装
说明：最近看到很多小伙伴对离线下载啥的，兴趣蛮大，博主以前也水了不少了BT下载相关的脚本和安装，不过都没Docker简单，这里就找了一些用的人比较多，也经常在维护的BT离线程序的Docker镜像，包括Aria2、utorrent、Deluge、Transmission、Rutorrent、Qbittorrent，算是比较全了，这里就分享下。安装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/Rewrite1、授权认证点击右侧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 7、Debian 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/@Theme1、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大雕就专门花了半天时间，给博主写了一个，该文档程序基于graphql、nuxtjs、mongodb、keystonejs的实时在线文档编辑系统，可用作各种在线文档编辑和展示，支持markdown语法，对移动端特别友好，这里就开源分享出来，给对文档有需求的人。截图安装Gitee地址：https://gitee.com/quazero/topdocs所需环境：NodeJS、MongoDB。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 7、Debian 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处上传并获取地址。