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网盘上传工具，支持文件和文件夹上传
说明：博主很久前分享过使用Shell写的OneDrive网盘上传工具→传送门，不过由于使用的是旧API，而微软使旧API强制过时，也就是强制不让用了，不让授权了，导致全部人无法使用，所以在外搬砖多日的萌咖大佬重新出山，使用Golang基于新的API写了个效率更高的上传工具，同时也修复了各种Shell版本遗留下来的小问题，该版本特点就是授权简单，无需依赖，单文件。同样的也可以配合Aria2一起自动上传，这里就再分享下，方便下有需求的人。更新【2019.12.21】 支持跳过网盘中已存在的同名文件。 【2019.12.20】 目前同时支持国际版、个人版(家庭版)、中国版(世纪互联)。 【2019.12.15】 修复授权失败、上传文件大小为0等问题。 现已支持arm、x86、x64平台的系统。 【2019.11.29】 新增多线程上传、MacOS客户端。 修复了一个致命bug，建议之前装过的更新下程序。 功能支持上传文件和文件夹到指定目录，并保持上传前的目录结构。支持命令参数使用，方便外部程序调用。支持自定义上传分块大小。支持多线程上传(多文件同时上传)。支持根据文件大小动态调整重试次数，对抗不好的网络环境。使用Github地址：https://github.com/MoeClub/OneList/tree/master/OneDriveUploader这里只详细说下Linux的用法，Windows后面大概说下。Windows、MacOS系统下载地址→传送门，直接将程序下载到本地后，按照下面方法进行授权、初始化，然后就可以使用命令上传了。1、授权认证点击右侧URL登录并授权，授权地址→【国际版、个人版(家庭版)】、【中国版(世纪互联)】。授权后会获取一个localhost开头打不开的链接，这里复制好整个链接地址，包括localhost。2、安装OneDriveUploader#64位系统下载 wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/ #32位系统下载 wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/i386/linux/OneDriveUploader -P /usr/local/bin/ #arm架构下载 wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/arm/linux/OneDriveUploader -P /usr/local/bin/ #给予权限 chmod +x /usr/local/bin/OneDriveUploader 3、初始化配置#国际版，将url换成你上面复制的授权地址，包括http://loaclhost。 OneDriveUploader -a "url" #个人版(家庭版)，将url换成你上面复制的授权地址，包括http://loaclhost。 OneDriveUploader -ms -a "url" #中国版(世纪互联)，将url换成你上面复制的授权地址，包括http://loaclhost。 OneDriveUploader -cn -a "url" 如果提示Init config file: /path/to/file/auth.json类似信息，则初始化成功。4、使用命令Usage of OneDriveUploader: -a string // 初始化授权 Setup and Init auth.json. -b string // 自定义上传分块大小, 可以提高网络吞吐量, 受限于磁盘性能和网络速度. Set block size. [Unit: M; 5<=b<=60;] (default "10") -c string // 配置文件路径 Config file. (default "auth.json") -n string // 上传单个文件时,在网盘中重命名 Rename file on upload to remote. -r string // 上传到网盘中的某个目录, 默认: 根目录 Upload to reomte path. -s string // *必要参数, 要上传的文件或文件夹 Upload item. -t string // 线程数, 同时上传文件的个数. 默认: 2 Set thread num. (default "2") -f // 开关(推荐) // 加上 -f 参数，强制读取 auth.json 中的块大小配置和多线程配置. // 不加 -f 参数, 每次覆盖保存当前使用参数到 auth.json 配置文件中. Force Read config form config file. [BlockSize, ThreadNum] -skip // 开关 // 跳过上传网盘中已存在的同名文件. (默认不跳过) Skip exist file on remote. -cn // 开关 // 授权中国版(世纪互联), 需要此参数. OneDrive by 21Vianet. -ms // 开关 // 授权个人版(家庭版), 需要此参数. OneDrive by Microsoft. 5、命令示例#将当前目录下的mm00.jpg文件上传到OneDrive网盘根目录 OneDriveUploader -c /path/to/file/auth.json -s "mm00.jpg" #将当前目录下的mm00.jpg文件上传到OneDrive网盘根目录，并改名为mm01.jpg OneDriveUploader -c /path/to/file/auth.json -s "mm00.jpg" -n "mm01.jpg" #将当前目录下的Download文件夹上传到OneDrive网盘根目录 OneDriveUploader -c /path/to/file/auth.json -s "Download" #将当前目录下的Download文件夹上传到OneDrive网盘Test目录中 OneDriveUploader -c /path/to/file/auth.json -s "Download" -r "Test" #将同目录下的Download文件夹上传到OneDriv网盘Test目录中，使用10线程 OneDriveUploader -c /path/to/file/auth.json -t 10 -s "Download" -r "Test" #将同目录下的Download文件夹上传到OneDrive网盘Test目录中，使用15线程，并设置分块大小为20M OneDriveUploader -c /path/to/file/auth.json -t 15 -b 20 -s "Download" -r "Test"/path/to/file/auth.json为初始化时，生成的auth.json绝对路径地址，本文默认/root/auth.json，自行调整。注意：如果你之前上传手动中断过，再上传的时候，请使用-skip参数，默认会跳过你已经上传过的文件/文件夹。Aria2自动上传同样的这里也会提供个配套的Aria2自动上传脚本，上传配置方法参考→传送门。上传脚本代码如下：#!/bin/bash GID="$1"; FileNum="$2"; File="$3"; MaxSize="15728640"; Thread="3"; #默认3线程，自行修改，服务器配置不好的话，不建议太多 Block="20"; #默认分块20m，自行修改 RemoteDIR=""; #上传到Onedrive的路径，默认为根目录，如果要上传到MOERATS目录，""里面请填成MOERATS LocalDIR="/www/download/"; #Aria2下载目录，记得最后面加上/ Uploader="/usr/local/bin/OneDriveUploader"; #上传的程序完整路径，默认为本文安装的目录 Config="/root/auth.json"; #初始化生成的配置auth.json绝对路径，参考第3步骤生成的路径 if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi if "$FileNum" -le '0' ; then exit 0; fi if [[ "$#" != '3' ]]; then exit 0; fi function LoadFile(){ if [[ ! -e "${Uploader}" ]]; then return; fi IFS_BAK=$IFS IFS=$'\n' tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')" FileLoad="${LocalDIR}${tmpFile}" if [[ ! -e "${FileLoad}" ]]; then return; fi ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1) if -z "$ItemSize" ; then return; fi if "$ItemSize" -ge "$MaxSize" ; then echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n"; return; fi ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -r "${RemoteDIR}" -skip if [[ $? == '0' ]]; then rm -rf "${FileLoad}"; fi IFS=$IFS_BAK } LoadFile; 编辑好上传脚本后，可以检测下脚本编码是否正确，比如我脚本路径为/root/upload.sh，使用命令：bash /root/upload.sh如果无任何输出，则正确，反之输出类似$'r': command not found错误，则需要转换下编码格式，具体步骤如下。先安装dos2unix：#CentOS系统 yum install dos2unix -y #Debian/Ubuntu系统 apt install dos2unix -y 再转换编码：#后面为脚本路径 dos2unix /root/upload.sh Windows使用这里就随便补充下Windows使用，先下载程序文件，下载地址→传送门。比如我将exe文件放到D盘，然后使用Win+R，输入CMD运行，调出窗口后，使用命令：#进入D盘 cd /d D:\ #国际版初始化，将url换成你上面复制的授权地址，包括http://loaclhost。 OneDriveUploader.exe -a "url" #个人版(家庭版)初始化，将url换成你上面复制的授权地址，包括http://loaclhost。 OneDriveUploader.exe -ms -a "url" #中国版(世纪互联)初始化，将url换成你上面复制的授权地址，包括http://loaclhost。 OneDriveUploader.exe -cn -a "url" 然后上传命令和上面一样，只需要把OneDriveUploader改成OneDriveUploader.exe即可。最后经测试，该版本的上传已经完全能应对各种稀奇古怪的字符问题，如果有问题可以回复下，贴上报错代码，方便修复。
sish：一个开源、轻量且类似于Servo/Ngrok的内网穿透工具
说明：sish是一个SSH服务器，仅用于远程端口转发，可以快速将本地端口暴露在外网，作者声称其为Servo/Ngrok替代方案，仅使用SSH的HTTP(S)、WS(S)、TCP隧道连接到他们的localhost服务器，该工具和Servo差不多一样，不同就是Servo官方提供了免费的SSH客户端，而sish作者提供的客户端貌似因为滥用关闭了，所以就需要我们自己搭建了，这里就水下Docker和手动安装。Docker安装Github地址：https://github.com/antoniomika/sish1、安装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、拉取镜像这里由于直接使用ip的话，只能用于转发TCP，HTTP(S)等就需要配置下域名了，所以以下全部默认使用域名。先解析一个主/泛域名到服务器ip，比如解析moerats.com、*.moerats.com到服务器ip。然后再参考下面的参数详解，再自行修改部分参数后，使用命令：#配置http域名 docker run -d --name sish \ --restart=always \ -v ~/sish/keys:/keys \ -v ~/sish/pubkeys:/pubkeys \ --net=host antoniomika/sish \ -sish.addr=:3333 \ -sish.http=:80 \ -sish.keysdir=/pubkeys \ -sish.pkloc=/keys/ssh_key \ -sish.forcerandomsubdomain=false \ -sish.domain moerats.com \ -sish.bindrandom=false \ -sish.redirectrootlocation https://www.baidu.com #配置https域名，这里需要提供泛域名证书 docker run -d --name sish \ --restart=always \ -v ~/sish/ssl:/ssl \ -v ~/sish/keys:/keys \ -v ~/sish/pubkeys:/pubkeys \ --net=host antoniomika/sish \ -sish.addr=:3333 \ -sish.https=:443 \ -sish.http=:80 \ -sish.httpsenabled=true \ -sish.httpspems=/ssl \ -sish.keysdir=/pubkeys \ -sish.pkloc=/keys/ssh_key \ -sish.forcerandomsubdomain=false \ -sish.domain moerats.com \ -sish.bindrandom=false \ -sish.redirectrootlocation https://www.baidu.com部分参数如下：-sish.addr=:3333 #ssh监听地址 -sish.forcerandomsubdomain=false #是否强制随机子域，这个建议关掉 -sish.bindrandom=false #是否随机绑定端口，这个建议关掉 -sish.domain moerats.com #使用的域名 -sish.redirectrootlocation https://www.baidu.com #主域名(-sish.domain参数)强制跳转到该地址 -sish.httpspems=/ssl #泛域名SSL证书路径，存放路径~/sish/ssl，证书命名格式fullchain.pem和privkey.pem其他参数默认即可，也可以自行添加或修改其它参数。全部参数如下：Usage of sish: -sish.addr string The address to listen for SSH connections (default "localhost:2222") -sish.auth Whether or not to require auth on the SSH service -sish.bannedcountries string A comma separated list of banned countries -sish.bannedips string A comma separated list of banned ips -sish.bannedsubdomains string A comma separated list of banned subdomains (default "localhost") -sish.bindrandom Bind ports randomly (OS chooses) (default true) -sish.bindrange string Ports that are allowed to be bound (default "0,1024-65535") -sish.cleanupunbound Whether or not to cleanup unbound (forwarded) SSH connections (default true) -sish.debug Whether or not to print debug information -sish.domain string The domain for HTTP(S) multiplexing (default "ssi.sh") -sish.forcerandomsubdomain Whether or not to force a random subdomain (default true) -sish.http string The address to listen for HTTP connections (default "localhost:80") -sish.httpport int The port for HTTP connections. This is only for output messages (default 80) -sish.https string The address to listen for HTTPS connections (default "localhost:443") -sish.httpsenabled Whether or not to listen for HTTPS connections -sish.httpspems string The location of pem files for HTTPS (fullchain.pem and privkey.pem) (default "ssl/") -sish.httpsport int The port for HTTPS connections. This is only for output messages (default 443) -sish.keysdir string Directory for public keys for pubkey auth (default "pubkeys/") -sish.password string Password to use for password auth (default "S3Cr3tP4$$W0rD") -sish.pkloc string SSH server private key (default "keys/ssh_key") -sish.pkpass string Passphrase to use for the server private key (default "S3Cr3tP4$$phrAsE") -sish.proxyprotoenabled Whether or not to enable the use of the proxy protocol -sish.proxyprotoversion string What version of the proxy protocol to use. Can either be 1, 2, or userdefined. If userdefined, the user needs to add a command to SSH called proxy:version (ie proxy:1) (default "1") -sish.redirectroot Whether or not to redirect the root domain (default true) -sish.redirectrootlocation string Where to redirect the root domain to (default "https://github.com/antoniomika/sish") -sish.subdomainlen int The length of the random subdomain to generate (default 3) -sish.usegeodb Whether or not to use the maxmind geodb -sish.verifyorigin Whether or not to verify origin on websocket connection (default true) -sish.verifyssl Whether or not to verify SSL on proxy connection (default true) -sish.whitelistedcountries string A comma separated list of whitelisted countries -sish.whitelistedips string A comma separated list of whitelisted ips看不懂的，可以使用下谷歌翻译。最后CentOS系统建议关闭防火墙使用，或者打开部分端口也行，关闭命令：#CentOS 6系统 service iptables stop chkconfig iptables off #CentOS 7系统 systemctl stop firewalld systemctl disable firewalld 像阿里云等服务器，还需要去安全组那里开放下端口。手动安装Docker虽然方便很多，但也有人会喜欢手动安装，这里作者没直接给出二进制文件，所以就需要我们手动来构建二进制文件了。1、安装Go这里由于需要新版的Go环境，所以这里就使用Go二进制包安装环境，下载地址→传送门。然后根据自己的服务器架构下载对应的最新安装包，一般可以直接使用命令：#32位系统下载 wget -O go.tar.gz https://dl.google.com/go/go1.13.3.linux-386.tar.gz #64位系统下载 wget -O go.tar.gz https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz #解压压缩包 tar -zxvf go.tar.gz -C /usr/local #设置环境变量，将以下一起复制进ssh客户端运行 mkdir $HOME/go echo 'export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> /etc/profile source /etc/profile #查看go版本，有输出即为安装成功 go version 2、安装sish#下载源码到主目录 git clone https://github.com/antoniomika/sish cd sish #编译二进制文件 go install这里提示-bash: git: command not found的，可以先使用命令：#CentOS yum -y install git #Debian、Ubuntu apt install git -y 3、运行sish运行参数这里就不贴了，直接参考上面Docker安装最下面的全部参数就行了。先解析一个主/泛域名到服务器ip，比如解析moerats.com、*.moerats.com到服务器ip。这里就贴个大概需要使用的参数，其它的根据需求自行修改，使用命令：#配置http域名 sish -sish.addr=:3333 -sish.http=:80 -sish.domain moerats.com -sish.forcerandomsubdomain=false -sish.bindrandom=false -sish.redirectrootlocation https://www.moerats.com -sish.keysdir=/sish/pubkeys -sish.pkloc=/sish/keys/ssh_key #配置https域名 sish -sish.addr=:3333 -sish.https=:443 -sish.http=:80 -sish.domain moerats.com -sish.forcerandomsubdomain=false -sish.bindrandom=false -sish.httpsenabled=true -sish.redirectrootlocation https://www.moerats.com -sish.keysdir=/sish/pubkeys -sish.pkloc=/sish/keys/ssh_key -sish.httpspems=/sish/ssl 部分参数详解：-sish.addr=:3333 #ssh监听地址，这里为3333 -sish.forcerandomsubdomain=false #是否强制随机子域，这个建议关掉 -sish.bindrandom=false #是否随机绑定端口，这个建议关掉 -sish.domain moerats.com #使用的域名 -sish.redirectrootlocation https://www.baidu.com #主域名(-sish.domain参数)强制跳转到该地址 -sish.httpspems=/sish/ssl #泛域名SSL证书存放路径，证书命名格式fullchain.pem和privkey.pem -sish.keysdir=/sish/pubkeys #pubkey auth的公共密钥存放文件夹 -sish.pkloc=/sish/keys/ssh_key #SSH服务器私钥这里/sish/ssl、/sish/pubkeys、/sish/keys目录需要自己提前创建下，使用命令：mkdir -p /sish/ssl /sish/pubkeys /sish/keys 4、开机自启如果你使用手动命令没问题了，先使用Ctrl+C断开命令。再新建systemd配置文件，适用CentOS 7、Debian 8+、Ubuntu 16+。#修改成你手动运行命令的全部参数 command="-sish.addr=:3333 -sish.http=:80 -sish.domain moerats.com -sish.forcerandomsubdomain=false -sish.bindrandom=false -sish.redirectrootlocation https://www.moerats.com -sish.keysdir=/sish/pubkeys -sish.pkloc=/sish/keys" #将以下代码一起复制到SSH运行 cat > /etc/systemd/system/sish.service <<EOF [Unit] Description=sish After=network.target [Service] Type=simple ExecStart=$(command -v sish) ${command} Restart=on-failure [Install] WantedBy=multi-user.target EOF 启动并设置开机自启：systemctl start sish systemctl enable sish 最后CentOS系统建议关闭防火墙使用，或者打开部分端口也行，关闭命令：#CentOS 6系统 service iptables stop chkconfig iptables off #CentOS 7系统 systemctl stop firewalld systemctl disable firewalld 像阿里云等服务器，还需要去安全组那里开放下端口。使用使用要求：可以使用SSH，并且能连接到互联网，Linux、Windows等系统都行。以下所使用的的moerats.com为上面配置好的客户端域名地址，自行修改成自己的即可。1、转发HTTP(S)将本地3000端口穿透到公网中，使用命令：#要转发其它端口的自行替换 ssh -p 3333 -R 80:localhost:3000 moerats.com 第一次如果有提示，选择yes即可，之后会为你随机生成一个moerats.com的二级域名，然后就可以使用浏览器间接访问本地的localhost:3000了。如果要指定二级域名，可以使用命令：#这里默认为no1.moerats.com，自行替换即可 ssh -p 3333 -R no1:80:localhost:3000 moerats.com 此时你就可以在外网使用no1.moerats.com访问你本地的localhost:3000了。2、转发TCP将本地6789端口穿透到公网的9876端口中，使用命令：#可以自行设置公网端口，这里默认6789，如果你要转发SSH端口，那就改成你的SSH端口 ssh -p 3333 -R 9876:localhost:6789 moerats.com 这里只说了下简单用法，客户端我们还可以设置国家/地区、IP白名单等，使用参考→传送门。最后没有泛域名证书的，可以查看该教程自己申请→传送门，或者等博主发码子→传送门。
说明：GoIndex是一款部署在Cloudflare Workers的Google Drive目录索引程序，无需提供服务器，可以直接列出你谷歌网盘的所有文件，同时下载和访问也不需要挂梯子，也可以在线观看某些格式的视频文件，拿来玩玩也是可以的。截图安装Github地址：https://github.com/donwa/goindex备份地址：https://github.com/iiiiiii1/goindex首先肯定是需要一个谷歌网盘的，个人的话容量有点小，如果想容量大的，可以免费申请一个无限容量的Google Drive网盘，申请方法查看→传送门。这里直接使用作者提供的快速部署方法，由于使用的是rclone的google api，高峰期难免会出现点问题，后面也会说下使用自己的api部署方法。1、获取Workers代码先访问：https://installen.gd.workers.dev/，点击GET AUTH CODE，验证你的谷歌账号获取Auth code。然后开始输入你的Auth code，其它可以先默认，然后点击BUILD获取你的代码。开头的相关参数，可自行修改：#站点名称 "siteName": "GoIndex", #根目录访问密码，如不设置留空即可 "root_pass": "moerats", #根目录ID，默认整个网盘文件夹，如果只想列出根目录某个文件夹，那么填入该文件夹ID即可。 "root": "root"文件夹ID获取方法，点击根目录某个文件夹，地址栏为：https://drive.google.com/drive/folders/1C4Aro，则1C4Aro为文件夹ID。2、部署到Workers首先登录cloudflare，官网→传送门，然后首页右侧可以看到Workers入口。点进去后新建一个Workers子域名，也就是你的专属域名，填入确认后就更改不了了，所以别乱填。接下来点击Create a Worker创建一个Worker。把你之前获取的Workers代码粘贴进去，然后可以在左上角双击修改域名，再点击Save and Deploy即可。最后打开分配的子域名即可，此后修改配置可以自行修改Workers代码。绑定域名如果想绑定自己的域名，就需要先将自己的域名转到cloudflare，然后点自己的域名，解析一个A记录，IP地址随意。然后在上方找到Workers，选择后，点击页面下的Add route，进行如下设置。按照图中的格式，填上自己的域名，并选择对应的Workers程序即可。API部署这里也可以使用自己的API部署，好处就是安全点，高峰期也不容易爆炸，当然安装会麻烦点，如果不经常使用的话，还是建议用上面的方法快速部署。1、获取GDrive客户端先启用Google Drive API，启用地址：点击进入，注意这里使用个人账号操作。再创建一个OAuth client ID，创建地址：点击进入。应用类型选择其他(Other)，名称自己填，这里博主填的GoIndex。然后你会获得自己的客户端ID和客户端密钥，再复制下来。2、获取refresh_token这里使用Rclone来获取refresh_token，先登录VPS，先安装依赖，使用命令：#CentOS系统 yum install p7zip unzip -y #Debian/Ubuntu系统 apt install -y p7zip-full 再安装Rclone，使用命令：curl https://rclone.org/install.sh | bash开始配置，使用命令：rclone config会出现以下信息：n) New remote s) Set configuration password q) Quit config n/s/q> n name> Rats #配置名称，随便填 Type of storage to configure. Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value 1 / 1Fichier \ "fichier" 2 / Alias for an existing remote \ "alias" 3 / Amazon Drive \ "amazon cloud drive" 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc) \ "s3" 5 / Backblaze B2 \ "b2" 6 / Box \ "box" 7 / Cache a remote \ "cache" 8 / Dropbox \ "dropbox" 9 / Encrypt/Decrypt a remote \ "crypt" 10 / FTP Connection \ "ftp" 11 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 12 / Google Drive \ "drive" 13 / Google Photos \ "google photos" 14 / Hubic \ "hubic" 15 / JottaCloud \ "jottacloud" 16 / Koofr \ "koofr" 17 / Local Disk \ "local" 18 / Mega \ "mega" 19 / Microsoft Azure Blob Storage \ "azureblob" 20 / Microsoft OneDrive \ "onedrive" 21 / OpenDrive \ "opendrive" 22 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" 23 / Pcloud \ "pcloud" 24 / Put.io \ "putio" 25 / QingCloud Object Storage \ "qingstor" 26 / SSH/SFTP Connection \ "sftp" 27 / Union merges the contents of several remotes \ "union" 28 / Webdav \ "webdav" 29 / Yandex Disk \ "yandex" 30 / http Connection \ "http" 31 / premiumize.me \ "premiumizeme" Storage> 12 #选择12，Google Drive，注意该序列号会随时变化，看清楚再填 client_id> 850428 #填上你的Google Drive客户端ID client_secret> D72gPc #填上你的Google Drive客户端密匙 Choose a number from below, or type in your own value 1 / Full access all files, excluding Application Data Folder. \ "drive" 2 / Read-only access to file metadata and file contents. \ "drive.readonly" / Access to files created by rclone only. 3 | These are visible in the drive website. | File authorization is revoked when the user deauthorizes the app. \ "drive.file" / Allows read and write access to the Application Data folder. 4 | This is not visible in the drive website. \ "drive.appfolder" / Allows read-only access to file metadata but 5 | does not allow any access to read or download file content. \ "drive.metadata.readonly" scope> 1 ID of the root folder Leave blank normally. Fill in to access "Computers" folders. (see docs). Enter a string value. Press Enter for the default (""). root_folder_id> Service Account Credentials JSON file path Leave blank normally. Needed only if you want use SA instead of interactive login. Enter a string value. Press Enter for the default (""). service_account_file> Edit advanced config? (y/n) y) Yes n) No y/n> n #输入n Remote config Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine y) Yes n) No y/n> n #输入n If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/ #打开该地址获取code Log in and authorize rclone for access Enter verification code>hjdd #输入你获取到的code Configure this as a team drive? y) Yes n) No y/n> n #输入n -------------------- [Rats] type = drive client_id = 85042871 client_secret = D72gPc scope = drive token = {"access_token":"y902Z"} #记住里面的refresh_token参数 -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y #输入y Current remotes: Name Type ==== ==== Rats drive e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> q #输入q保存退出此时我们在配置过程中就获取到了refresh_token参数，如果忘了的可以查看配置文件。不知道配置文件在哪的，可以使用命令：rclone config file | grep rclone.conf 3、获取并修改Workers代码Workers代码可以点击该地址查看→传送门，先复制代码，部分修改可参考上面，不同的是，需要填上自己的api信息，如下：#填上自己的api客户端，密匙和获取到的refresh_token “client_id”：“20226481”， “client_secret”：“X4Z3ca8”， “refresh_token”：“”， 最后就可以部署Workers代码了，方法参考上面的快速部署。