Margrop
Articles158
Tags353
Categories21
1password AC AP API AppDaemon Aqara Cron Date Diagrams.net HA HADashboard HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS MySQL NAS PPPoE PostgreSQL ProcessOn Proxmox VE SSL Shell TTS TimeMachine UML Uptime Kuma Web Windows activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https idea image img img2kvm import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl tap tap-windows tapwindows telecom template terminal tls token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 光猫 公网IP 内存 内网IP 升级 启动 夏令时 天猫精灵 天翼云 安装 容器 导入 小米 常用软件 广告屏蔽 序列号 应用市场 异常 抓包 描述文件 时区 显卡虚拟化 智能家居 智能音箱 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 电信 画图 直播源 续期 网关 网络风暴 群晖 腾讯 虚拟机 证书 路由 路由器 软件管家 软路由 运维监控 镜像 镜像源 门窗传感器 防火墙 阿里云 阿里源 集客

Hitokoto

Archive

【转】如何设置xiaoya的docker,及tvbox配置

【转】如何设置xiaoya的docker,及tvbox配置

文章来源:https://xiaoyaliu.notion.site/xiaoya-docker-69404af849504fa5bcf9f2dd5ecaa75f

如何设置xiaoya的docker

要获得最新小雅的资讯请关注小雅的tg频道 https://t.me/xiaoyaliu

平时有什么使用上遇到的困难可以来这里找我或其他人帮助 https://t.me/PlutoPlayer


目录


你需要什么才能安装 xiaoya 的docker

  1. 软路由盒子类似 n1 等,具有 openwrt环境 (可以终端上一键配置)
  2. NAS 等具有docker插件 (无法或很难登入终端,需要图形化自行配置)
  3. 云服务器也就是俗称的 vps (可以终端上一键配置)

如何安装

openwrt或者vps下安装,调出终端命令行

openwrt控制面板左侧(“系统”或“服务”下找到“TTY终端”)

ssh 登入 openwrt

然后一键安装

