├── logo.png ├── 530个国内源.txt ├── 一键搭建节点+dns流媒体分流教程.txt ├── 文字说明.txt ├── mytv.js ├── 安装软件.txt ├── Aktv.m3u ├── mytvsuper .m3u ├── tvb.cfg └── bbrtcp.sh /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btjson/TVB/HEAD/logo.png -------------------------------------------------------------------------------- /530个国内源.txt: -------------------------------------------------------------------------------- 1 | 镜像拉取: docker pull doubebly/doube-itv:latest 2 | 3 | 镜像运行: 4 | docker run -d --name=doube-itv -p 50001:5000 docker.zhai.cm/doubebly/doube-itv:latest 5 | 6 | 7 | 访问 http://ip:port/help (示例:http://127.0.0.1:50001/help),可以看到txt和m3u的订阅链接 8 | 9 | 支持的架构:linux/amd64:18.86 MB,linux/arm64: 19.38 MB,linux/arm/v7: 17.57 MB 10 | 11 | 12 | 总共有530个有效频道,(需要国内vps或者软路由使用,禁止海外地区) 13 | 14 | 🤣沐辰老板提供~!!!!!! 15 | -------------------------------------------------------------------------------- /一键搭建节点+dns流媒体分流教程.txt: -------------------------------------------------------------------------------- 1 | 白嫖dns 流媒体解锁地址 2 | 3 | https://app.alice.ws 4 | 5 | https://akile.io 6 | 7 | 8 | 9 | 10 | 11 | 12 | 测试流媒体解锁命令 13 | 14 | bash <(curl -L -s check.unlock.media) 15 | 16 | 17 | 首次执行mack-a 八合一脚本 18 | wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh 19 | 20 | 选择2 在选择1 一直往下操作 21 | 22 | 再次执行 23 | 选择11 在选择5 然后添加dns 也就是你白嫖的dns 或者你收费的dns 24 | 25 | 26 | 27 | 然后输入下方的 28 | 29 | api2.4gtv.tv,4gtv,4gtvfree-cds.cdn.hinet.net,ntd-tgc.cdn.hinet.net,cdn.hinet.net,akamaized,netflix,bahamut,hulu,hbo,disney,bbc,4chan,fox,abema,dmm,niconico,pixiv,bilibili,viu 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /文字说明.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Pixman部署一键命令 10 | 11 | 12 | docker run -d --name=pixman -p 52625:5000 -e MYTVSUPER_TOKEN=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJib3NzX2lkIjoiMjQxNTY0NDM2IiwiZGV2aWNlX3Rva2VuIjoic3k2dnl5dnFqVGlFNUdlcUg3RloycVZSIiwiZGV2aWNlX2lkIjoiTVRVeU9XUTVORFF0TmpNeU5pMDBaVEE1TFdKaU9UWXRPRGRqTVdSbFpqWmlNamc1IiwiZGV2aWNlX3R5cGUiOiJ3ZWIiLCJkZXZpY2Vfb3MiOiJicm93c2VyIiwiZHJtX2lkIjoiTVRVeU9XUTVORFF0TmpNeU5pMDBaVEE1TFdKaU9UWXRPRGRqTVdSbFpqWmlNamc1IiwiZXh0cmEiOnsicHJvZmlsZV9pZCI6NH0sImlhdCI6MTczMzQxMDY1MSwiZXhwIjoxNzMzNDE0MjUxfQ.ebCZoikqCkLYkIvaVKwLDKBZv7iqLYslMaKgvLlTAXsVZOlT_gM8SwedMEvMDLyfA9eV4TRJQJwDtBHMDYyKzKE47F6gQ1dSRg4BJi8E42yOwzUFUluv_hUTTjtA0zxSVzpsyKTS9NgQnovFFsdOKYU12LUrsk4XLhDOOVdq0l4szVMVms4Y7wwmC8QXcDXBsXqgGEWLsuK0NyjNzUxwELyieJS4_RvNCWaxkHB8Jbbh_9-q2DU5saJTy7uZtMvBRtAQg8TpjpB7DyTdaZdE8TaI3c1VHn8Ujzq-nplL4MoUn_RvdEpjMzqOyEf0RVsVBBPIfET6D7Hr3hubnrWBY_h6OLelVXoe2ovNoIoVDTRe3-PwWVvBBBI4HAajQWtxSxvzWd-bcKKy_ujKDoutfEDx6yFvOddTVAMbJD70qSl5-wIi0ACcHpW07z1xUCQVuz35UxpzTGFAzo7zkuRT7R4cZjt9GqmPnjtKhtdL5Hu010ievS28EwaNgC1Ubb2Jd6EEmK-xSM_YCYtkGdTfIrfGTgICDJAbkLCS4vgr9k-84rZM9fJJhj5bUmZnFpJ4kpmVRhUzQSvGTcmuihKJ8uWG03QnhSH_ZYQ7sB8RIH0LJ95A21_ON1ihc-ADoH6lbRrRuVuDZx3onC0QQEUQDZlpTRnBMqpzqubl47Ta1ko --restart=always pixman/pixman 13 | 14 | 15 | 16 | 17 | o11命令 18 | 19 | docker run -itd --name=o11 --restart=always -p 自定义端口:1234 wechatofficial/o11:latest 20 | 21 | 22 | 23 | 24 | 25 | 26 | 1.打开软路由 安装o11 直接看我操作 注释:o11只支持X86系统 查看--->状态----->概览---->目标平台---- x86/64 这个就支持 也就是只支持AMD 27 | 28 | 2.安装o11 执行命令 docker run -itd --name=o11 --restart=always -p 自定义端口:1234 wechatofficial/o11:latest 29 | 30 | 其中自定义端口 自己填写,但是一定要记住这个端口 31 | 32 | 33 | 3. 安装完毕o11 我们访问,IP+端口 端口是你设置的自定义端口 34 | 35 | 36 | 4. 打开访问o11后台, 我们点击Users 添加一个用户名 然后点击ADD USER 37 | 38 | 39 | 40 | socks5://judy:judy520@205.185.123.236:55201 41 | 42 | 测试一下播放 43 | 44 | 45 | 46 | 47 | 48 | mytv.js 是需要cloudflare work 部署(mytvsuper .m3u 这个文件是不部署完毕替换一下域名即可) 会就自己部署, 不会就放弃即可 49 | 50 | 51 | 52 | 53 | tvb.cfg文件是导入o11的备份文件 54 | 55 | 说明 登陆o11 设置账号密码只会 再次登陆,然后导入这个文件即可 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /mytv.js: -------------------------------------------------------------------------------- 1 | addEventListener("fetch", event => { 2 | event.respondWith(handleRequest(event.request)) 3 | }) 4 | 5 | const api_token = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJib3NzX2lkIjoiMjQxNTY0NDM2IiwiZGV2aWNlX3Rva2VuIjoic3k2dnl5dnFqVGlFNUdlcUg3RloycVZSIiwiZGV2aWNlX2lkIjoiTVRVeU9XUTVORFF0TmpNeU5pMDBaVEE1TFdKaU9UWXRPRGRqTVdSbFpqWmlNamc1IiwiZGV2aWNlX3R5cGUiOiJ3ZWIiLCJkZXZpY2Vfb3MiOiJicm93c2VyIiwiZHJtX2lkIjoiTVRVeU9XUTVORFF0TmpNeU5pMDBaVEE1TFdKaU9UWXRPRGRqTVdSbFpqWmlNamc1IiwiZXh0cmEiOnsicHJvZmlsZV9pZCI6NH0sImlhdCI6MTczMzQxMDY1MSwiZXhwIjoxNzMzNDE0MjUxfQ.ebCZoikqCkLYkIvaVKwLDKBZv7iqLYslMaKgvLlTAXsVZOlT_gM8SwedMEvMDLyfA9eV4TRJQJwDtBHMDYyKzKE47F6gQ1dSRg4BJi8E42yOwzUFUluv_hUTTjtA0zxSVzpsyKTS9NgQnovFFsdOKYU12LUrsk4XLhDOOVdq0l4szVMVms4Y7wwmC8QXcDXBsXqgGEWLsuK0NyjNzUxwELyieJS4_RvNCWaxkHB8Jbbh_9-q2DU5saJTy7uZtMvBRtAQg8TpjpB7DyTdaZdE8TaI3c1VHn8Ujzq-nplL4MoUn_RvdEpjMzqOyEf0RVsVBBPIfET6D7Hr3hubnrWBY_h6OLelVXoe2ovNoIoVDTRe3-PwWVvBBBI4HAajQWtxSxvzWd-bcKKy_ujKDoutfEDx6yFvOddTVAMbJD70qSl5-wIi0ACcHpW07z1xUCQVuz35UxpzTGFAzo7zkuRT7R4cZjt9GqmPnjtKhtdL5Hu010ievS28EwaNgC1Ubb2Jd6EEmK-xSM_YCYtkGdTfIrfGTgICDJAbkLCS4vgr9k-84rZM9fJJhj5bUmZnFpJ4kpmVRhUzQSvGTcmuihKJ8uWG03QnhSH_ZYQ7sB8RIH0LJ95A21_ON1ihc-ADoH6lbRrRuVuDZx3onC0QQEUQDZlpTRnBMqpzqubl47Ta1ko'; 6 | async function get_mytvsuper(channel) { 7 | const headers = { 8 | 'Accept': 'application/json', 9 | 'Authorization': `Bearer ${api_token}`, 10 | 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', 11 | 'Host': 'user-api.mytvsuper.com', 12 | 'Origin': 'https://www.mytvsuper.com', 13 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5.2 Safari/605.1.15', 14 | 'Referer': 'https://www.mytvsuper.com/', 15 | 'X-Forwarded-For': '116.49.236.216', 16 | } 17 | 18 | const params = new URLSearchParams(); 19 | params.append('platform', 'android_tv'); 20 | params.append('network_code', channel); 21 | 22 | const response = await fetch(`https://user-api.mytvsuper.com/v1/channel/checkout?${params}`, { headers }); 23 | if (response.status != 200) { 24 | return null; 25 | } 26 | 27 | const json = await response.json(); 28 | const profiles = json.profiles || []; 29 | let play_url = ''; 30 | for (let i of profiles) { 31 | if (i.quality === 'high') { 32 | play_url = i.streaming_path; 33 | break; 34 | } 35 | } 36 | 37 | if (!play_url) { 38 | return null; 39 | } 40 | return play_url.split('&p=')[0]; 41 | } 42 | 43 | async function handleRequest(request) { 44 | const url = new URL(request.url); 45 | const path = url.pathname.split('/'); 46 | const id = path.pop(); 47 | 48 | const redirect_url = await get_mytvsuper(id) || 'https://nolive.livednow.com/nolive.m3u8'; 49 | 50 | let cacheControl = 'public, max-age=10' 51 | if (redirect_url !== 'https://nolive.livednow.com/nolive.m3u8') { 52 | cacheControl = 'public, max-age=43200' 53 | } 54 | 55 | const response = new Response(null, { 56 | status: 302, 57 | headers: { 58 | Location: redirect_url, 59 | 'Cache-Control': cacheControl, 60 | }, 61 | }); 62 | return response; 63 | } -------------------------------------------------------------------------------- /安装软件.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 安装肥羊的旧版本 支持腾讯体育 咪咕体育 5 | 6 | 7 | 8 | 镜像下载 9 | 10 | https://drive.google.com/drive/folders/1NigILp6YvRNXy68U2n5ePHjRSA-HR6KY?usp=sharing 11 | 12 | 镜像名字我写的youshandefeiyang/allinone:latest 13 | 14 | 15 | 容器 执行一键安装 16 | 17 | 18 | 19 | docker run -d --net=host --privileged=true -p 自定义端口:35455 --name allinone-test youshandefeiyang/allinone:latest /allinone 20 | 21 | 如果自己不想要host 22 | 23 | 那就执行 24 | docker run -d --privileged=true -p 自定义端口:35455 --name allinone-test youshandefeiyang/allinone:latest /allinone 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 部署完毕 33 | 34 | 35 | http://IP+端口/tv.m3u 这个是ysptp,,,,,,,,,,,,35455这个端口改成自己自定义的端口 36 | 37 | 咪咕(获取教程) 38 | 39 | 40 | 咪咕TV,,,,,,,,,,,,35455这个端口改成自己自定义的端口 41 | http://你的IP:35455/migu.m3u?userid=你的userid&usertoken=你的usertoken 42 | 43 | 44 | 咪咕体育,,,,,,,,35455这个端口改成自己自定义的端口 45 | 46 | http://你的IP:35455/miguevent.m3u?userid=XXXXX&usertoken=XXXXXXXX 47 | 48 | 获取Migu Token方法如下(在电脑浏览器打开 https://www.miguvideo.com/ ,登录你的账号后按F12在控制台粘贴以下代码获取,需要注意,migutv需要开通钻石VIP才能畅看直播,钻石VIP貌似可以领取,具体自己研究。): 49 | 50 | 51 | 52 | function generateSubscriptionUrl() { 53 | const getCookie = (name) => { 54 | const value = '; ' + document.cookie; 55 | const parts = value.split('; ' + name + '='); 56 | if (parts.length === 2) { 57 | return parts.pop().split(';').shift(); 58 | } 59 | }; 60 | 61 | const user_info = JSON.parse(decodeURIComponent(getCookie('userInfo'))); 62 | 63 | if (user_info) { 64 | let url; 65 | const user_id = user_info.userId; 66 | const user_token = user_info.userToken; 67 | if (user_id && user_token) { 68 | url = `http://你的IP:35455/migu.m3u?userid=${user_id}&usertoken=${user_token}`; 69 | console.log('你的订阅配置为:', url); 70 | return url; 71 | } else { 72 | console.log('用户Cookie缺失'); 73 | } 74 | 75 | } else { 76 | console.log('用户Cookie找不到'); 77 | } 78 | } 79 | generateSubscriptionUrl(); 80 | 81 | 82 | 83 | 84 | 85 | 86 | 腾讯体育 35455这个端口改成自己自定义的端口 87 | 88 | 89 | http://你的IP:35455/txevent.m3u?main_login=qq&vqq_appid=XXXXXXXXXXXXX&vqq_openid=XXXXXXXXXXXXX&vqq_access_token=XXXXXXXXXXXXXXXXXXX 90 | 91 | 92 | 93 | 94 | 95 | 在这里借用一下pix大佬获取资料的代码 我们只需要获取上面三个参数即可 vqq_appid= vqq_openid= vqq_access_token= 96 | 97 | 98 | function generateSubscriptionUrl() { 99 | const getCookie = (name) => { 100 | const value = '; ' + document.cookie; 101 | const parts = value.split('; ' + name + '='); 102 | if (parts.length === 2) { 103 | return parts.pop().split(';').shift(); 104 | } 105 | }; 106 | 107 | const main_login = getCookie('main_login'); 108 | 109 | if (main_login) { 110 | let url; 111 | 112 | if (main_login === 'qq') { 113 | const vqq_appid = getCookie('vqq_appid'); 114 | const vqq_openid = getCookie('vqq_openid'); 115 | const vqq_access_token = getCookie('vqq_access_token'); 116 | 117 | if (vqq_appid && vqq_openid && vqq_access_token) { 118 | url = `https://livednow.org/tencent/list?main_login=${main_login}&vqq_appid=${vqq_appid}&vqq_openid=${vqq_openid}&vqq_access_token=${vqq_access_token}`; 119 | console.log('你的订阅配置为:', url); 120 | return url; 121 | } else { 122 | console.log('One or more QQ cookies are missing'); 123 | } 124 | 125 | } else if (main_login === 'wx') { 126 | const appid = getCookie('appid'); 127 | const openid = getCookie('openid'); 128 | const access_token = getCookie('access_token'); 129 | const vuserid = getCookie('vuserid'); 130 | const refresh_token = getCookie('refresh_token'); 131 | 132 | if (appid && openid && access_token && vuserid && refresh_token) { 133 | url = `https://livednow.org/tencent/list?main_login=${main_login}&appid=${appid}&openid=${openid}&access_token=${access_token}&vuserid=${vuserid}&refresh_token=${refresh_token}`; 134 | console.log('你的订阅配置为:', url); 135 | return url; 136 | } else { 137 | console.log('One or more WeChat cookies are missing'); 138 | } 139 | } 140 | 141 | } else { 142 | console.log('main_login cookie is missing'); 143 | } 144 | } 145 | generateSubscriptionUrl(); 146 | 147 | 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /Aktv.m3u: -------------------------------------------------------------------------------- 1 | #EXTM3U x-tvg-url="" 2 | 3 | 4 | #EXTINF:20 group-title="AKTV" tvg-id="aktv/null" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 翡翠台 5 | http://aktv.top/AKTV/live/aktv/null/AKTV.m3u8 6 | 7 | #EXTINF:21 group-title="AKTV" tvg-id="aktv/null-17" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 翡翠综合台(北美) 8 | http://aktv.top/AKTV/live/aktv/null-17/AKTV.m3u8 9 | 10 | #EXTINF:22 group-title="AKTV" tvg-id="aktv/null-3" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 鳳凰中文 11 | http://aktv.top/AKTV/live/aktv/null-3/AKTV.m3u8 12 | 13 | #EXTINF:23 group-title="AKTV" tvg-id="aktv/null-4" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 鳳凰資訊 14 | http://aktv.top/AKTV/live/aktv/null-4/AKTV.m3u8 15 | 16 | #EXTINF:24 group-title="AKTV" tvg-id="aktv/null-5" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 鳳凰香港 17 | http://aktv.top/AKTV/live/aktv/null-5/AKTV.m3u8 18 | 19 | #EXTINF:29 group-title="AKTV2" tvg-id="aktv2/null" tvg-logo="" provider="AKTV2" provider-logo="" provider-type="iptv",[AKTV2] 東森新聞 20 | http://aktv.top/AKTV/live/aktv2/null/AKTV.m3u8 21 | 22 | #EXTINF:14 group-title="AKTV" tvg-id="aktv/null-7" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 寰宇新聞台 23 | http://aktv.top/AKTV/live/aktv/null-7/AKTV.m3u8 24 | 25 | #EXTINF:2 group-title="AKTV" tvg-id="aktv/channel5hd" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] Channel 5 HD 26 | http://aktv.top/AKTV/live/aktv/channel5hd/AKTV.m3u8 27 | 28 | #EXTINF:3 group-title="AKTV" tvg-id="aktv/channel8hd" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] Channel 8 HD 29 | http://aktv.top/AKTV/live/aktv/channel8hd/AKTV.m3u8 30 | 31 | #EXTINF:4 group-title="AKTV" tvg-id="aktv/channeluhd" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] Channel U HD 32 | http://aktv.top/AKTV/live/aktv/channeluhd/AKTV.m3u8 33 | 34 | #EXTINF:5 group-title="AKTV" tvg-id="aktv/mytvsuper18" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] myTV SUPER 18台 35 | http://aktv.top/AKTV/live/aktv/mytvsuper18/AKTV.m3u8 36 | 37 | #EXTINF:6 group-title="AKTV" tvg-id="aktv/popc" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] PopC 38 | http://aktv.top/AKTV/live/aktv/popc/AKTV.m3u8 39 | 40 | #EXTINF:7 group-title="AKTV" tvg-id="aktv/rockaction" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] ROCK Action 41 | http://aktv.top/AKTV/live/aktv/rockaction/AKTV.m3u8 42 | 43 | #EXTINF:8 group-title="AKTV" tvg-id="aktv/tvbplus" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] TVB Plus 44 | http://aktv.top/AKTV/live/aktv/tvbplus/AKTV.m3u8 45 | 46 | #EXTINF:9 group-title="AKTV" tvg-id="aktv/tvbs-1" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] TVBS-新聞台 47 | http://aktv.top/AKTV/live/aktv/tvbs-1/AKTV.m3u8 48 | 49 | #EXTINF:10 group-title="AKTV" tvg-id="aktv/tvn" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] tvN 50 | http://aktv.top/AKTV/live/aktv/tvn/AKTV.m3u8 51 | 52 | #EXTINF:11 group-title="AKTV" tvg-id="aktv/null-6" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 中天新聞台 53 | http://aktv.top/AKTV/live/aktv/null-6/AKTV.m3u8 54 | 55 | #EXTINF:12 group-title="AKTV" tvg-id="aktv/null-15" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 千禧經典台(HK) 56 | http://aktv.top/AKTV/live/aktv/null-15/AKTV.m3u8 57 | 58 | #EXTINF:13 group-title="AKTV" tvg-id="aktv/hk" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 娛樂新聞台(HK) 59 | http://aktv.top/AKTV/live/aktv/hk/AKTV.m3u8 60 | 61 | #EXTINF:15 group-title="AKTV" tvg-id="aktv/null-19" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 明珠剧集台(北美) 62 | http://aktv.top/AKTV/live/aktv/null-19/AKTV.m3u8 63 | 64 | #EXTINF:16 group-title="AKTV" tvg-id="aktv/null-2" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 明珠台 65 | http://aktv.top/AKTV/live/aktv/null-2/AKTV.m3u8 66 | 67 | #EXTINF:17 group-title="AKTV" tvg-id="aktv/null-1" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 無線新聞台 68 | http://aktv.top/AKTV/live/aktv/null-1/AKTV.m3u8 69 | 70 | #EXTINF:18 group-title="AKTV" tvg-id="aktv/hk-1" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 美亞電影台(HK) 71 | http://aktv.top/AKTV/live/aktv/hk-1/AKTV.m3u8 72 | 73 | #EXTINF:19 group-title="AKTV" tvg-id="aktv/null-18" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 翡翠剧集台(北美) 74 | http://aktv.top/AKTV/live/aktv/null-18/AKTV.m3u8 75 | 76 | #EXTINF:25 group-title="AKTV" tvg-id="aktv/null-21" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 黃金翡翠台 77 | http://aktv.top/AKTV/live/aktv/null-21/AKTV.m3u8 78 | 79 | #EXTINF:26 group-title="AKTV2" tvg-id="aktv2/axn" tvg-logo="" provider="AKTV2" provider-logo="" provider-type="iptv",[AKTV2] AXN 80 | http://aktv.top/AKTV/live/aktv2/axn/AKTV.m3u8 81 | 82 | #EXTINF:27 group-title="AKTV2" tvg-id="aktv2/lovenaturehd" tvg-logo="" provider="AKTV2" provider-logo="" provider-type="iptv",[AKTV2] Love Nature HD 83 | http://aktv.top/AKTV/live/aktv2/lovenaturehd/AKTV.m3u8 84 | 85 | #EXTINF:28 group-title="AKTV2" tvg-id="aktv2/null-1" tvg-logo="" provider="AKTV2" provider-logo="" provider-type="iptv",[AKTV2] 无线新闻台(北美) 86 | http://aktv.top/AKTV/live/aktv2/null-1/AKTV.m3u8 87 | 88 | #EXTINF:30 group-title="AKTV3" tvg-id="aktv3/animaxhk" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] Animax(HK) 89 | http://aktv.top/AKTV/live/aktv3/animaxhk/AKTV.m3u8 90 | 91 | #EXTINF:31 group-title="AKTV3" tvg-id="aktv3/dw" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] DW 92 | http://aktv.top/AKTV/live/aktv3/dw/AKTV.m3u8 93 | 94 | #EXTINF:32 group-title="AKTV3" tvg-id="aktv3/france24" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] France 24 95 | http://aktv.top/AKTV/live/aktv3/france24/AKTV.m3u8 96 | 97 | #EXTINF:33 group-title="AKTV3" tvg-id="aktv3/kix" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] KIX 98 | http://aktv.top/AKTV/live/aktv3/kix/AKTV.m3u8 99 | 100 | #EXTINF:34 group-title="AKTV3" tvg-id="aktv3/lovenaturehd" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] Love Nature HD 101 | http://aktv.top/AKTV/live/aktv3/lovenaturehd/AKTV.m3u8 102 | 103 | #EXTINF:35 group-title="AKTV3" tvg-id="aktv3/nhkworldjapan" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] NHK World-Japan 104 | http://aktv.top/AKTV/live/aktv3/nhkworldjapan/AKTV.m3u8 105 | 106 | #EXTINF:36 group-title="AKTV3" tvg-id="aktv3/nhk" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] NHK東京総合 107 | http://aktv.top/AKTV/live/aktv3/nhk/AKTV.m3u8 108 | 109 | #EXTINF:37 group-title="AKTV3" tvg-id="aktv3/nickjr" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] Nick Jr 110 | http://aktv.top/AKTV/live/aktv3/nickjr/AKTV.m3u8 111 | 112 | #EXTINF:38 group-title="AKTV3" tvg-id="aktv3/nickelodeon" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] Nickelodeon 113 | http://aktv.top/AKTV/live/aktv3/nickelodeon/AKTV.m3u8 114 | 115 | #EXTINF:39 group-title="AKTV3" tvg-id="aktv3/thrill" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] Thrill 116 | http://aktv.top/AKTV/live/aktv3/thrill/AKTV.m3u8 117 | 118 | #EXTINF:40 group-title="AKTV3" tvg-id="aktv3/zoomoo" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] ZooMoo 119 | http://aktv.top/AKTV/live/aktv3/zoomoo/AKTV.m3u8 120 | 121 | #EXTINF:41 group-title="AKTV3" tvg-id="aktv3/null-3" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] 亞洲新聞台 122 | http://aktv.top/AKTV/live/aktv3/null-3/AKTV.m3u8 123 | 124 | #EXTINF:42 group-title="AKTV3" tvg-id="aktv3/null" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] 東方衛視國際頻道 125 | http://aktv.top/AKTV/live/aktv3/null/AKTV.m3u8 126 | 127 | #EXTINF:43 group-title="AKTV3" tvg-id="aktv3/null-2" tvg-logo="" provider="AKTV3" provider-logo="" provider-type="iptv",[AKTV3] 無線衛星新聞台 128 | http://aktv.top/AKTV/live/aktv3/null-2/AKTV.m3u8 129 | 130 | #EXTINF:1 group-title="AKTV" tvg-id="aktv/28ai" tvg-logo="" provider="AKTV" provider-logo="" provider-type="iptv",[AKTV] 28 AI 智慧賽馬 131 | http://aktv.top/AKTV/live/aktv/28ai/AKTV.m3u8 132 | -------------------------------------------------------------------------------- /mytvsuper .m3u: -------------------------------------------------------------------------------- 1 | #EXTM3U 2 | #EXTM3U x-tvg-url="https://assets.livednow.com/epg.xml" 3 | 4 | #EXTINF:-1 tvg-id="翡翠台" tvg-name="翡翠台" tvg-logo="https://assets.livednow.com/logo/翡翠台.png" group-title="綜合", 翡翠台 5 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 6 | #KODIPROP:inputstream.adaptive.license_type=clearkey 7 | #KODIPROP:inputstream.adaptive.license_key=0958b9c657622c465a6205eb2252b8ed:2d2fd7b1661b1e28de38268872b48480 8 | https://XXXXXXX.com/J 9 | 10 | #EXTINF:-1 tvg-id="翡翠台" tvg-name="翡翠台 4K" tvg-logo="https://assets.livednow.com/logo/翡翠台.png" group-title="綜合", 翡翠台 4K 11 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 12 | #KODIPROP:inputstream.adaptive.license_type=clearkey 13 | #KODIPROP:inputstream.adaptive.license_key=2c045f5adb26d391cc41cd01f00416fa:fc146771a9b096fc4cb57ffe769861be 14 | https://XXXXXXX.com/JUHD 15 | 16 | #EXTINF:-1 tvg-id="TVB-Plus" tvg-name="TVB Plus" tvg-logo="https://assets.livednow.com/logo/TVB-Plus.png" group-title="綜合", TVB Plus 17 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 18 | #KODIPROP:inputstream.adaptive.license_type=clearkey 19 | #KODIPROP:inputstream.adaptive.license_key=56603b65fa1d7383b6ef0e73b9ae69fa:5d9d8e957d2e45d8189a56fe8665aaaa 20 | https://XXXXXXX.com/B 21 | 22 | #EXTINF:-1 tvg-id="無線新聞台" tvg-name="無線新聞台" tvg-logo="https://assets.livednow.com/logo/無線新聞台.png" group-title="新聞財經", 無線新聞台 23 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 24 | #KODIPROP:inputstream.adaptive.license_type=clearkey 25 | #KODIPROP:inputstream.adaptive.license_key=90a0bd01d9f6cbb39839cd9b68fc26bc:51546d1f2af0547f0e961995b60a32a1 26 | https://XXXXXXX.com/C 27 | 28 | #EXTINF:-1 tvg-id="明珠台" tvg-name="明珠台" tvg-logo="https://assets.livednow.com/logo/明珠台.png" group-title="新聞財經", 明珠台 29 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 30 | #KODIPROP:inputstream.adaptive.license_type=clearkey 31 | #KODIPROP:inputstream.adaptive.license_key=e04facdd91354deee318c674993b74c1:8f97a629de680af93a652c3102b65898 32 | https://XXXXXXX.com/P 33 | 34 | #EXTINF:-1 tvg-id="MytvSuper" tvg-name="myTV SUPER FREE" tvg-logo="https://assets.livednow.com/logo/MytvSuper.png" group-title="戲劇電影", myTV SUPER FREE 35 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 36 | #KODIPROP:inputstream.adaptive.license_type=clearkey 37 | #KODIPROP:inputstream.adaptive.license_key=0737b75ee8906c00bb7bb8f666da72a0:15f515458cdb5107452f943a111cbe89 38 | https://XXXXXXX.com/CWIN 39 | 40 | #EXTINF:-1 tvg-id="myTV-SUPER-18" tvg-name="myTV SUPER 18台" tvg-logo="https://assets.livednow.com/logo/myTV-SUPER-18.png" group-title="戲劇電影", myTV SUPER 18台 41 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 42 | #KODIPROP:inputstream.adaptive.license_type=clearkey 43 | #KODIPROP:inputstream.adaptive.license_key=72de7d0a1850c8d40c5bdf9747a4ca7c:4967537ff0bc8209277160759de4adef 44 | https://XXXXXXX.com/C18 45 | 46 | #EXTINF:-1 tvg-id="myTV-28-AI" tvg-name="28 AI 智慧賽馬" tvg-logo="https://assets.livednow.com/logo/myTV-28-AI.png" group-title="體育", 28 AI 智慧賽馬 47 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 48 | #KODIPROP:inputstream.adaptive.license_type=clearkey 49 | #KODIPROP:inputstream.adaptive.license_key=1b778a3241e5fa3bb97d1cb9b57f9e09:3b1f318259fcf0dccd04742cd679fd25 50 | https://XXXXXXX.com/C28 51 | 52 | #EXTINF:-1 tvg-id="黃金翡翠台" tvg-name="黃金翡翠台" tvg-logo="https://assets.livednow.com/logo/黃金翡翠台.png" group-title="戲劇電影", 黃金翡翠台 53 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 54 | #KODIPROP:inputstream.adaptive.license_type=clearkey 55 | #KODIPROP:inputstream.adaptive.license_key=8fe3db1a24969694ae3447f26473eb9f:5cce95833568b9e322f17c61387b306f 56 | https://XXXXXXX.com/TVG 57 | 58 | #EXTINF:-1 tvg-id="千禧經典台" tvg-name="千禧經典台" tvg-logo="https://assets.livednow.com/logo/千禧經典台.png" group-title="戲劇電影", 千禧經典台 59 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 60 | #KODIPROP:inputstream.adaptive.license_type=clearkey 61 | #KODIPROP:inputstream.adaptive.license_key=6c308490b3198b62a988917253653692:660578b8966fe8012ad51b9aae7a5d78 62 | https://XXXXXXX.com/CTVC 63 | 64 | #EXTINF:-1 tvg-id="華語劇台" tvg-name="華語劇台" tvg-logo="https://assets.livednow.com/logo/華語劇台.png" group-title="戲劇電影", 華語劇台 65 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 66 | #KODIPROP:inputstream.adaptive.license_type=clearkey 67 | #KODIPROP:inputstream.adaptive.license_key=baae227b5fc06e2545868d4a1c9ced14:8cd460458b0bdecca5c12791b6409278 68 | https://XXXXXXX.com/CDR3 69 | 70 | #EXTINF:-1 tvg-id="粵語片台" tvg-name="粵語片台" tvg-logo="https://assets.livednow.com/logo/粵語片台.png" group-title="戲劇電影", 粵語片台 71 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 72 | #KODIPROP:inputstream.adaptive.license_type=clearkey 73 | #KODIPROP:inputstream.adaptive.license_key=5b90da7fd2f018bf85a757241075626f:75c0897b4cf5ce154ddae86eddb79cd3 74 | https://XXXXXXX.com/CCLM 75 | 76 | #EXTINF:-1 tvg-id="亞洲劇台" tvg-name="亞洲劇台" tvg-logo="https://assets.livednow.com/logo/亞洲劇台.png" group-title="戲劇電影", 亞洲劇台 77 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 78 | #KODIPROP:inputstream.adaptive.license_type=clearkey 79 | #KODIPROP:inputstream.adaptive.license_key=df5c0e617dffc3e3c44cb733dccb33c0:7d00ec9cd4f54d5baf94c03edc8cfe25 80 | https://XXXXXXX.com/CTVS 81 | 82 | #EXTINF:-1 tvg-id="黃金華劇台" tvg-name="黃金華劇台" tvg-logo="https://assets.livednow.com/logo/黃金華劇台.png" group-title="戲劇電影", 黃金華劇台 83 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 84 | #KODIPROP:inputstream.adaptive.license_type=clearkey 85 | #KODIPROP:inputstream.adaptive.license_key=acd93a5f665efd4feadb26f5ed48fd96:c6ce58ef9cce30638e0c2e9fc45a6dbd 86 | https://XXXXXXX.com/TVO 87 | 88 | #EXTINF:-1 tvg-id="娛樂新聞台" tvg-name="娛樂新聞台" tvg-logo="https://assets.livednow.com/logo/娛樂新聞台.png" group-title="新聞財經", 娛樂新聞台 89 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 90 | #KODIPROP:inputstream.adaptive.license_type=clearkey 91 | #KODIPROP:inputstream.adaptive.license_key=6fa0e47750b5e2fb6adf9b9a0ac431a3:a256220e6c2beaa82f4ca5fba4ec1f95 92 | https://XXXXXXX.com/CTVE 93 | 94 | #EXTINF:-1 tvg-id="戲曲台" tvg-name="戲曲台" tvg-logo="https://assets.livednow.com/logo/戲曲台.png" group-title="戲劇電影", 戲曲台 95 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 96 | #KODIPROP:inputstream.adaptive.license_type=clearkey 97 | #KODIPROP:inputstream.adaptive.license_key=c91c296ef6c46b3f2af1da257553bd17:d6e92d5e594f6f8e494a6e1c9df75298 98 | https://XXXXXXX.com/CCOC 99 | 100 | #EXTINF:-1 tvg-id="SUPER-Kids-Channel" tvg-name="SUPER Kids Channel" tvg-logo="https://assets.livednow.com/logo/SUPER-Kids-Channel.png" group-title="少兒", SUPER Kids Channel 101 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 102 | #KODIPROP:inputstream.adaptive.license_type=clearkey 103 | #KODIPROP:inputstream.adaptive.license_key=42527ca90ad525ba2eac9979c93d3bca:b730006ad1da48b412ceb1f9e36a833d 104 | https://XXXXXXX.com/KID 105 | 106 | #EXTINF:-1 tvg-id="ZooMoo" tvg-name="ZooMoo" tvg-logo="https://assets.livednow.com/logo/ZooMoo.png" group-title="少兒", ZooMoo 107 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 108 | #KODIPROP:inputstream.adaptive.license_type=clearkey 109 | #KODIPROP:inputstream.adaptive.license_key=9c302eb50bef5a9589d97cb90982b05e:2603e646caafe22bc4e8a17b5a2dd55b 110 | https://XXXXXXX.com/ZOO 111 | 112 | #EXTINF:-1 tvg-id="Nickelodeon" tvg-name="Nickelodeon" tvg-logo="https://assets.livednow.com/logo/Nickelodeon.png" group-title="少兒", Nickelodeon 113 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 114 | #KODIPROP:inputstream.adaptive.license_type=clearkey 115 | #KODIPROP:inputstream.adaptive.license_key=0e69430290ed7b00af4db78419dcad8b:e4769b57a66e8e9737d6d86f317600c0 116 | https://XXXXXXX.com/CNIKO 117 | 118 | #EXTINF:-1 tvg-id="Nick-Jr." tvg-name="Nick Jr." tvg-logo="https://assets.livednow.com/logo/Nick-Jr..png" group-title="少兒", Nick Jr. 119 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 120 | #KODIPROP:inputstream.adaptive.license_type=clearkey 121 | #KODIPROP:inputstream.adaptive.license_key=9f1385d2a12a67b572b9d968eb850337:3086bcd49a909606a8686858c05c7e33 122 | https://XXXXXXX.com/CNIJR 123 | 124 | #EXTINF:-1 tvg-id="美亞電影台-HK" tvg-name="美亞電影台" tvg-logo="https://assets.livednow.com/logo/美亞電影台-HK.png" group-title="戲劇電影", 美亞電影台 125 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 126 | #KODIPROP:inputstream.adaptive.license_type=clearkey 127 | #KODIPROP:inputstream.adaptive.license_key=c5d6f2afbd6b276312b0471a653828e1:ecbbb4a3ffa2200ae69058e20e71e91b 128 | https://XXXXXXX.com/CMAM 129 | 130 | #EXTINF:-1 tvg-id="Thrill" tvg-name="Thrill" tvg-logo="https://assets.livednow.com/logo/Thrill.png" group-title="戲劇電影", Thrill 131 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 132 | #KODIPROP:inputstream.adaptive.license_type=clearkey 133 | #KODIPROP:inputstream.adaptive.license_key=b22355363ab2b09a6def54be0c89b9f2:4b196c2bf24b37e82a81031246de6efe 134 | https://XXXXXXX.com/CTHR 135 | 136 | #EXTINF:-1 tvg-id="天映經典頻道" tvg-name="天映經典頻道" tvg-logo="https://assets.livednow.com/logo/天映經典頻道.png" group-title="戲劇電影", 天映經典頻道 137 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 138 | #KODIPROP:inputstream.adaptive.license_type=clearkey 139 | #KODIPROP:inputstream.adaptive.license_key=627b6ca150887912bec47ae4a9b85269:2bf49b2105d20544a6db89c0577b9802 140 | https://XXXXXXX.com/CCCM 141 | 142 | #EXTINF:-1 tvg-id="中國電影頻道" tvg-name="中國電影頻道" tvg-logo="https://assets.livednow.com/logo/中國電影頻道.png" group-title="戲劇電影", 中國電影頻道 143 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 144 | #KODIPROP:inputstream.adaptive.license_type=clearkey 145 | #KODIPROP:inputstream.adaptive.license_key=cabb16d20e71b512f24e9ece0cb09396:2d43505980a22014ee1a476880982308 146 | https://XXXXXXX.com/CMC 147 | 148 | #EXTINF:-1 tvg-id="Rock-Action-HK" tvg-name="ROCK Action" tvg-logo="https://assets.livednow.com/logo/Rock-Action-HK.png" group-title="戲劇電影", ROCK Action 149 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 150 | #KODIPROP:inputstream.adaptive.license_type=clearkey 151 | #KODIPROP:inputstream.adaptive.license_key=358eacad1f06e8e375493dabee96d865:461a02b2eb1232c6c100b95bd0bf40f8 152 | https://XXXXXXX.com/CRTX 153 | 154 | #EXTINF:-1 tvg-id="KIX" tvg-name="KIX" tvg-logo="https://assets.livednow.com/logo/KIX.png" group-title="戲劇電影", KIX 155 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 156 | #KODIPROP:inputstream.adaptive.license_type=clearkey 157 | #KODIPROP:inputstream.adaptive.license_key=3b4a44c5ef3217c55a357ad976d328b2:f3355e5a30722e631031b851642c27f1 158 | https://XXXXXXX.com/CKIX 159 | 160 | #EXTINF:-1 tvg-id="Love-Nature-HK" tvg-name="Love Nature HD" tvg-logo="https://assets.livednow.com/logo/Love-Nature-HK.png" group-title="探索自然", Love Nature HD 161 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 162 | #KODIPROP:inputstream.adaptive.license_type=clearkey 163 | #KODIPROP:inputstream.adaptive.license_key=03fb0f439f942f50d06bf23a511bf4f8:bae7115da07195263e50ae5fc8bbe4f3 164 | https://XXXXXXX.com/LNH 165 | 166 | #EXTINF:-1 tvg-id="Love-Nature-4K-HK" tvg-name="Love Nature 4K" tvg-logo="https://assets.livednow.com/logo/Love-Nature-4K-HK.png" group-title="探索自然", Love Nature 4K 167 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 168 | #KODIPROP:inputstream.adaptive.license_type=clearkey 169 | #KODIPROP:inputstream.adaptive.license_key=037c644cb92137ac5c8d653e952e4c8f:b3b2fcbe576a63cf3bbb9425da3de4cf 170 | https://XXXXXXX.com/LN4 171 | 172 | #EXTINF:-1 tvg-id="Global-Trekker-HK" tvg-name="Global Trekker" tvg-logo="https://assets.livednow.com/logo/Global-Trekker-HK.png" group-title="探索自然", Global Trekker 173 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 174 | #KODIPROP:inputstream.adaptive.license_type=clearkey 175 | #KODIPROP:inputstream.adaptive.license_key=a8f381c2a3114cc6c55f50b6ff0c78f3:86922e5993788488e1eca857c00d4fab 176 | https://XXXXXXX.com/SMS 177 | 178 | #EXTINF:-1 tvg-id="Rock-Entertainment-HK" tvg-name="ROCK 綜藝娛樂" tvg-logo="https://assets.livednow.com/logo/Rock-Entertainment-HK.png" group-title="戲劇電影", ROCK 綜藝娛樂 179 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 180 | #KODIPROP:inputstream.adaptive.license_type=clearkey 181 | #KODIPROP:inputstream.adaptive.license_key=002d034731b6ac938ea7ba85bc3dc759:6694258c023d73492a10acb860bc6161 182 | https://XXXXXXX.com/CRTE 183 | 184 | #EXTINF:-1 tvg-id="AXN" tvg-name="AXN" tvg-logo="https://assets.livednow.com/logo/AXN.png" group-title="其他", AXN 185 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 186 | #KODIPROP:inputstream.adaptive.license_type=clearkey 187 | #KODIPROP:inputstream.adaptive.license_key=20bea0e14af0d3dcb63d4126e8b50172:07382de357a2b0cceabe82e0b37cb8de 188 | https://XXXXXXX.com/CAXN 189 | 190 | #EXTINF:-1 tvg-id="Animax-HK" tvg-name="Animax" tvg-logo="https://assets.livednow.com/logo/Animax-HK.png" group-title="戲劇電影", Animax 191 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 192 | #KODIPROP:inputstream.adaptive.license_type=clearkey 193 | #KODIPROP:inputstream.adaptive.license_key=b1a073dbd8272b0c99940db624ce8d74:9fec26ff4c6774a8bde881e5cb0fe82e 194 | https://XXXXXXX.com/CANI 195 | 196 | #EXTINF:-1 tvg-id="tvN-HK" tvg-name="tvN" tvg-logo="https://assets.livednow.com/logo/tvN-HK.png" group-title="戲劇電影", tvN 197 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 198 | #KODIPROP:inputstream.adaptive.license_type=clearkey 199 | #KODIPROP:inputstream.adaptive.license_key=adcab9e8e5644ff35f04e4035cc6ad3b:d8e879e108a96fde6537c1b679c369b5 200 | https://XXXXXXX.com/CJTV 201 | 202 | #EXTINF:-1 tvg-id="無線衛星亞洲台" tvg-name="無線衛星亞洲台" tvg-logo="https://assets.livednow.com/logo/無線衛星亞洲台.png" group-title="新聞財經", 無線衛星亞洲台 203 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 204 | #KODIPROP:inputstream.adaptive.license_type=clearkey 205 | #KODIPROP:inputstream.adaptive.license_key=ad7b06658e8a36a06def6b3550bde35c:b672f89570a630abb1d2abb5030e6303 206 | https://XXXXXXX.com/CTS1 207 | 208 | #EXTINF:-1 tvg-id="創世電視" tvg-name="創世電視" tvg-logo="https://assets.livednow.com/logo/創世電視.png" group-title="其他", 創世電視 209 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 210 | #KODIPROP:inputstream.adaptive.license_type=clearkey 211 | #KODIPROP:inputstream.adaptive.license_key=adef00c5ba927d01642b1e6f3cedc9fb:b45d912fec43b5bbd418ea7ea1fbcb60 212 | https://XXXXXXX.com/CRE 213 | 214 | #EXTINF:-1 tvg-id="FashionBox" tvg-name="FashionBox" tvg-logo="https://assets.livednow.com/logo/FashionBox.png" group-title="時尚", FashionBox 215 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 216 | #KODIPROP:inputstream.adaptive.license_type=clearkey 217 | #KODIPROP:inputstream.adaptive.license_key=4df52671ef55d2a7ac03db75e9bba2f7:4a3c16e8098c5021f32c7d4f66122477 218 | https://XXXXXXX.com/FBX 219 | 220 | #EXTINF:-1 tvg-id="Mezzo-Live-HK" tvg-name="Mezzo Live HD" tvg-logo="https://assets.livednow.com/logo/Mezzo-Live-HK.png" group-title="音樂綜藝", Mezzo Live HD 221 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 222 | #KODIPROP:inputstream.adaptive.license_type=clearkey 223 | #KODIPROP:inputstream.adaptive.license_key=e46f2747a9cf6822a608786bbc21d400:d8778fcf92c949e949a6700828f5f67e 224 | https://XXXXXXX.com/CMEZ 225 | 226 | #EXTINF:-1 tvg-id="東方衛視國際頻道" tvg-name="東方衛視國際頻道" tvg-logo="https://assets.livednow.com/logo/東方衛視國際頻道.png" group-title="綜合", 東方衛視國際頻道 227 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 228 | #KODIPROP:inputstream.adaptive.license_type=clearkey 229 | #KODIPROP:inputstream.adaptive.license_key=9d6a139158dd1fcd807d1cfc8667e965:f643ba9204ebba7a5ffd3970cfbc794c 230 | https://XXXXXXX.com/DTV 231 | 232 | #EXTINF:-1 tvg-id="鳳凰中文" tvg-name="鳳凰衛視中文台" tvg-logo="https://assets.livednow.com/logo/鳳凰中文.png" group-title="綜合", 鳳凰衛視中文台 233 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 234 | #KODIPROP:inputstream.adaptive.license_type=clearkey 235 | #KODIPROP:inputstream.adaptive.license_key=7bca0771ba9205edb5d467ce2fdf0162:eb19c7e3cea34dc90645e33f983b15ab 236 | https://XXXXXXX.com/PCC 237 | 238 | #EXTINF:-1 tvg-id="鳳凰資訊" tvg-name="鳳凰衛視資訊台" tvg-logo="https://assets.livednow.com/logo/鳳凰資訊.png" group-title="新聞財經", 鳳凰衛視資訊台 239 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 240 | #KODIPROP:inputstream.adaptive.license_type=clearkey 241 | #KODIPROP:inputstream.adaptive.license_key=83f7d313adfc0a5b978b9efa0421ce25:ecdc8065a46287bfb58e9f765e4eec2b 242 | https://XXXXXXX.com/PIN 243 | 244 | #EXTINF:-1 tvg-id="鳳凰香港" tvg-name="鳳凰衛視香港台" tvg-logo="https://assets.livednow.com/logo/鳳凰香港.png" group-title="綜合", 鳳凰衛視香港台 245 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 246 | #KODIPROP:inputstream.adaptive.license_type=clearkey 247 | #KODIPROP:inputstream.adaptive.license_key=cde62e1056eb3615dab7a3efd83f5eb4:b8685fbecf772e64154630829cf330a3 248 | https://XXXXXXX.com/PHK 249 | 250 | #EXTINF:-1 tvg-id="PopC" tvg-name="PopC" tvg-logo="https://assets.livednow.com/logo/PopC.png" group-title="戲劇電影", PopC 251 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 252 | #KODIPROP:inputstream.adaptive.license_type=clearkey 253 | #KODIPROP:inputstream.adaptive.license_key=221591babff135a71961d09399d2c922:c80ca4c7b801a76a07179dfb7debb57d 254 | https://XXXXXXX.com/POPC 255 | 256 | #EXTINF:-1 tvg-id="中央電視台綜合頻道-港澳版" tvg-name="中央電視台綜合頻道 (港澳版)" tvg-logo="https://assets.livednow.com/logo/中央電視台綜合頻道-港澳版.png" group-title="綜合", 中央電視台綜合頻道 (港澳版) 257 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 258 | #KODIPROP:inputstream.adaptive.license_type=clearkey 259 | #KODIPROP:inputstream.adaptive.license_key=e50b18fee7cab76b9f2822e2ade8773a:2e2e8602b6d835ccf10ee56a9a7d91a2 260 | https://XXXXXXX.com/CC1 261 | 262 | #EXTINF:-1 tvg-id="中國環球電視網-記錄頻道" tvg-name="CGTN (中國環球電視網)記錄頻道" tvg-logo="https://assets.livednow.com/logo/中國環球電視網-記錄頻道.png" group-title="綜合", CGTN (中國環球電視網)記錄頻道 263 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 264 | #KODIPROP:inputstream.adaptive.license_type=clearkey 265 | #KODIPROP:inputstream.adaptive.license_key=b570ae67cb063428b158eb2f91c6d77c:c573dabca79a17f81755c0d4b33384bc 266 | https://XXXXXXX.com/CGD 267 | 268 | #EXTINF:-1 tvg-id="中國環球電視網-英語頻道" tvg-name="CGTN (中國環球電視網)英語頻道" tvg-logo="https://assets.livednow.com/logo/中國環球電視網-英語頻道.png" group-title="綜合", CGTN (中國環球電視網)英語頻道 269 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 270 | #KODIPROP:inputstream.adaptive.license_type=clearkey 271 | #KODIPROP:inputstream.adaptive.license_key=4331903278b673916cc6940a8b8d9e7e:02a409115819de9acd9e907b053e3aa8 272 | https://XXXXXXX.com/CGE 273 | 274 | #EXTINF:-1 tvg-id="神州新聞台" tvg-name="神州新聞台" tvg-logo="https://assets.livednow.com/logo/神州新聞台.png" group-title="新聞財經", 神州新聞台 275 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 276 | #KODIPROP:inputstream.adaptive.license_type=clearkey 277 | #KODIPROP:inputstream.adaptive.license_key=7ee6ed08925f4716c8d0943e7bdb3e5f:6f3c1e31b30ccac36d466f41489ceb27 278 | https://XXXXXXX.com/CMN1 279 | 280 | #EXTINF:-1 tvg-id="無線衛星新聞台" tvg-name="無線衛星新聞台" tvg-logo="https://assets.livednow.com/logo/無線衛星新聞台.png" group-title="新聞財經", 無線衛星新聞台 281 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 282 | #KODIPROP:inputstream.adaptive.license_type=clearkey 283 | #KODIPROP:inputstream.adaptive.license_key=73aaeb9e84db423627018017059e0f9d:34148a56250459383f7ef7369073bf39 284 | https://XXXXXXX.com/CTSN 285 | 286 | #EXTINF:-1 tvg-id="亞洲新聞台" tvg-name="亞洲新聞台" tvg-logo="https://assets.livednow.com/logo/亞洲新聞台.png" group-title="新聞財經", 亞洲新聞台 287 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 288 | #KODIPROP:inputstream.adaptive.license_type=clearkey 289 | #KODIPROP:inputstream.adaptive.license_key=ddc7bb2603628134334919a0d7327d1d:a5fcd8bb852371faedd13b684f5adede 290 | https://XXXXXXX.com/CCNA 291 | 292 | #EXTINF:-1 tvg-id="半島電視台英語頻道" tvg-name="半島電視台英語頻道" tvg-logo="https://assets.livednow.com/logo/半島電視台英語頻道.png" group-title="新聞財經", 半島電視台英語頻道 293 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 294 | #KODIPROP:inputstream.adaptive.license_type=clearkey 295 | #KODIPROP:inputstream.adaptive.license_key=80c76105d3ae35dfe25f939d1fb83383:6d76e7ba039773bced47d78e6de4fcf0 296 | https://XXXXXXX.com/CJAZ 297 | 298 | #EXTINF:-1 tvg-id="France-24-HK" tvg-name="France 24" tvg-logo="https://assets.livednow.com/logo/France-24-HK.png" group-title="新聞財經", France 24 299 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 300 | #KODIPROP:inputstream.adaptive.license_type=clearkey 301 | #KODIPROP:inputstream.adaptive.license_key=2d4f6b8755a918d2126a2ee78791cf0b:c392acc1a1a070d2bcdf518d99d88406 302 | https://XXXXXXX.com/CF24 303 | 304 | #EXTINF:-1 tvg-id="DW-HK" tvg-name="DW" tvg-logo="https://assets.livednow.com/logo/DW-HK.png" group-title="新聞財經", DW 305 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 306 | #KODIPROP:inputstream.adaptive.license_type=clearkey 307 | #KODIPROP:inputstream.adaptive.license_key=2bb557c09dfc01a27ab81778913f2a10:d00ca6eb9a83ffde846324109fb445ba 308 | https://XXXXXXX.com/CDW1 309 | 310 | #EXTINF:-1 tvg-id="NHK-HK" tvg-name="NHK World-Japan" tvg-logo="https://assets.livednow.com/logo/NHK-HK.png" group-title="新聞財經", NHK World-Japan 311 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 312 | #KODIPROP:inputstream.adaptive.license_type=clearkey 313 | #KODIPROP:inputstream.adaptive.license_key=9c2ecde1c31185ab61ed4689b87ae332:54895a656e053a73b39882e7a56d642b 314 | https://XXXXXXX.com/CNHK 315 | 316 | #EXTINF:-1 tvg-id="Arirang-HK" tvg-name="Arirang TV" tvg-logo="https://assets.livednow.com/logo/Arirang-HK.png" group-title="綜合", Arirang TV 317 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 318 | #KODIPROP:inputstream.adaptive.license_type=clearkey 319 | #KODIPROP:inputstream.adaptive.license_key=f3ae14e72f585eaf14b18d8d9515d43f:ce0e375c3966263877078aadd815742e 320 | https://XXXXXXX.com/CARI 321 | 322 | #EXTINF:-1 tvg-id="myTV-SUPER-Football-3" tvg-name="myTV SUPER 直播足球3台" tvg-logo="https://assets.livednow.com/logo/myTV-SUPER-Football-3.png" group-title="體育", myTV SUPER 直播足球3台 323 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 324 | #KODIPROP:inputstream.adaptive.license_type=clearkey 325 | #KODIPROP:inputstream.adaptive.license_key=84f456002b780253dab5534e9713323c:65aeb769264f41037cec607813e91bae 326 | https://XXXXXXX.com/EVT3 327 | 328 | #EXTINF:-1 tvg-id="myTV-SUPER-Football-4" tvg-name="myTV SUPER 直播足球4台" tvg-logo="https://assets.livednow.com/logo/myTV-SUPER-Football-4.png" group-title="體育", myTV SUPER 直播足球4台 329 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 330 | #KODIPROP:inputstream.adaptive.license_type=clearkey 331 | #KODIPROP:inputstream.adaptive.license_key=848d6d82c14ffd12adf4a7b49afdc978:3221125831a2f980139c34b35def3b0d 332 | https://XXXXXXX.com/EVT4 333 | 334 | #EXTINF:-1 tvg-id="myTV-SUPER-Football-5" tvg-name="myTV SUPER 直播足球5台" tvg-logo="https://assets.livednow.com/logo/myTV-SUPER-Football-5.png" group-title="體育", myTV SUPER 直播足球5台 335 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 336 | #KODIPROP:inputstream.adaptive.license_type=clearkey 337 | #KODIPROP:inputstream.adaptive.license_key=54700d7a381b80ae395a312e03a9abeb:7c68d289628867bf691b42e90a50d349 338 | https://XXXXXXX.com/EVT5 339 | 340 | #EXTINF:-1 tvg-id="myTV-SUPER-Football-6" tvg-name="myTV SUPER 直播足球6台" tvg-logo="https://assets.livednow.com/logo/myTV-SUPER-Football-6.png" group-title="體育", myTV SUPER 直播足球6台 341 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 342 | #KODIPROP:inputstream.adaptive.license_type=clearkey 343 | #KODIPROP:inputstream.adaptive.license_key=e069fc056280e4caa7d0ffb99024c05a:d3693103f232f28b4781bbc7e499c43a 344 | https://XXXXXXX.com/EVT6 345 | 346 | #EXTINF:-1 tvg-id="MytvSuper" tvg-name="互動窗 1" tvg-logo="https://assets.livednow.com/logo/MytvSuper.png" group-title="體育", 互動窗 1 347 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 348 | #KODIPROP:inputstream.adaptive.license_type=clearkey 349 | #KODIPROP:inputstream.adaptive.license_key=f07372db27b162d69adf9aa612ae3364:da1631a2b2a836c5b7a3d044a18a4f16 350 | https://XXXXXXX.com/C3 351 | 352 | #EXTINF:-1 tvg-id="MytvSuper" tvg-name="互動窗 2" tvg-logo="https://assets.livednow.com/logo/MytvSuper.png" group-title="體育", 互動窗 2 353 | #KODIPROP:inputstream.adaptive.manifest_type=mpd 354 | #KODIPROP:inputstream.adaptive.license_type=clearkey 355 | #KODIPROP:inputstream.adaptive.license_key=1ba88eacde780c7567255b8b33026ae5:f7df792aab8992b79d72a8d01987ecb5 356 | https://XXXXXXX.com/C2 357 | 358 | -------------------------------------------------------------------------------- /tvb.cfg: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "TVB", 3 | "Id": "tvb", 4 | "RunningMode": "internalremuxer", 5 | "OutputMode": "directhls", 6 | "Script": "", 7 | "LogoUrl": "", 8 | "Proxy": "", 9 | "Bind": "", 10 | "Doh": "", 11 | "NetworkScope": "script,manifest,media", 12 | "UserAgent": "okhttp", 13 | "XForwardedFor": "", 14 | "EventsAutorefresh": false, 15 | "EventsAutoremove": false, 16 | "ChannelsAutoremove": false, 17 | "MaxConcurrentStreams": 0, 18 | "LastEventIndex": 0, 19 | "AlwaysResetSession": false, 20 | "RestartDelay": 30, 21 | "PipeOutputCmdFormated": "tsplay -pace-pcr2-pmt -stdin %s", 22 | "NbAnnouncedFragments": 0, 23 | "HlsFragmentsDuration": 0, 24 | "PlaylistDuration": 15, 25 | "AutorestartPeriod": 0, 26 | "NoRestartOnError": false, 27 | "RestartFinished": false, 28 | "NoRestartOnTrackChange": false, 29 | "PlaybackDelay": 0, 30 | "RandomAutostartPeriod": 0, 31 | "SequencialAutostartPeriod": 0, 32 | "EpgTimezone": "", 33 | "ReuseEventIndex": false, 34 | "EventsRefreshPeriod": 3600, 35 | "HttpGetRetries": 2, 36 | "NoWaitFullPlaylist": false, 37 | "ContinuousPlayback": false, 38 | "IgnoreStaticDash": false, 39 | "UseDashDelay": false, 40 | "StallDetectTimeout": 60, 41 | "Headers": null, 42 | "VmxUniqueId": "", 43 | "Channels": [ 44 | { 45 | "Name": "Astro Xing He", 46 | "Id": "astroxinghe", 47 | "LogoUrl": "", 48 | "IsEvent": false, 49 | "RecordEvent": false, 50 | "Start": 0, 51 | "End": 0, 52 | "Mode": "live", 53 | "RunningMode": "internalremuxer", 54 | "OutputMode": "directhls", 55 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 56 | "Bind": "", 57 | "Doh": "", 58 | "NetworkScope": "script,manifest,media", 59 | "OnDemand": true, 60 | "Autostart": false, 61 | "PipeOutputParams": "", 62 | "ProtoOutputParams": "", 63 | "SessionManifest": false, 64 | "SpeedUp": false, 65 | "UseCdm": false, 66 | "Cdm": "", 67 | "CdmType": "widevine", 68 | "CdmMode": "internal", 69 | "PRLAVersion": "", 70 | "PRClientVersion": "", 71 | "PRCustomData": "", 72 | "NetworkOverride": true, 73 | "ModeOverride": false, 74 | "IgnoreUpdate": false, 75 | "FixIvSize": false, 76 | "TimeRange": false, 77 | "ManifestScript": "", 78 | "Manifest": "http://aktv.top/AKTV/live/aktv3/astroxinghe/AKTV.m3u8", 79 | "ManifestType": "hls", 80 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003ehls (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e18s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 81 | "Video": "-1920x1080-50.00-1000000-", 82 | "Audio": "all", 83 | "Subtitles": "", 84 | "VideoList": [ 85 | { 86 | "Id": "-1920x1080-50.00-1000000-", 87 | "Desc": "1080p50 (avc1.64002a,1000Kb/s)", 88 | "Kid": "" 89 | } 90 | ], 91 | "AudioList": [ 92 | { 93 | "Id": "internalaudio", 94 | "Desc": "Internal Audio", 95 | "Kid": "" 96 | } 97 | ], 98 | "SubtitlesList": [], 99 | "Keys": null, 100 | "Drm": { 101 | "Vendor": null 102 | }, 103 | "RangeStartTime": "", 104 | "RangeEndTime": "", 105 | "Heartbeat": { 106 | "Url": "", 107 | "Params": "", 108 | "PeriodMs": 0, 109 | "RandomMs": 0 110 | }, 111 | "Headers": { 112 | "Manifest": null, 113 | "Media": null 114 | } 115 | }, 116 | { 117 | "Name": "feicui翡翠台", 118 | "Id": "feicui", 119 | "LogoUrl": "", 120 | "IsEvent": false, 121 | "RecordEvent": false, 122 | "Start": 0, 123 | "End": 0, 124 | "Mode": "live", 125 | "RunningMode": "internalremuxer", 126 | "OutputMode": "directhls", 127 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 128 | "Bind": "", 129 | "Doh": "", 130 | "NetworkScope": "script,manifest,media", 131 | "OnDemand": true, 132 | "Autostart": false, 133 | "PipeOutputParams": "", 134 | "ProtoOutputParams": "", 135 | "SessionManifest": false, 136 | "SpeedUp": false, 137 | "UseCdm": false, 138 | "Cdm": "", 139 | "CdmType": "widevine", 140 | "CdmMode": "internal", 141 | "PRLAVersion": "", 142 | "PRClientVersion": "", 143 | "PRCustomData": "", 144 | "NetworkOverride": true, 145 | "ModeOverride": false, 146 | "IgnoreUpdate": false, 147 | "FixIvSize": false, 148 | "TimeRange": false, 149 | "ManifestScript": "", 150 | "Manifest": "https://pixman.mytvsuper.com.mp/mytvsuper/J", 151 | "ManifestType": "dash", 152 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003edash (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e2h59m44s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e\nDRM: \u003ci\u003e\u003cb\u003ewidevine playready \u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 153 | "Video": "v5000000_33", 154 | "Audio": "all", 155 | "Subtitles": "all", 156 | "VideoList": [ 157 | { 158 | "Id": "v1500000_33", 159 | "Desc": "576p50 (hev1.1.6.L123.b0, 1464Kb/s)", 160 | "Kid": "0958b9c657622c465a6205eb2252b8ed" 161 | }, 162 | { 163 | "Id": "v5000000_33", 164 | "Desc": "1080p50 (hev1.1.6.L123.b0, 4882Kb/s)", 165 | "Kid": "0958b9c657622c465a6205eb2252b8ed" 166 | } 167 | ], 168 | "AudioList": [ 169 | { 170 | "Id": "au1_341", 171 | "Desc": "au1 (mp4a.40.2, 32Khz, 125Kb/s)", 172 | "Kid": "0958b9c657622c465a6205eb2252b8ed" 173 | }, 174 | { 175 | "Id": "au2_351", 176 | "Desc": "au2 (mp4a.40.2, 32Khz, 125Kb/s)", 177 | "Kid": "0958b9c657622c465a6205eb2252b8ed" 178 | } 179 | ], 180 | "SubtitlesList": [ 181 | { 182 | "Id": "s10000_chi", 183 | "Desc": "chi", 184 | "Kid": "" 185 | }, 186 | { 187 | "Id": "s10000_chs", 188 | "Desc": "chs", 189 | "Kid": "" 190 | }, 191 | { 192 | "Id": "s10000_eng", 193 | "Desc": "eng", 194 | "Kid": "" 195 | } 196 | ], 197 | "Keys": [ 198 | "0958b9c657622c465a6205eb2252b8ed:2d2fd7b1661b1e28de38268872b48480" 199 | ], 200 | "Drm": { 201 | "Vendor": null 202 | }, 203 | "RangeStartTime": "", 204 | "RangeEndTime": "", 205 | "Heartbeat": { 206 | "Url": "", 207 | "Params": "", 208 | "PeriodMs": 0, 209 | "RandomMs": 0 210 | }, 211 | "Headers": { 212 | "Manifest": null, 213 | "Media": null 214 | } 215 | }, 216 | { 217 | "Name": "i-Fun 動漫台", 218 | "Id": "ifun", 219 | "LogoUrl": "", 220 | "IsEvent": false, 221 | "RecordEvent": false, 222 | "Start": 0, 223 | "End": 0, 224 | "Mode": "live", 225 | "RunningMode": "internalremuxer", 226 | "OutputMode": "directhls", 227 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 228 | "Bind": "", 229 | "Doh": "", 230 | "NetworkScope": "script,manifest,media", 231 | "OnDemand": true, 232 | "Autostart": false, 233 | "PipeOutputParams": "", 234 | "ProtoOutputParams": "", 235 | "SessionManifest": false, 236 | "SpeedUp": false, 237 | "UseCdm": false, 238 | "Cdm": "", 239 | "CdmType": "widevine", 240 | "CdmMode": "internal", 241 | "PRLAVersion": "", 242 | "PRClientVersion": "", 243 | "PRCustomData": "", 244 | "NetworkOverride": true, 245 | "ModeOverride": false, 246 | "IgnoreUpdate": false, 247 | "FixIvSize": false, 248 | "TimeRange": false, 249 | "ManifestScript": "", 250 | "Manifest": "http://aktv.top/AKTV/live/aktv2/ifun/AKTV.m3u8", 251 | "ManifestType": "hls", 252 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003ehls (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e24s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 253 | "Video": "-1920x1080-50.00-1000000-", 254 | "Audio": "all", 255 | "Subtitles": "", 256 | "VideoList": [ 257 | { 258 | "Id": "-1920x1080-50.00-1000000-", 259 | "Desc": "1080p50 (avc1.64002a,1000Kb/s)", 260 | "Kid": "" 261 | } 262 | ], 263 | "AudioList": [ 264 | { 265 | "Id": "internalaudio", 266 | "Desc": "Internal Audio", 267 | "Kid": "" 268 | } 269 | ], 270 | "SubtitlesList": [], 271 | "Keys": null, 272 | "Drm": { 273 | "Vendor": null 274 | }, 275 | "RangeStartTime": "", 276 | "RangeEndTime": "", 277 | "Heartbeat": { 278 | "Url": "", 279 | "Params": "", 280 | "PeriodMs": 0, 281 | "RandomMs": 0 282 | }, 283 | "Headers": { 284 | "Manifest": null, 285 | "Media": null 286 | } 287 | }, 288 | { 289 | "Name": "Now爆谷台\t", 290 | "Id": "now", 291 | "LogoUrl": "", 292 | "IsEvent": false, 293 | "RecordEvent": false, 294 | "Start": 0, 295 | "End": 0, 296 | "Mode": "live", 297 | "RunningMode": "internalremuxer", 298 | "OutputMode": "directhls", 299 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 300 | "Bind": "", 301 | "Doh": "", 302 | "NetworkScope": "script,manifest,media", 303 | "OnDemand": true, 304 | "Autostart": false, 305 | "PipeOutputParams": "", 306 | "ProtoOutputParams": "", 307 | "SessionManifest": false, 308 | "SpeedUp": false, 309 | "UseCdm": false, 310 | "Cdm": "", 311 | "CdmType": "widevine", 312 | "CdmMode": "internal", 313 | "PRLAVersion": "", 314 | "PRClientVersion": "", 315 | "PRCustomData": "", 316 | "NetworkOverride": true, 317 | "ModeOverride": false, 318 | "IgnoreUpdate": false, 319 | "FixIvSize": false, 320 | "TimeRange": false, 321 | "ManifestScript": "", 322 | "Manifest": "http://aktv.top/AKTV/live/aktv2/now-1/AKTV.m3u8", 323 | "ManifestType": "hls", 324 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003ehls (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e18s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 325 | "Video": "-1920x1080-50.00-1000000-", 326 | "Audio": "all", 327 | "Subtitles": "", 328 | "VideoList": [ 329 | { 330 | "Id": "-1920x1080-50.00-1000000-", 331 | "Desc": "1080p50 (avc1.64002a,1000Kb/s)", 332 | "Kid": "" 333 | } 334 | ], 335 | "AudioList": [ 336 | { 337 | "Id": "internalaudio", 338 | "Desc": "Internal Audio", 339 | "Kid": "" 340 | } 341 | ], 342 | "SubtitlesList": [], 343 | "Keys": null, 344 | "Drm": { 345 | "Vendor": null 346 | }, 347 | "RangeStartTime": "", 348 | "RangeEndTime": "", 349 | "Heartbeat": { 350 | "Url": "", 351 | "Params": "", 352 | "PeriodMs": 0, 353 | "RandomMs": 0 354 | }, 355 | "Headers": { 356 | "Manifest": null, 357 | "Media": null 358 | } 359 | }, 360 | { 361 | "Name": "PopC", 362 | "Id": "popc", 363 | "LogoUrl": "", 364 | "IsEvent": false, 365 | "RecordEvent": false, 366 | "Start": 0, 367 | "End": 0, 368 | "Mode": "live", 369 | "RunningMode": "internalremuxer", 370 | "OutputMode": "directhls", 371 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 372 | "Bind": "", 373 | "Doh": "", 374 | "NetworkScope": "script,manifest,media", 375 | "OnDemand": false, 376 | "Autostart": false, 377 | "PipeOutputParams": "", 378 | "ProtoOutputParams": "", 379 | "SessionManifest": false, 380 | "SpeedUp": false, 381 | "UseCdm": false, 382 | "Cdm": "", 383 | "CdmType": "widevine", 384 | "CdmMode": "internal", 385 | "PRLAVersion": "", 386 | "PRClientVersion": "", 387 | "PRCustomData": "", 388 | "NetworkOverride": true, 389 | "ModeOverride": false, 390 | "IgnoreUpdate": false, 391 | "FixIvSize": false, 392 | "TimeRange": false, 393 | "ManifestScript": "", 394 | "Manifest": "http://aktv.top/AKTV/live/aktv/popc/AKTV.m3u8", 395 | "ManifestType": "hls", 396 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003ehls (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e16s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 397 | "Video": "-1920x1080-50.00-1000000-", 398 | "Audio": "all", 399 | "Subtitles": "", 400 | "VideoList": [ 401 | { 402 | "Id": "-1920x1080-50.00-1000000-", 403 | "Desc": "1080p50 (avc1.64002a,1000Kb/s)", 404 | "Kid": "" 405 | } 406 | ], 407 | "AudioList": [ 408 | { 409 | "Id": "internalaudio", 410 | "Desc": "Internal Audio", 411 | "Kid": "" 412 | } 413 | ], 414 | "SubtitlesList": [], 415 | "Keys": null, 416 | "Drm": { 417 | "Vendor": null 418 | }, 419 | "RangeStartTime": "", 420 | "RangeEndTime": "", 421 | "Heartbeat": { 422 | "Url": "", 423 | "Params": "", 424 | "PeriodMs": 0, 425 | "RandomMs": 0 426 | }, 427 | "Headers": { 428 | "Manifest": null, 429 | "Media": null 430 | } 431 | }, 432 | { 433 | "Name": "無線新聞台", 434 | "Id": "null", 435 | "LogoUrl": "", 436 | "IsEvent": false, 437 | "RecordEvent": false, 438 | "Start": 0, 439 | "End": 0, 440 | "Mode": "live", 441 | "RunningMode": "internalremuxer", 442 | "OutputMode": "directhls", 443 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 444 | "Bind": "", 445 | "Doh": "", 446 | "NetworkScope": "script,manifest,media", 447 | "OnDemand": true, 448 | "Autostart": false, 449 | "PipeOutputParams": "", 450 | "ProtoOutputParams": "", 451 | "SessionManifest": false, 452 | "SpeedUp": false, 453 | "UseCdm": false, 454 | "Cdm": "", 455 | "CdmType": "widevine", 456 | "CdmMode": "internal", 457 | "PRLAVersion": "", 458 | "PRClientVersion": "", 459 | "PRCustomData": "", 460 | "NetworkOverride": true, 461 | "ModeOverride": false, 462 | "IgnoreUpdate": false, 463 | "FixIvSize": false, 464 | "TimeRange": false, 465 | "ManifestScript": "", 466 | "Manifest": "https://pixman.mytvsuper.com.mp/mytvsuper/C", 467 | "ManifestType": "dash", 468 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003edash (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e2h59m44s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e\nDRM: \u003ci\u003e\u003cb\u003ewidevine playready \u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 469 | "Video": "v5000000", 470 | "Audio": "all", 471 | "Subtitles": "", 472 | "VideoList": [ 473 | { 474 | "Id": "v1500000", 475 | "Desc": "576p50 (hev1.1.6.L123.b0, 1464Kb/s)", 476 | "Kid": "90a0bd01d9f6cbb39839cd9b68fc26bc" 477 | }, 478 | { 479 | "Id": "v5000000", 480 | "Desc": "1080p50 (hev1.1.6.L123.b0, 4882Kb/s)", 481 | "Kid": "90a0bd01d9f6cbb39839cd9b68fc26bc" 482 | } 483 | ], 484 | "AudioList": [ 485 | { 486 | "Id": "a128000", 487 | "Desc": "chi (mp4a.40.2, 32Khz, 125Kb/s)", 488 | "Kid": "90a0bd01d9f6cbb39839cd9b68fc26bc" 489 | }, 490 | { 491 | "Id": "a128002", 492 | "Desc": "eng (mp4a.40.2, 32Khz, 125Kb/s)", 493 | "Kid": "90a0bd01d9f6cbb39839cd9b68fc26bc" 494 | }, 495 | { 496 | "Id": "a128001", 497 | "Desc": "qph (mp4a.40.2, 32Khz, 125Kb/s)", 498 | "Kid": "90a0bd01d9f6cbb39839cd9b68fc26bc" 499 | } 500 | ], 501 | "SubtitlesList": [], 502 | "Keys": [ 503 | "90a0bd01d9f6cbb39839cd9b68fc26bc:51546d1f2af0547f0e961995b60a32a1" 504 | ], 505 | "Drm": { 506 | "Vendor": null 507 | }, 508 | "RangeStartTime": "", 509 | "RangeEndTime": "", 510 | "Heartbeat": { 511 | "Url": "", 512 | "Params": "", 513 | "PeriodMs": 0, 514 | "RandomMs": 0 515 | }, 516 | "Headers": { 517 | "Manifest": null, 518 | "Media": null 519 | } 520 | }, 521 | { 522 | "Name": "鳳凰中文", 523 | "Id": "null-1", 524 | "LogoUrl": "", 525 | "IsEvent": false, 526 | "RecordEvent": false, 527 | "Start": 0, 528 | "End": 0, 529 | "Mode": "live", 530 | "RunningMode": "internalremuxer", 531 | "OutputMode": "directhls", 532 | "Proxy": "socks5://judy:judy520@205.185.123.236:55201", 533 | "Bind": "", 534 | "Doh": "", 535 | "NetworkScope": "script,manifest,media", 536 | "OnDemand": true, 537 | "Autostart": false, 538 | "PipeOutputParams": "", 539 | "ProtoOutputParams": "", 540 | "SessionManifest": false, 541 | "SpeedUp": false, 542 | "UseCdm": false, 543 | "Cdm": "", 544 | "CdmType": "widevine", 545 | "CdmMode": "internal", 546 | "PRLAVersion": "", 547 | "PRClientVersion": "", 548 | "PRCustomData": "", 549 | "NetworkOverride": true, 550 | "ModeOverride": false, 551 | "IgnoreUpdate": false, 552 | "FixIvSize": false, 553 | "TimeRange": false, 554 | "ManifestScript": "", 555 | "Manifest": "http://aktv.top/AKTV/live/aktv/null-3/AKTV.m3u8", 556 | "ManifestType": "hls", 557 | "ManifestInfo": "Format: \u003ci\u003e\u003cb\u003ehls (live)\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eBest video: \u003ci\u003e\u003cb\u003e1080p50\u003c/b\u003e\u003c/i\u003e\u003cbr\u003eDuration: \u003ci\u003e\u003cb\u003e18s\u003c/b\u003e\u003c/i\u003e\u003cbr\u003e", 558 | "Video": "-1920x1080-50.00-1000000-", 559 | "Audio": "all", 560 | "Subtitles": "", 561 | "VideoList": [ 562 | { 563 | "Id": "-1920x1080-50.00-1000000-", 564 | "Desc": "1080p50 (avc1.64002a,1000Kb/s)", 565 | "Kid": "" 566 | } 567 | ], 568 | "AudioList": [ 569 | { 570 | "Id": "internalaudio", 571 | "Desc": "Internal Audio", 572 | "Kid": "" 573 | } 574 | ], 575 | "SubtitlesList": [], 576 | "Keys": null, 577 | "Drm": { 578 | "Vendor": null 579 | }, 580 | "RangeStartTime": "", 581 | "RangeEndTime": "", 582 | "Heartbeat": { 583 | "Url": "", 584 | "Params": "", 585 | "PeriodMs": 0, 586 | "RandomMs": 0 587 | }, 588 | "Headers": { 589 | "Manifest": null, 590 | "Media": null 591 | } 592 | } 593 | ] 594 | } -------------------------------------------------------------------------------- /bbrtcp.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 3 | export PATH 4 | 5 | #================================================= 6 | # System Required: CentOS 6/7,Debian 8/9,Ubuntu 16+ 7 | # Description: BBR+BBR魔改版+BBRplus+Lotserver 8 | # Version: 1.4.0 9 | # Author: 千影,cx9208 10 | # Blog: https://www.939.me/ 11 | # 推荐使用5.5以上内核直接开启的bbr速度最佳 12 | #================================================= 13 | 14 | sh_ver="1.4.0" 15 | github="raw.githubusercontent.com/chiakge/Linux-NetSpeed/master" 16 | 17 | Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m" 18 | Info="${Green_font_prefix}[信息]${Font_color_suffix}" 19 | Error="${Red_font_prefix}[错误]${Font_color_suffix}" 20 | Tip="${Green_font_prefix}[注意]${Font_color_suffix}" 21 | 22 | #安装BBR内核 23 | installbbr(){ 24 | kernel_version="4.11.8" 25 | if [[ "${release}" == "centos" ]]; then 26 | rpm --import http://${github}/bbr/${release}/RPM-GPG-KEY-elrepo.org 27 | yum install -y http://${github}/bbr/${release}/${version}/${bit}/kernel-ml-${kernel_version}.rpm 28 | yum remove -y kernel-headers 29 | yum install -y http://${github}/bbr/${release}/${version}/${bit}/kernel-ml-headers-${kernel_version}.rpm 30 | yum install -y http://${github}/bbr/${release}/${version}/${bit}/kernel-ml-devel-${kernel_version}.rpm 31 | elif [[ "${release}" == "debian" || "${release}" == "ubuntu" ]]; then 32 | mkdir bbr && cd bbr 33 | wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1d-0+deb10u2_amd64.deb 34 | wget -N --no-check-certificate http://${github}/bbr/debian-ubuntu/linux-headers-${kernel_version}-all.deb 35 | wget -N --no-check-certificate http://${github}/bbr/debian-ubuntu/${bit}/linux-headers-${kernel_version}.deb 36 | wget -N --no-check-certificate http://${github}/bbr/debian-ubuntu/${bit}/linux-image-${kernel_version}.deb 37 | 38 | dpkg -i libssl1.1_1.1.1d-0+deb10u2_amd64.deb 39 | dpkg -i linux-headers-${kernel_version}-all.deb 40 | dpkg -i linux-headers-${kernel_version}.deb 41 | dpkg -i linux-image-${kernel_version}.deb 42 | cd .. && rm -rf bbr 43 | fi 44 | detele_kernel 45 | BBR_grub 46 | echo -e "${Tip} 重启VPS后,请重新运行脚本开启${Red_font_prefix}BBR/BBR魔改版${Font_color_suffix}" 47 | stty erase '^H' && read -p "需要重启VPS后,才能开启BBR/BBR魔改版,是否现在重启 ? [Y/n] :" yn 48 | [ -z "${yn}" ] && yn="y" 49 | if [[ $yn == [Yy] ]]; then 50 | echo -e "${Info} VPS 重启中..." 51 | reboot 52 | fi 53 | } 54 | 55 | #安装BBRplus内核 56 | installbbrplus(){ 57 | kernel_version="4.14.129-bbrplus" 58 | if [[ "${release}" == "centos" ]]; then 59 | wget -N --no-check-certificate https://${github}/bbrplus/${release}/${version}/kernel-${kernel_version}.rpm 60 | yum install -y kernel-${kernel_version}.rpm 61 | rm -f kernel-${kernel_version}.rpm 62 | kernel_version="4.14.129_bbrplus" #fix a bug 63 | elif [[ "${release}" == "debian" || "${release}" == "ubuntu" ]]; then 64 | mkdir bbrplus && cd bbrplus 65 | wget -N --no-check-certificate http://${github}/bbrplus/debian-ubuntu/${bit}/linux-headers-${kernel_version}.deb 66 | wget -N --no-check-certificate http://${github}/bbrplus/debian-ubuntu/${bit}/linux-image-${kernel_version}.deb 67 | dpkg -i linux-headers-${kernel_version}.deb 68 | dpkg -i linux-image-${kernel_version}.deb 69 | cd .. && rm -rf bbrplus 70 | fi 71 | detele_kernel 72 | BBR_grub 73 | echo -e "${Tip} 重启VPS后,请重新运行脚本开启${Red_font_prefix}BBRplus${Font_color_suffix}" 74 | stty erase '^H' && read -p "需要重启VPS后,才能开启BBRplus,是否现在重启 ? [Y/n] :" yn 75 | [ -z "${yn}" ] && yn="y" 76 | if [[ $yn == [Yy] ]]; then 77 | echo -e "${Info} VPS 重启中..." 78 | reboot 79 | fi 80 | } 81 | 82 | #安装Lotserver内核 83 | installlot(){ 84 | if [[ "${release}" == "centos" ]]; then 85 | rpm --import http://${github}/lotserver/${release}/RPM-GPG-KEY-elrepo.org 86 | yum remove -y kernel-firmware 87 | yum install -y http://${github}/lotserver/${release}/${version}/${bit}/kernel-firmware-${kernel_version}.rpm 88 | yum install -y http://${github}/lotserver/${release}/${version}/${bit}/kernel-${kernel_version}.rpm 89 | yum remove -y kernel-headers 90 | yum install -y http://${github}/lotserver/${release}/${version}/${bit}/kernel-headers-${kernel_version}.rpm 91 | yum install -y http://${github}/lotserver/${release}/${version}/${bit}/kernel-devel-${kernel_version}.rpm 92 | elif [[ "${release}" == "ubuntu" ]]; then 93 | bash <(wget --no-check-certificate -qO- "http://${github}/Debian_Kernel.sh") 94 | elif [[ "${release}" == "debian" ]]; then 95 | bash <(wget --no-check-certificate -qO- "http://${github}/Debian_Kernel.sh") 96 | fi 97 | detele_kernel 98 | BBR_grub 99 | echo -e "${Tip} 重启VPS后,请重新运行脚本开启${Red_font_prefix}Lotserver${Font_color_suffix}" 100 | stty erase '^H' && read -p "需要重启VPS后,才能开启Lotserver,是否现在重启 ? [Y/n] :" yn 101 | [ -z "${yn}" ] && yn="y" 102 | if [[ $yn == [Yy] ]]; then 103 | echo -e "${Info} VPS 重启中..." 104 | reboot 105 | fi 106 | } 107 | 108 | #启用BBR 109 | startbbr(){ 110 | remove_all 111 | if [[ `echo ${kernel_version} | awk -F'.' '{print $1}'` -ge "5" ]]; then 112 | echo "net.core.default_qdisc=cake" >> /etc/sysctl.conf 113 | echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 114 | else 115 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf 116 | echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 117 | fi 118 | sysctl -p 119 | echo -e "${Info}BBR启动成功!" 120 | } 121 | 122 | #启用BBRplus 123 | startbbrplus(){ 124 | remove_all 125 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf 126 | echo "net.ipv4.tcp_congestion_control=bbrplus" >> /etc/sysctl.conf 127 | sysctl -p 128 | echo -e "${Info}BBRplus启动成功!" 129 | } 130 | 131 | #编译并启用BBR魔改 132 | startbbrmod(){ 133 | remove_all 134 | if [[ "${release}" == "centos" ]]; then 135 | yum install -y make gcc 136 | mkdir bbrmod && cd bbrmod 137 | wget -N --no-check-certificate http://${github}/bbr/tcp_tsunami.c 138 | echo "obj-m:=tcp_tsunami.o" > Makefile 139 | make -C /lib/modules/$(uname -r)/build M=`pwd` modules CC=/usr/bin/gcc 140 | chmod +x ./tcp_tsunami.ko 141 | cp -rf ./tcp_tsunami.ko /lib/modules/$(uname -r)/kernel/net/ipv4 142 | insmod tcp_tsunami.ko 143 | depmod -a 144 | else 145 | apt-get update 146 | if [[ "${release}" == "ubuntu" && "${version}" = "14" ]]; then 147 | apt-get -y install build-essential 148 | apt-get -y install software-properties-common 149 | add-apt-repository ppa:ubuntu-toolchain-r/test -y 150 | apt-get update 151 | fi 152 | apt-get -y install make gcc 153 | mkdir bbrmod && cd bbrmod 154 | wget -N --no-check-certificate http://${github}/bbr/tcp_tsunami.c 155 | echo "obj-m:=tcp_tsunami.o" > Makefile 156 | ln -s /usr/bin/gcc /usr/bin/gcc-4.9 157 | make -C /lib/modules/$(uname -r)/build M=`pwd` modules CC=/usr/bin/gcc-4.9 158 | install tcp_tsunami.ko /lib/modules/$(uname -r)/kernel 159 | cp -rf ./tcp_tsunami.ko /lib/modules/$(uname -r)/kernel/net/ipv4 160 | depmod -a 161 | fi 162 | 163 | 164 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf 165 | echo "net.ipv4.tcp_congestion_control=tsunami" >> /etc/sysctl.conf 166 | sysctl -p 167 | cd .. && rm -rf bbrmod 168 | echo -e "${Info}魔改版BBR启动成功!" 169 | } 170 | 171 | #编译并启用BBR魔改 172 | startbbrmod_nanqinlang(){ 173 | remove_all 174 | if [[ "${release}" == "centos" ]]; then 175 | yum install -y make gcc 176 | mkdir bbrmod && cd bbrmod 177 | wget -N --no-check-certificate https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/bbr/centos/tcp_nanqinlang.c 178 | echo "obj-m := tcp_nanqinlang.o" > Makefile 179 | make -C /lib/modules/$(uname -r)/build M=`pwd` modules CC=/usr/bin/gcc 180 | chmod +x ./tcp_nanqinlang.ko 181 | cp -rf ./tcp_nanqinlang.ko /lib/modules/$(uname -r)/kernel/net/ipv4 182 | insmod tcp_nanqinlang.ko 183 | depmod -a 184 | else 185 | apt-get update 186 | if [[ "${release}" == "ubuntu" && "${version}" = "14" ]]; then 187 | apt-get -y install build-essential 188 | apt-get -y install software-properties-common 189 | add-apt-repository ppa:ubuntu-toolchain-r/test -y 190 | apt-get update 191 | fi 192 | apt-get -y install make gcc-4.9 193 | mkdir bbrmod && cd bbrmod 194 | wget -N --no-check-certificate https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/bbr/tcp_nanqinlang.c 195 | echo "obj-m := tcp_nanqinlang.o" > Makefile 196 | make -C /lib/modules/$(uname -r)/build M=`pwd` modules CC=/usr/bin/gcc-4.9 197 | install tcp_nanqinlang.ko /lib/modules/$(uname -r)/kernel 198 | cp -rf ./tcp_nanqinlang.ko /lib/modules/$(uname -r)/kernel/net/ipv4 199 | depmod -a 200 | fi 201 | 202 | 203 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf 204 | echo "net.ipv4.tcp_congestion_control=nanqinlang" >> /etc/sysctl.conf 205 | sysctl -p 206 | echo -e "${Info}魔改版BBR启动成功!" 207 | } 208 | 209 | #启用Lotserver 210 | startlotserver(){ 211 | remove_all 212 | if [[ "${release}" == "centos" ]]; then 213 | yum install ethtool 214 | else 215 | apt-get update 216 | apt-get install ethtool 217 | fi 218 | bash <(wget --no-check-certificate -qO- https://raw.githubusercontent.com/chiakge/lotServer/master/Install.sh) install 219 | sed -i '/advinacc/d' /appex/etc/config 220 | sed -i '/maxmode/d' /appex/etc/config 221 | echo -e "advinacc=\"1\" 222 | maxmode=\"1\"">>/appex/etc/config 223 | /appex/bin/lotServer.sh restart 224 | start_menu 225 | } 226 | 227 | #卸载全部加速 228 | remove_all(){ 229 | rm -rf bbrmod 230 | sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf 231 | sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf 232 | sed -i '/fs.file-max/d' /etc/sysctl.conf 233 | sed -i '/net.core.rmem_default/d' /etc/sysctl.conf 234 | sed -i '/net.core.wmem_default/d' /etc/sysctl.conf 235 | sed -i '/net.core.somaxconn/d' /etc/sysctl.conf 236 | sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf 237 | sed -i '/net.ipv4.tcp_tw_reuse/d' /etc/sysctl.conf 238 | sed -i '/net.ipv4.tcp_tw_recycle/d' /etc/sysctl.conf 239 | sed -i '/net.ipv4.tcp_fin_timeout/d' /etc/sysctl.conf 240 | sed -i '/net.ipv4.tcp_keepalive_time/d' /etc/sysctl.conf 241 | sed -i '/net.ipv4.ip_local_port_range/d' /etc/sysctl.conf 242 | sed -i '/net.ipv4.tcp_max_tw_buckets/d' /etc/sysctl.conf 243 | sed -i '/net.ipv4.tcp_rmem/d' /etc/sysctl.conf 244 | sed -i '/net.ipv4.tcp_wmem/d' /etc/sysctl.conf 245 | sed -i '/net.ipv4.tcp_mtu_probing/d' /etc/sysctl.conf 246 | sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf 247 | sed -i '/fs.inotify.max_user_instances/d' /etc/sysctl.conf 248 | sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf 249 | sed -i '/net.ipv4.tcp_fin_timeout/d' /etc/sysctl.conf 250 | sed -i '/net.ipv4.route.gc_timeout/d' /etc/sysctl.conf 251 | sed -i '/net.ipv4.tcp_synack_retries/d' /etc/sysctl.conf 252 | sed -i '/net.ipv4.tcp_syn_retries/d' /etc/sysctl.conf 253 | sed -i '/net.ipv4.tcp_timestamps/d' /etc/sysctl.conf 254 | sed -i '/net.ipv4.tcp_max_orphans/d' /etc/sysctl.conf 255 | sed -i '/net.core.rmem_max/d' /etc/sysctl.conf 256 | sed -i '/net.core.wmem_max/d' /etc/sysctl.conf 257 | sed -i '/net.ipv4.tcp_max_syn_backlog/d' /etc/sysctl.conf 258 | sed -i '/net.core.netdev_max_backlog/d' /etc/sysctl.conf 259 | sed -i '/net.ipv4.tcp_slow_start_after_idle/d' /etc/sysctl.conf 260 | sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf 261 | if [[ -e /appex/bin/lotServer.sh ]]; then 262 | bash <(wget --no-check-certificate -qO- https://github.com/MoeClub/lotServer/raw/master/Install.sh) uninstall 263 | fi 264 | clear 265 | echo -e "${Info}:清除加速完成。" 266 | sleep 1s 267 | } 268 | 269 | #优化系统配置 270 | optimizing_system(){ 271 | sed -i '/fs.file-max/d' /etc/sysctl.conf 272 | sed -i '/fs.inotify.max_user_instances/d' /etc/sysctl.conf 273 | sed -i '/net.ipv4.tcp_tw_reuse/d' /etc/sysctl.conf 274 | sed -i '/net.ipv4.ip_local_port_range/d' /etc/sysctl.conf 275 | sed -i '/net.ipv4.tcp_rmem/d' /etc/sysctl.conf 276 | sed -i '/net.ipv4.tcp_wmem/d' /etc/sysctl.conf 277 | sed -i '/net.core.somaxconn/d' /etc/sysctl.conf 278 | sed -i '/net.core.rmem_max/d' /etc/sysctl.conf 279 | sed -i '/net.core.wmem_max/d' /etc/sysctl.conf 280 | sed -i '/net.core.wmem_default/d' /etc/sysctl.conf 281 | sed -i '/net.ipv4.tcp_max_tw_buckets/d' /etc/sysctl.conf 282 | sed -i '/net.ipv4.tcp_max_syn_backlog/d' /etc/sysctl.conf 283 | sed -i '/net.core.netdev_max_backlog/d' /etc/sysctl.conf 284 | sed -i '/net.ipv4.tcp_slow_start_after_idle/d' /etc/sysctl.conf 285 | sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf 286 | echo "fs.file-max = 1000000 287 | fs.inotify.max_user_instances = 8192 288 | net.ipv4.tcp_tw_reuse = 1 289 | net.ipv4.ip_local_port_range = 1024 65535 290 | net.ipv4.tcp_rmem = 16384 262144 8388608 291 | net.ipv4.tcp_wmem = 32768 524288 16777216 292 | net.core.somaxconn = 8192 293 | net.core.rmem_max = 16777216 294 | net.core.wmem_max = 16777216 295 | net.core.wmem_default = 2097152 296 | net.ipv4.tcp_max_tw_buckets = 5000 297 | net.ipv4.tcp_max_syn_backlog = 10240 298 | net.core.netdev_max_backlog = 10240 299 | net.ipv4.tcp_slow_start_after_idle = 0 300 | # forward ipv4 301 | net.ipv4.ip_forward = 1">>/etc/sysctl.conf 302 | sysctl -p 303 | echo "* soft nofile 1000000 304 | * hard nofile 1000000">/etc/security/limits.conf 305 | echo "ulimit -SHn 1000000">>/etc/profile 306 | read -p "需要重启VPS后,才能生效系统优化配置,是否现在重启 ? [Y/n] :" yn 307 | [ -z "${yn}" ] && yn="y" 308 | if [[ $yn == [Yy] ]]; then 309 | echo -e "${Info} VPS 重启中..." 310 | reboot 311 | fi 312 | } 313 | #更新脚本 314 | Update_Shell(){ 315 | echo -e "当前版本为 [ ${sh_ver} ],开始检测最新版本..." 316 | sh_new_ver=$(wget --no-check-certificate -qO- "http://${github}/tcp.sh"|grep 'sh_ver="'|awk -F "=" '{print $NF}'|sed 's/\"//g'|head -1) 317 | [[ -z ${sh_new_ver} ]] && echo -e "${Error} 检测最新版本失败 !" && start_menu 318 | if [[ ${sh_new_ver} != ${sh_ver} ]]; then 319 | echo -e "发现新版本[ ${sh_new_ver} ],是否更新?[Y/n]" 320 | read -p "(默认: y):" yn 321 | [[ -z "${yn}" ]] && yn="y" 322 | if [[ ${yn} == [Yy] ]]; then 323 | wget -N --no-check-certificate http://${github}/tcp.sh && chmod +x tcp.sh 324 | echo -e "脚本已更新为最新版本[ ${sh_new_ver} ] !" 325 | else 326 | echo && echo " 已取消..." && echo 327 | fi 328 | else 329 | echo -e "当前已是最新版本[ ${sh_new_ver} ] !" 330 | sleep 5s 331 | fi 332 | } 333 | 334 | #开始菜单 335 | start_menu(){ 336 | clear 337 | echo && echo -e " TCP加速 一键安装管理脚本 ${Red_font_prefix}[v${sh_ver}]${Font_color_suffix} 338 | -- 就是爱生活 | 94ish.me -- 339 | 340 | ${Green_font_prefix}0.${Font_color_suffix} 升级脚本 341 | ————————————内核管理———————————— 342 | ${Green_font_prefix}1.${Font_color_suffix} 安装 BBR/BBR魔改版内核 343 | ${Green_font_prefix}2.${Font_color_suffix} 安装 BBRplus版内核 344 | ${Green_font_prefix}3.${Font_color_suffix} 安装 Lotserver(锐速)内核 345 | ————————————加速管理———————————— 346 | ${Green_font_prefix}4.${Font_color_suffix} 使用BBR加速 347 | ${Green_font_prefix}5.${Font_color_suffix} 使用BBR魔改版加速 348 | ${Green_font_prefix}6.${Font_color_suffix} 使用暴力BBR魔改版加速(不支持部分系统) 349 | ${Green_font_prefix}7.${Font_color_suffix} 使用BBRplus版加速 350 | ${Green_font_prefix}8.${Font_color_suffix} 使用Lotserver(锐速)加速 351 | ————————————杂项管理———————————— 352 | ${Green_font_prefix}9.${Font_color_suffix} 卸载全部加速 353 | ${Green_font_prefix}10.${Font_color_suffix} 系统配置优化 354 | ${Green_font_prefix}11.${Font_color_suffix} 退出脚本 355 | ————————————————————————————————" && echo 356 | 357 | check_status 358 | if [[ ${kernel_status} == "noinstall" ]]; then 359 | echo -e " 当前状态: ${Green_font_prefix}未安装${Font_color_suffix} 加速内核 ${Red_font_prefix}请先安装内核${Font_color_suffix}" 360 | else 361 | echo -e " 当前状态: ${Green_font_prefix}已安装${Font_color_suffix} ${_font_prefix}${kernel_status}${Font_color_suffix} 加速内核 , ${Green_font_prefix}${run_status}${Font_color_suffix}" 362 | 363 | fi 364 | echo 365 | read -p " 请输入数字 [0-11]:" num 366 | case "$num" in 367 | 0) 368 | Update_Shell 369 | ;; 370 | 1) 371 | check_sys_bbr 372 | ;; 373 | 2) 374 | check_sys_bbrplus 375 | ;; 376 | 3) 377 | check_sys_Lotsever 378 | ;; 379 | 4) 380 | startbbr 381 | ;; 382 | 5) 383 | startbbrmod 384 | ;; 385 | 6) 386 | startbbrmod_nanqinlang 387 | ;; 388 | 7) 389 | startbbrplus 390 | ;; 391 | 8) 392 | startlotserver 393 | ;; 394 | 9) 395 | remove_all 396 | ;; 397 | 10) 398 | optimizing_system 399 | ;; 400 | 11) 401 | exit 1 402 | ;; 403 | *) 404 | clear 405 | echo -e "${Error}:请输入正确数字 [0-11]" 406 | sleep 5s 407 | start_menu 408 | ;; 409 | esac 410 | } 411 | #############内核管理组件############# 412 | 413 | #删除多余内核 414 | detele_kernel(){ 415 | if [[ "${release}" == "centos" ]]; then 416 | rpm_total=`rpm -qa | grep kernel | grep -v "${kernel_version}" | grep -v "noarch" | wc -l` 417 | if [ "${rpm_total}" > "1" ]; then 418 | echo -e "检测到 ${rpm_total} 个其余内核,开始卸载..." 419 | for((integer = 1; integer <= ${rpm_total}; integer++)); do 420 | rpm_del=`rpm -qa | grep kernel | grep -v "${kernel_version}" | grep -v "noarch" | head -${integer}` 421 | echo -e "开始卸载 ${rpm_del} 内核..." 422 | rpm --nodeps -e ${rpm_del} 423 | echo -e "卸载 ${rpm_del} 内核卸载完成,继续..." 424 | done 425 | echo --nodeps -e "内核卸载完毕,继续..." 426 | else 427 | echo -e " 检测到 内核 数量不正确,请检查 !" && exit 1 428 | fi 429 | elif [[ "${release}" == "debian" || "${release}" == "ubuntu" ]]; then 430 | deb_total=`dpkg -l | grep linux-image | awk '{print $2}' | grep -v "${kernel_version}" | wc -l` 431 | if [ "${deb_total}" > "1" ]; then 432 | echo -e "检测到 ${deb_total} 个其余内核,开始卸载..." 433 | for((integer = 1; integer <= ${deb_total}; integer++)); do 434 | deb_del=`dpkg -l|grep linux-image | awk '{print $2}' | grep -v "${kernel_version}" | head -${integer}` 435 | echo -e "开始卸载 ${deb_del} 内核..." 436 | apt-get purge -y ${deb_del} 437 | echo -e "卸载 ${deb_del} 内核卸载完成,继续..." 438 | done 439 | echo -e "内核卸载完毕,继续..." 440 | else 441 | echo -e " 检测到 内核 数量不正确,请检查 !" && exit 1 442 | fi 443 | fi 444 | } 445 | 446 | #更新引导 447 | BBR_grub(){ 448 | if [[ "${release}" == "centos" ]]; then 449 | if [[ ${version} = "6" ]]; then 450 | if [ ! -f "/boot/grub/grub.conf" ]; then 451 | echo -e "${Error} /boot/grub/grub.conf 找不到,请检查." 452 | exit 1 453 | fi 454 | sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf 455 | elif [[ ${version} = "7" ]]; then 456 | if [ ! -f "/boot/grub2/grub.cfg" ]; then 457 | echo -e "${Error} /boot/grub2/grub.cfg 找不到,请检查." 458 | exit 1 459 | fi 460 | grub2-set-default 0 461 | fi 462 | elif [[ "${release}" == "debian" || "${release}" == "ubuntu" ]]; then 463 | /usr/sbin/update-grub 464 | fi 465 | } 466 | 467 | #############内核管理组件############# 468 | 469 | 470 | 471 | #############系统检测组件############# 472 | 473 | #检查系统 474 | check_sys(){ 475 | if [[ -f /etc/redhat-release ]]; then 476 | release="centos" 477 | elif cat /etc/issue | grep -q -E -i "debian"; then 478 | release="debian" 479 | elif cat /etc/issue | grep -q -E -i "ubuntu"; then 480 | release="ubuntu" 481 | elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then 482 | release="centos" 483 | elif cat /proc/version | grep -q -E -i "debian"; then 484 | release="debian" 485 | elif cat /proc/version | grep -q -E -i "ubuntu"; then 486 | release="ubuntu" 487 | elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then 488 | release="centos" 489 | fi 490 | } 491 | 492 | #检查Linux版本 493 | check_version(){ 494 | if [[ -s /etc/redhat-release ]]; then 495 | version=`grep -oE "[0-9.]+" /etc/redhat-release | cut -d . -f 1` 496 | else 497 | version=`grep -oE "[0-9.]+" /etc/issue | cut -d . -f 1` 498 | fi 499 | bit=`uname -m` 500 | if [[ ${bit} = "x86_64" ]]; then 501 | bit="x64" 502 | else 503 | bit="x32" 504 | fi 505 | } 506 | 507 | #检查安装bbr的系统要求 508 | check_sys_bbr(){ 509 | check_version 510 | if [[ "${release}" == "centos" ]]; then 511 | if [[ ${version} -ge "6" ]]; then 512 | installbbr 513 | else 514 | echo -e "${Error} BBR内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 515 | fi 516 | elif [[ "${release}" == "debian" ]]; then 517 | if [[ ${version} -ge "8" ]]; then 518 | installbbr 519 | else 520 | echo -e "${Error} BBR内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 521 | fi 522 | elif [[ "${release}" == "ubuntu" ]]; then 523 | if [[ ${version} -ge "14" ]]; then 524 | installbbr 525 | else 526 | echo -e "${Error} BBR内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 527 | fi 528 | else 529 | echo -e "${Error} BBR内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 530 | fi 531 | } 532 | 533 | check_sys_bbrplus(){ 534 | check_version 535 | if [[ "${release}" == "centos" ]]; then 536 | if [[ ${version} -ge "6" ]]; then 537 | installbbrplus 538 | else 539 | echo -e "${Error} BBRplus内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 540 | fi 541 | elif [[ "${release}" == "debian" ]]; then 542 | if [[ ${version} -ge "8" ]]; then 543 | installbbrplus 544 | else 545 | echo -e "${Error} BBRplus内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 546 | fi 547 | elif [[ "${release}" == "ubuntu" ]]; then 548 | if [[ ${version} -ge "14" ]]; then 549 | installbbrplus 550 | else 551 | echo -e "${Error} BBRplus内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 552 | fi 553 | else 554 | echo -e "${Error} BBRplus内核不支持当前系统 ${release} ${version} ${bit} !" && exit 1 555 | fi 556 | } 557 | 558 | 559 | #检查安装Lotsever的系统要求 560 | check_sys_Lotsever(){ 561 | check_version 562 | if [[ "${release}" == "centos" ]]; then 563 | if [[ ${version} == "6" ]]; then 564 | kernel_version="2.6.32-504" 565 | installlot 566 | elif [[ ${version} == "7" ]]; then 567 | yum -y install net-tools 568 | kernel_version="3.10.0-327" 569 | installlot 570 | else 571 | echo -e "${Error} Lotsever不支持当前系统 ${release} ${version} ${bit} !" && exit 1 572 | fi 573 | elif [[ "${release}" == "debian" ]]; then 574 | if [[ ${version} = "7" || ${version} = "8" ]]; then 575 | if [[ ${bit} == "x64" ]]; then 576 | kernel_version="3.16.0-4" 577 | installlot 578 | elif [[ ${bit} == "x32" ]]; then 579 | kernel_version="3.2.0-4" 580 | installlot 581 | fi 582 | elif [[ ${version} = "9" ]]; then 583 | if [[ ${bit} == "x64" ]]; then 584 | kernel_version="4.9.0-4" 585 | installlot 586 | fi 587 | else 588 | echo -e "${Error} Lotsever不支持当前系统 ${release} ${version} ${bit} !" && exit 1 589 | fi 590 | elif [[ "${release}" == "ubuntu" ]]; then 591 | if [[ ${version} -ge "12" ]]; then 592 | if [[ ${bit} == "x64" ]]; then 593 | kernel_version="4.8.0-36" 594 | installlot 595 | elif [[ ${bit} == "x32" ]]; then 596 | kernel_version="3.13.0-29" 597 | installlot 598 | fi 599 | else 600 | echo -e "${Error} Lotsever不支持当前系统 ${release} ${version} ${bit} !" && exit 1 601 | fi 602 | else 603 | echo -e "${Error} Lotsever不支持当前系统 ${release} ${version} ${bit} !" && exit 1 604 | fi 605 | } 606 | 607 | check_status(){ 608 | kernel_version=`uname -r | awk -F "-" '{print $1}'` 609 | kernel_version_full=`uname -r` 610 | if [[ ${kernel_version_full} = "4.14.129-bbrplus" ]]; then 611 | kernel_status="BBRplus" 612 | elif [[ ${kernel_version} = "3.10.0" || ${kernel_version} = "3.16.0" || ${kernel_version} = "3.2.0" || ${kernel_version} = "4.8.0" || ${kernel_version} = "3.13.0" || ${kernel_version} = "2.6.32" || ${kernel_version} = "4.9.0" ]]; then 613 | kernel_status="Lotserver" 614 | elif [[ `echo ${kernel_version} | awk -F'.' '{print $1}'` == "4" ]] && [[ `echo ${kernel_version} | awk -F'.' '{print $2}'` -ge 9 ]] || [[ `echo ${kernel_version} | awk -F'.' '{print $1}'` -ge "5" ]]; then 615 | kernel_status="BBR" 616 | else 617 | kernel_status="noinstall" 618 | fi 619 | 620 | if [[ ${kernel_status} == "Lotserver" ]]; then 621 | if [[ -e /appex/bin/lotServer.sh ]]; then 622 | run_status=`bash /appex/bin/lotServer.sh status | grep "LotServer" | awk '{print $3}'` 623 | if [[ ${run_status} = "running!" ]]; then 624 | run_status="启动成功" 625 | else 626 | run_status="启动失败" 627 | fi 628 | else 629 | run_status="未安装加速模块" 630 | fi 631 | elif [[ ${kernel_status} == "BBR" ]]; then 632 | run_status=`grep "net.ipv4.tcp_congestion_control" /etc/sysctl.conf | awk -F "=" '{gsub("^[ \t]+|[ \t]+$", "", $2);print $2}'` 633 | if [[ ${run_status} == "bbr" ]]; then 634 | run_status=`lsmod | grep "bbr" | awk '{print $1}'` 635 | if [[ ${run_status} == "tcp_bbr" ]]; then 636 | run_status="BBR启动成功" 637 | else 638 | run_status="BBR启动失败" 639 | fi 640 | elif [[ ${run_status} == "tsunami" ]]; then 641 | run_status=`lsmod | grep "tsunami" | awk '{print $1}'` 642 | if [[ ${run_status} == "tcp_tsunami" ]]; then 643 | run_status="BBR魔改版启动成功" 644 | else 645 | run_status="BBR魔改版启动失败" 646 | fi 647 | elif [[ ${run_status} == "nanqinlang" ]]; then 648 | run_status=`lsmod | grep "nanqinlang" | awk '{print $1}'` 649 | if [[ ${run_status} == "tcp_nanqinlang" ]]; then 650 | run_status="暴力BBR魔改版启动成功" 651 | else 652 | run_status="暴力BBR魔改版启动失败" 653 | fi 654 | else 655 | run_status="未安装加速模块" 656 | fi 657 | elif [[ ${kernel_status} == "BBRplus" ]]; then 658 | run_status=`grep "net.ipv4.tcp_congestion_control" /etc/sysctl.conf | awk -F "=" '{gsub("^[ \t]+|[ \t]+$", "", $2);print $2}'` 659 | if [[ ${run_status} == "bbrplus" ]]; then 660 | run_status=`lsmod | grep "bbrplus" | awk '{print $1}'` 661 | if [[ ${run_status} == "tcp_bbrplus" ]]; then 662 | run_status="BBRplus启动成功" 663 | else 664 | run_status="BBRplus启动失败" 665 | fi 666 | else 667 | run_status="未安装加速模块" 668 | fi 669 | fi 670 | } 671 | 672 | #############系统检测组件############# 673 | check_sys 674 | check_version 675 | [[ ${release} != "debian" ]] && [[ ${release} != "ubuntu" ]] && [[ ${release} != "centos" ]] && echo -e "${Error} 本脚本不支持当前系统 ${release} !" && exit 1 676 | start_menu 677 | 678 | --------------------------------------------------------------------------------