feat(脚本): 添加任意门解锁Netflix、删除DNS解锁流媒体、添加任意门流媒体解锁文章

pull/534/merge
mack-a 2021-03-04 16:15:53 +08:00
parent 169d5c5168
commit 3fbd63e4ff
3 changed files with 238 additions and 126 deletions

View File

@ -138,7 +138,7 @@ echo "alias abc=vasma" >> ~/.bashrc & source ~/.bashrc
## 7.流媒体工具
- 支持检测是否解锁Netflix
- 支持DNS流媒体解锁需自行购买流媒体解锁DNS
- [支持任意门解锁流媒体](https://github.com/mack-a/v2ray-agent/blob/master/documents/netflix/dokodemo-unblock_netflix.md)
## 8.core版本管理

View File

@ -0,0 +1,36 @@
# 任意门解锁netfix
> [参考文章](https://gist.github.com/phlinhng/c11c1268748874982fa6596fb0a4992a)
# 1.概述
目前解锁Netflix有三种方式这里我们介绍的是下面的第二种
- 1.购买dns解锁服务
- 2.在主力机的基础中再购买Netflix解锁的机器
- 3.购买的vps自带解锁服务
# 2.准备工作
- 1.购买可以解锁Netflix的机器
- 2.使用本脚本搭建完毕两台机器安装Netflix解锁机时不区分协议随便安装一个协议即可
# 3.解锁步骤
- 1.需要分别设置两台vps的入站和出战即**要解锁的vps**设置**出站****已经解锁的vps**设置**入站**
- 2.举例
下面有vpsA、vpsB两台vps。 vpsA为BWH GIA不解锁NetflixvpsB为解锁Netflix的vps。
这个时候我们需要两步操作
- 1.登录**vpsA**,使用脚本中的 **流媒体工具箱->任意门落地机解锁Netflix->设置出站**ip为上面的**已经解锁Netflix的vpsB的ip**
- 2.登录**解锁的Netflix的vps**,使用脚本中的**流媒体工具箱->任意门落地机解锁Netflix->设置入站**ip为上面的**vpsA的ip**
# 4.卸载
- 卸载不区分入站、出站,卸载即可。

View File

@ -750,13 +750,7 @@ renewalTLS() {
sudo "$HOME/.acme.sh/acme.sh" --installcert -d "${currentHost}" --fullchainpath /etc/v2ray-agent/tls/"${currentHost}.crt" --keypath /etc/v2ray-agent/tls/"${currentHost}.key" --ecc | sudo tee -a /etc/v2ray-agent/tls/acme.log
handleNginx start
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
reloadCore
else
echoContent green " ---> 证书有效"
@ -2293,13 +2287,7 @@ updateV2RayCDN() {
# if [[ $(grep <./02_VLESS_TCP_inbounds.json add | awk -F '["]' '{print $4}') == "${setDomain}" ]]
if [[ $(grep <${configPath}02_VLESS_TCP_inbounds.json add | awk -F '["]' '{print $4}') == "${setDomain}" ]]; then
echoContent green " ---> CDN修改成功"
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
reloadCore
else
echoContent red " ---> 修改CDN失败"
@ -2491,13 +2479,7 @@ addUser() {
handleTrojanGo start
fi
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
reloadCore
echoContent green " ---> 添加完成"
showAccounts 1
}
@ -2543,13 +2525,7 @@ removeUser() {
handleTrojanGo stop
handleTrojanGo start
fi
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
reloadCore
fi
}
# 更新脚本
@ -2778,14 +2754,7 @@ EOF
exit
fi
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
reloadCore
}
# 流媒体工具箱
@ -2793,7 +2762,7 @@ streamingToolbox() {
echoContent skyBlue "\n功能 1/${totalProgress} : 流媒体工具箱"
echoContent red "\n=============================================================="
echoContent yellow "1.Netflix检测"
echoContent yellow "2.DNS解锁Netflix"
echoContent yellow "2.任意门落地机解锁Netflix"
read -r -p "请选择:" selectType
case ${selectType} in
@ -2801,9 +2770,202 @@ streamingToolbox() {
checkNetflix
;;
2)
dnsUnlockNetflix
dokodemoDoorUnblockNetflix
;;
esac
}
# 任意门解锁netflix
dokodemoDoorUnblockNetflix() {
echoContent skyBlue "\n功能 1/${totalProgress} : 任意门落地机解锁Netflix"
echoContent red "\n=============================================================="
echoContent yellow "# 注意事项"
echoContent yellow "任意门解锁详解,请查看此文章[https://github.com/mack-a/v2ray-agent/blob/master/documents/netflix/dokodemo-unblock_netflix.md]\n"
echoContent yellow "1.添加出站"
echoContent yellow "2.添加入站"
echoContent yellow "3.卸载"
read -r -p "请选择:" selectType
case ${selectType} in
1)
setDokodemoDoorUnblockNetflixOutbounds
;;
2)
setDokodemoDoorUnblockNetflixInbounds
;;
3)
removeDokodemoDoorUnblockNetflix
;;
esac
}
# 设置任意门解锁Netflix【出站】
setDokodemoDoorUnblockNetflixOutbounds() {
read -r -p "请输入解锁Netflix vps的IP:" setIP
if [[ -n "${setIP}" ]]; then
cat <<EOF >${configPath}/10_netflix_outbounds.json
{
"outbounds": [
{
"tag": "netflix-80",
"protocol": "freedom",
"settings": {
"domainStrategy": "AsIs",
"redirect": "${setIP}:22387"
}
},
{
"tag": "netflix-443",
"protocol": "freedom",
"settings": {
"domainStrategy": "AsIs",
"redirect": "${setIP}:22388"
}
}
]
}
EOF
cat <<EOF >${configPath}/09_routing.json
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"port": 80,
"domain": [
"ip.sb",
"geosite:netflix"
],
"outboundTag": "netflix-80"
},
{
"type": "field",
"port": 443,
"domain": [
"ip.sb",
"geosite:netflix"
],
"outboundTag": "netflix-443"
}
]
}
}
EOF
reloadCore
echoContent green " ---> 添加Netflix出战解锁成功"
echoContent yellow " ---> 不支持trojan的相关节点"
exit
fi
echoContent red " ---> ip不可为空"
}
# 设置任意门解锁Netflix【入站】
setDokodemoDoorUnblockNetflixInbounds() {
read -r -p "请输入允许访问该解锁Netflix vps的IP:" setIP
if [[ -n "${setIP}" ]]; then
cat <<EOF >${configPath}/10_netflix_inbounds.json
{
"inbounds": [
{
"listen": "0.0.0.0",
"port": 22387,
"protocol": "dokodemo-door",
"settings": {
"address": "0.0.0.0",
"port": 80,
"network": "tcp",
"followRedirect": false
},
"sniffing": {
"enabled": true,
"destOverride": [
"http"
]
},
"tag": "unblock-80"
},
{
"listen": "0.0.0.0",
"port": 22388,
"protocol": "dokodemo-door",
"settings": {
"address": "0.0.0.0",
"port": 443,
"network": "tcp",
"followRedirect": false
},
"sniffing": {
"enabled": true,
"destOverride": [
"tls"
]
},
"tag": "unblock-443"
}
]
}
EOF
cat <<EOF >${configPath}/09_routing.json
{
"routing": {
"rules": [
{
"ip": "${setIP}",
"type": "field",
"inboundTag": [
"unblock-80",
"unblock-443"
],
"outboundTag": "direct"
}
]
}
}
EOF
reloadCore
echoContent green " ---> 添加落地机入站解锁Netflix成功"
echoContent yellow " ---> 不支持trojan的相关节点"
exit
fi
echoContent red " ---> ip不可为空"
}
# 移除任意门解锁Netflix
removeDokodemoDoorUnblockNetflix() {
rm -rf ${configPath}/10_netflix_*.json
cat <<EOF >${configPath}/09_routing.json
{
"routing":{
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"protocol": [
"bittorrent"
],
"outboundTag": "blocked"
}
]
}
}
EOF
reloadCore
echoContent green " ---> 卸载成功"
}
# 重启核心
reloadCore() {
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
}
# 检查 vps是否支持Netflix
@ -2834,92 +2996,6 @@ checkNetflix() {
echoContent green " ---> Netflix解锁"
exit
}
# dns解锁Netflix
dnsUnlockNetflix() {
echoContent skyBlue "\n功能 1/${totalProgress} : DNS解锁Netflix"
echoContent red "\n=============================================================="
echoContent yellow "1.添加"
echoContent yellow "2.卸载"
read -r -p "请选择:" selectType
case ${selectType} in
1)
setUnlockDNS
;;
2)
removeUnlockDNS
;;
esac
}
# 设置dns
setUnlockDNS() {
read -r -p "请输入解锁Netflix的DNS:" setDNS
if [[ -n ${setDNS} ]]; then
cat <<EOF >${configPath}/11_dns.json
{
"dns": {
"servers": [
{
"address": "${setDNS}",
"port": 53,
"domains": [
"domain:netflix.com",
"domain:netflix.net",
"domain:nflximg.net",
"domain:nflxvideo.net",
"domain:nflxso.net",
"domain:nflxext.com"
]
},
"localhost"
]
}
}
EOF
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
echoContent green "\n ---> DNS解锁添加成功该设置对Trojan-Go无效"
echoContent yellow "\n ---> 如还无法观看可以尝试以下两种方案"
echoContent yellow " 1.重启vps"
echoContent yellow " 2.卸载dns解锁后修改本地的[/etc/resolv.conf]DNS设置并重启vps\n"
else
echoContent red " ---> dns不可为空"
fi
exit
}
# 移除Netflix解锁
removeUnlockDNS() {
cat <<EOF >${configPath}/11_dns.json
{
"dns": {
"servers": [
"localhost"
]
}
}
EOF
if [[ "${coreInstallType}" == "1" ]]; then
handleXray stop
handleXray start
elif [[ "${coreInstallType}" == "2" || "${coreInstallType}" == "3" ]]; then
handleV2Ray stop
handleV2Ray start
fi
echoContent green " ---> 卸载成功"
exit
}
# v2ray-core个性化安装
customV2RayInstall() {
echoContent skyBlue "\n========================个性化安装============================"
@ -3245,7 +3321,7 @@ menu() {
cd "$HOME" || exit
echoContent red "\n=============================================================="
echoContent green "作者mack-a"
echoContent green "当前版本v2.3.23"
echoContent green "当前版本v2.3.24"
echoContent green "Githubhttps://github.com/mack-a/v2ray-agent"
echoContent green "描述:七合一共存脚本"
echoContent red "=============================================================="