bash -c “$(curl http://docker.xiaoya.pro/update_new.sh)”

如果是用host模式安装,则用

bash -c “$(curl http://docker.xiaoya.pro/update_new.sh)” -s host

第一次安装会出现下面的显示

Untitled

你需要配置好三个必要参数再安装:

对应文件 获取方式
token /etc/xiaoya/mytoken.txt https://aliyuntoken.vercel.app/ https://alist.nn.ci/zh/guide/drivers/aliyundrive.html
open token /etc/xiaoya/myopentoken.txt https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html
转存目录的folder id /etc/xiaoya/temp_transfer_folder_id.txt 先转存这个https://www.aliyundrive.com/s/rP9gP3h9asE 到自己网盘(选择资源盘),然后浏览器打开转存后的目录,浏览器的url https://www.aliyundrive.com/drive/file/resource/640xxxxxxxxxxxxxxxxxxxca8a 最后一串就是,记得这个目录不要删,里面的内容可以定期删除

参考视频

http://img.xiaoya.pro/教程.mp4

配置的内容和格式参考 “容器内 /data 目录的文件功能说明” 章节,有些平台需要额外在服务器的防火墙上开放端口,选择放行 5678或者6789端口

NAS 下图形配置安装

请参照下面的 群晖配置截图,其它NAS产品的配置大同小异

详见 http://alist.xiaoya.pro/安装,配置,修复%20xiaoya%20docker%20指南/群晖NAS%20Docker安装xiaoya.pdf

aa.jpg

bb.jpg

有的群晖因为固件原因,装载路径是 /data 保存应用会失败,那么尝试这样

Untitled

这是unraid的配置参考

Untitled

记住 端口映射是 5678 → 80 不是 5244 不然搜索会失效,出现下面的错误

Untitled

Untitled

额外功能

  1. 自动签到
  2. 检查token有效性工具
  3. 配合TVBOX 的json文件,可以搜索xiaoya的docker内容
  4. 挂载自定义的pikpak分享
  5. 挂载自己的多个pikpak网盘
  6. 挂载自定义的阿里分享资源

设置强制登入,和自定义密码

把密码保存到 /etc/xiaoya/guestpass.txt (不过不要设置稀奇古怪的符号,例如;&#“~@()*$ 之类的)

如果你的xiaoya放在公网,为了防止别人蹭网,可以设置强制登入,新增 /etc/xiaoya/guestlogin.txt 这个文件,重启即可,文件有没有内容无所谓,如果取消强制登入就删除这个文件。强制登入的账号为 dav,密码使用 /etc/xiaoya/guestpass.txt 里设置的,同时webdav连接使用 dav 这个用户

上述2个功能设置好后需要重启docker才会生效。

容器内 /data 目录的文件功能说明:

标注******* 的文件为必要,必须存在和有内容,所有的配置文件缺省位置在宿主机的 /etc/xiaoya

文件:**mytoken.txt *****
用途:用来加载阿里分享,和自动签到
格式:75fee1ca79514e60aa6d46c8370b9afd
备注:32位长度,参考 https://t.me/PlutoPlayer/239324

文件:**myopentoken.txt *****
用途:用来加载自己的阿里云盘(open接口)
格式:eyJ0eXAiOixxxxxLCJhbGciOiJSUzI1NiJ9.eyJzd999999wNzBkOWRiNWQ5YmQ0YT……..
备注:很长一串,280位,获取方式 https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html

文件:**temp_transfer_folder_id.txt *****
用途:你的阿里网盘的转存目录的folder id
格式:640xxxxxxxxxxxxxxxxxxxca8a
备注:打开你阿里云盘网页,目录所在的浏览器地址 https://www.aliyundrive.com/drive/folder/640xxxxxxxxxxxxxxxxxxxca8a 最后一串就是

Untitled

如果你升级到了阿里云盘app 4.9或以上,那么整个账号的设置会有大改动,你需要在新的“资源库”创建一个目录,先转存这个

https://www.aliyundrive.com/s/rP9gP3h9asE

然后打开浏览器,打开转存后的目录,在浏览器的url里获取folder id

Untitled

文件:pikpak.txt
用途:用来观看pikpak分享
格式:”xxxxxxxx” “yyyyyyyy”
备注:账号可以是邮箱和手机号,手机号前面要加区号,也就是 “+86xxxx” 这样,注册如果用谷歌快捷方式登入的话是无法使用谷歌邮箱登入的(alist不支持)

Untitled

文件:guestpass.txt
用途:自己修改 guest 账号的密码
备注:如果开启了强制登入则 登入账号 dav 也使用此密码

文件:guestlogin.txt
用途:通过此文件的存在与否来决定是否开启强制登入
格式:空白文件,不需要强制登入功能,则删除此文件

文件:show_my_ali.txt
用途:通过此文件的存在与否来决定是否加载自己的阿里云盘
格式:空白文件,不需要加载的,则删除此文件

文件:docker_address.txt
用途:配合 TVBOX的alist搜索
格式:http://xxxxx:5678 (最后不要加 /)

Untitled

TVBOX 配置地址 http://xxxxx:5678/tvbox/my.json
TVBOX 配置地址(多仓,需要TVBox壳支持) http://xxxxx:5678/tvbox/juhe.json

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

文件:docker_address_ext.txt
用途:外网地址,配合tvbox外网访问,对应的配置地址是 http://xxxx/tvbox/my_ext.json
格式:http://xxxxx:5678 (最后不要加 /)

文件:iptv.m3u
用途:在my.json中自定义额外的直播源 “我的私用”
格式:标准的m3u格式

Untitled

Untitled

文件:tv.txt
用途:挂载自定义直播源到xiaoya
格式:tvbox的直播源格式,如图所示

备注:直播源有格式,区域限制等问题,有的可以在网页观看,有的需要用播放器才能看

Untitled

Untitled

文件:proxy.txt
用途:使用代理,http,https,socks5 协议
格式:http://xxxxx:7890 或 socks5://xxxxx:7891 (最后不要加 /)

文件:alist_token_expire_time.txt
用途:设置alist auth token的有效期,缺省4800(对于无所谓安全的用户来说方便)
格式:72 (数字,单位是小时)

文件:alist_auth_token.txt
用途:无需设置,自动生成,可以用来配置alist v3方式套娃,删除后会重新生成一个新的
格式:alist-09ceb38a-f143-47f7-b255-c3eec819cd7bxxxxxxxxxxxxx

文件:tvbox_security.txt
用途:开启tvbox的随机订阅地址,防止公网上被人蹭,让别人猜不到你的订阅地址
格式:空白文件,没有则不开启

文件:tvbox_config.txt
用途:无需设置,自动生成,
格式:http://xxxxx:5678/tvbox/sdfh02ye.my.txt

文件:tvbox_config_ext.txt
用途:无需设置,自动生成,外网的随机订阅地址,
格式:http://xxxxx:5678/tvbox/sdfh02ye.my_ext.txt

文件:my.json
用途: 自定义tvbox配置文件
格式: TVBOX 兼容的json配置文件格式

文件:pikpak_list.txt
用途:挂载自己一个或多个 pikpak账号
格式:挂载名 “账号” “密码” ,用空格分开(pikpak2 “abc@hotmail.com“ “123456”),每行一个

备注:挂载名不能有空格

文件:alist_list.txt
用途:挂载一个或多个 Alist 套娃
格式:挂载名 alist版本(v2或v3)网址 目录,用空格分开每行一个
备注:挂载名不能有空格,网址最后不要有斜杠

Untitled

文件:pikpakshare_list.txt
用途:挂载自己一个或多个 pikpak分享
格式:挂载名 分享ID 分享目录 ,用空格分开(赵霸道 VNRT8Wr8BGyw1kt1HkijKR4Qo1 VNQf6ZmWE3pVWGpuFriGqyPzo1),每行一个
备注:挂载名不能有空格

Untitled

文件:alishare_list.txt
用途:挂载自定义分享ID
格式:挂载名 阿里分享ID 文件folder id,用空格分开,每行一个
120T电影资源 ZpevUcDZ2Pn 636c8ba0703acd24cd44b19dd00312ef15b1e8
60T各种资料 s6NBDauc5VZ 63b16e82a50ca34f6c7466293235a06d1af8ea3

备注:挂载名不能有空格

Untitled

另外提醒一下,不同平台导致的文本文件格式有差别,确保是 unix格式,utf-8编码,不然会出现乱码,网页报错,无法进入目录等奇奇怪怪的问题,看截图,确保编码格式正确

Untitled

示范配置文件

配置文件范例.zip

配置好了docker,但是浏览器访问不了怎么办

无法打开页面

Untitled

Untitled

最简单就是用host模式(端口6789)安装一次,可以规避桥接模式遇到防火墙规则冲突等问题

1
bash -c "$(curl -s http://docker.xiaoya.pro/update_new.sh)" -s host

启动加载慢

Untitled

请先检查alist所在设备的网络连接情况,

正常的加载时间是在1分钟-5分钟内,如果超过5分钟,那么可能有问题了,检查日志

docker logs -f xiaoya

如果看到

Untitled

那么就是触发了alist的open接口的限制

Untitled

那你需要暂停一小时,停止所有alist相关的镜像

1
2
3
docker stop xiaoya
docker stop xiaoya-hostmode (如果是host模式安装的镜像)
docker stop alist

一小时后再开启这些镜像

1
2
docker start xiaoya
docker start alist

或者可以通过科学 上网切换节点的方式变更IP来规避这个限制(因为它是以IP计算的)

出现 “The input paramter refresh_token is not valid”

Untitled

替换token, mytoken.txt 那个32位长的token

如何修复

curl http://docker.xiaoya.pro/version.txt
看看有没有获取到版本号

Untitled

如果没有获取到版本号,那么就是网络问题,先解决网络联通的问题。

如果上面检测能获取版本号,说明网络没问题,那么就大概率是防火墙的问题,有可能是其它软件干扰了docker的防火墙规则,可以这样尝试修复docker防火墙规则

1
service dockerd restart

或者 (视乎你的系统)

1
systemctl restart docker

目的是重启 Docker Daemon管理进程来重建docker 防火墙规则,然后再

docker restart xiaoya

如果还是不行,那要使出终极大招了

1
2
3
iptables -F
service dockerd restart
docker restart xiaoya

依次执行

阿里的风控

阿里更新了接口,有好几个人都出现一会儿能放一会儿不能放的情况,共同点就是都是使用infuse,然后在刮削扫描,那么综合起来,可以判断出阿里对短时间同IP大量请求会出现限制,

表现在网页就是出现 ParamFlowException

表现在播放器就是500错误

大家留意一下,尽量停掉扫描,过一会而会自动好

Untitled

Untitled

所以现在不要刮削,阿里开始动态连接管理了,短时间大量请求直接抛出错误,长时间不确定会怎么处理,肯定对token和账号会做出限制,因为从被连接放来说,看起来就像流量攻击,我之前防止别人对我的网站建索引也是采用差不多的手段

现在下面这些行为就变成了高危操作

  1. 使用infuse等缺省设置进行扫描获取元数据
  2. 使用kodi,plex,jellyfin,emby进行刮削
  3. 使用alist进行建索引

一定要小心不要让短期限制变成对你账户的长期限制,停止上述3种行为

什么软件可以连接 xiaoya ?

文件管理类型

  • ES文件浏览器,Solid Explorer

视频播放器

  • IOS 平台: infuse, fileball,nplayer
  • 安卓平台: nplayer, Kodi, Reex, NovaPlayer(魔改版)
  • windows: potplayer

挂载到本地目录

  • rclone,davfs2,raidrive,Mountain Duck

如何在播放器上通过webdav 连接 xiaoya的 docker

参考 potplayer, nplayer, kodi 的配置截图

webdav 账号密码

用户: guest

密码: guest_Api789

potplayer

Untitled

nplayer

Untitled

Kodi

Untitled

Untitled

Nova 魔改版(支持webdav,https://t.me/PlutoPlayer/127849

Untitled

infuse

Untitled

TVBOX

把你的docker url 填写进 docker_address.txt (缺省在 /etc/xiaoya 目录下)

比如 http://192.168.2.1:5678

在TVBOX 的配置地址填入 http://192.168.2.1:5678/tvbox/my.json

Untitled

可以支持xiaoya的搜索

Untitled

也可以用浏览的方式

Untitled

如何想自定义配置的json文件,则放置在 /etc/xiaoya/my.json 即可

如何配置自己的token

阿里token

****https://alist.nn.ci/zh/guide/drivers/aliyundrive.html

https://aliyundriver-refresh-token.vercel.app/

获取你的移动端token

然后,在终端命令行 (xxxxxxxxxxxxxxxx 就是你获取的token)

echo xxxxxxxxxxxxxxxxxxxxxx > /etc/xiaoya/mytoken.txt

或者将你自己获取到的token粘贴至 etc/xiaoya/mytoken.txt文件里并保存。

NAS或者其它自行配置的请放入自己在配置中设定的文件夹中,文件名是 mytoken.txt

记住一定要是移动端获取的,并且是32位长度

是否正确放置了进去,可以通过下面指令来确认

docker exec -it xiaoya cat /data/mytoken.txt

Pikpak 账号

把你的pikpak账号 保存到 /etc/xiaoya/pikpak.txt

格式如下:

“xxx” “yyy” (将xxx替换为账号,yyy替换为为密码,”账号” “密码”中间有空格,切记引号要英文字符的,是 “ 不是 “)

如果账号是手机号,要 +区号 ,比如你的手机号 12345678900 ,那么就填 “+8612345678900”

通过第三方认证注册的(比如谷歌),请留意看 “我的账号填对了,为什么还看不到pikpak目录下的内容” 的内容

注册开通PikPak请点击 注册

注册2个账号,一个用来存,一个用来看

注册后在 如图所示位置输入”兑换码“ 73900974 既可获得5天的试用会员资格,然后你利用5天时间去把空间塞满,5天会员到期后内容不会被删除,只能看不能存,这个账号也会被限速,你就把它当作分享盘(分享给自己的另一个账号或别人)

注册另一个账号,不要存超过6G的东西,只要不超过基本会员的免费6G空间,就可以不限速,这个用来看别人的分享或者自己的另一个账号的分享

Untitled

Untitled

注册尽量利用邮箱注册,这个就可以注册很多个

如果出现下面几个这样的图示,则表示你需要科学上网,有的地区可以直连,有的地区不行

Untitled

Untitled

如何确认自己的pikpak账号设置了没有?

通过下面指令来确定

docker exec -it xiaoya cat /data/pikpak.txt

我的账号填对了,为什么还看不到pikpak目录下的内容?

如果不是账号密码填错,那么我猜你是这样的情况,注册的时候使用了google,FB等第三方快捷注册,虽然看起来账号是谷歌邮箱,但实际上是不能用邮箱登入,而必须使用第三方验证,alist现在还不支持这种跳转到第三方的验证,所以你要么在账号设置里绑定一个邮箱,或者重新注册一个新账号

你可以自己验证一下,选择邮箱登入,输入你的gmail邮箱看行不行

Untitled

如何测试我的alist能够联通pikpak服务器?

在alist所在的设备命令行输入

curl https://inapp.mypikpak.com/ping

如果出现一大堆内容,则表示能联通pikpak,反之则否

播放不了视频怎么办,视频有画面没声音怎么办?

如果是用浏览器有的能放,有的不能放,那么大概率是浏览器视频解码能力不足,请调用第三方播放器尝试,或者通过webdav连接alist来播放(一般浏览器不支持 H.265 和 AC3 编码视频)

Untitled

出现了“磁盘满了,故障排查”怎么办

Untitled

有这几种可能:

  1. 你的网盘满了
  2. token 或者 opentoken失效
  3. 无法刷新opentoken(60分钟10次的限制)
  4. token和opentoken不是一个账号的
  5. 你删除了转存目录(即使你再重新创建一个同名的也没用,folder id变了)

Alist V3 无法套娃挂载 xiaoya 怎么办?

Untitled

执行下面代码获取令牌

1
2
3
docker exec -i xiaoya sqlite3 data/data.db <<EOF
select value from x_setting_items where key = "token";
EOF

把令牌填到 Authorization, Server 选用本地的docker 地址,不要填账号和密码

如果我布署在vps上会不会消耗我的流量?

302重定向和本地代理的差别是什么?

假设:

  • A 是播放器
  • B 是alist
  • C 是阿里

302:
A访问B,B告诉A,你要的东西在C那里,我给你个地址,你直接找C,然后A直连C

   因为 A 最好播放的时候直接连 C了,所以不消耗 B的流量,也就是B所在的vps流量

本地代理:
A访问B,B去访问C,把内容取回来,直接返回A,B做了中间人做转发

   B 在C的播放过程中消耗了 从C取内容(拉)+ 传给A (推),一进一出的流量

我以这个资源为例做具体说明

Untitled

复制连接得到的是

http://alist.xiaoya.pro/d/音乐/流行/自听无损音乐545首%20全部有封面歌词/王忻辰、苏星婕%20-%20清空.flac

连接这个url得到第一个跳转

Untitled

https://pdsapi.aliyundrive.com/v2/redirect?id=73e8b1fe5c204f1a85ea1ba3789e2da11673682931272933093

73e8b1fe5c204f1a85ea1ba3789e2da11673682931272933093 g)

就是这个资源(flac 文件)在阿里云盘系统里面的编号

Untitled

这个一长串的才是真正的资源存放地址,播放器就是通过这个最终的url,打开资源播放,这个资源是有有效期的,就是这个标志,是个unix的时间戳,你转换一下就知道是6个小时

Untitled

也就是六小时后你再用同样的url是打不开这个连接的,因为失效了,为什么要搞那么复杂,阿里直接给个资源存放地址不就完了,这是因为为了给用户最好的体验,更快的打开,使用了前置的缓存,也就是CDN,不同的用户获取到的CDN资源地址是有可能不一样的,阿里的CDN遍布全国,北京有,广东也有,北京的用户去广东取就会慢,才去就近最快速度的原则,北京附近的就指向北京的CDN资源,广东附近的就指向广东的CDN资源,但是CDN是中间层做缓存用的,就好像你硬盘的一级缓存,不是资源的最终存放地,量有限而且贵(使用内存加高速硬盘肯定贵),所以需要把不用的资源删除腾出地方给有用的,所以就有了有效期这个限制,过了有效期就删除腾地。

另外,要说明的是alist的代理角色,它是流量代理,不是缓存代理,所以并不能提高真实的视频播放流畅度,我以水管作为例子,

流量代理:

在网络通畅的情况下A → C 直管连接是最快的,B就好比水管的弯头/三通,A和C之间有一堵墙没法直连,那只能A → B, 然后 B → C , 这样通了多少是有损毁的,流速(用网络的名词就是多了延迟),实际体验就是不能看的变成能看了

缓存代理:

在A 和 C通和不通的情况下都可以实现,这是B的角色更像是增压阀,A → B 的管子应该比 B→ C 的管子粗,通过增压阀来保证B→ C 的(水压)流速,缓存代理是包含了上面流量代理的功能,实际体验就是不但能看而且看起来不卡了

如何定时和网站同步数据

如果你是基于Linux系统的(包括openwrt),可以用以下方法设置定时更新,终端执行

crontab -e

添加一条记录

0 6 * * * docker restart xiaoya

  1. 按 o 插入一行
  2. 然后把这堆文字输入进去
  3. 然后按键盘左上角 ESC键退出编辑模式
  4. 输入 :wq 保存退出

就是每天凌晨6点自动重启xiaoya docker去同步数据,你把6改成13,那就是下午1点,至于编辑器vi的使用方法请自行百度。

我的一些邀请码和推荐和小插件

阿里注册

https://www.aliyundrive.com/s/RAofD2V2hHa

通过我的分享链接注册有500G,可以注册小号来配合docker用

pikpak注册

https://toapp.mypikpak.com/activity/invited?code=77602333
https://toapp.mypikpak.com/activity/invited?code=39321258
https://toapp.mypikpak.com/activity/invited?code=39321258
https://toapp.mypikpak.com/activity/invited?code=83642225

机场推荐

虎云

http://reserved.huyun.icu:50000/#/register?code=BMI25zNV

优惠码: pluto95

TAG

https://tagss01.pro#/register?invite=jmhQGmCg

检查token的有效性 (32位)

docker exec xiaoya /checktoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxx 是你的 token

检查open token的有效性 (280位)

docker exec xiaoya /checkopentoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxx 是你的 open token

手动签到阿里云盘

docker exec xiaoya /ali_auto_checkin.sh xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxx 是你的 token

油猴豆瓣插件(包含小雅搜索)

https://greasyfork.org/zh-CN/scripts/461306-豆瓣资源下载大师-包含小雅-豆瓣电影-音乐-图书下载

Untitled

如果你觉得小雅帮助了你,请给小雅打赏,不要吝啬哦

dashan.png

Author:Margrop
Link:http://blog.margrop.com/post/deploy-xiaoya-docker-and-tvbox/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可