feat(脚本): 添加Netflix DNS解锁、添加vps是否支持Netflix的简单检测、修改dns为localhost不再提供脚本自定义dns

pull/534/merge
mack-a 2021-02-24 15:57:51 +08:00
parent fe2e2165d2
commit f1ba99e64d
1 changed files with 174 additions and 51 deletions

View File

@ -833,7 +833,7 @@ installXray() {
echoContent skyBlue "\n进度 $1/${totalProgress} : 安装Xray" echoContent skyBlue "\n进度 $1/${totalProgress} : 安装Xray"
if [[ "${coreInstallType}" != "1" ]]; then if [[ "${coreInstallType}" != "1" ]]; then
version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ |grep "Xray-core v" | head -1 | awk '{print $3}' | awk -F "[<]" '{print $1}') version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ | grep "Xray-core v" | head -1 | awk '{print $3}' | awk -F "[<]" '{print $1}')
echoContent green " ---> Xray-core版本:${version}" echoContent green " ---> Xray-core版本:${version}"
if wget --help | grep -q show-progress; then if wget --help | grep -q show-progress; then
@ -933,10 +933,10 @@ xrayVersionManageMenu() {
echoContent yellow "2.不保证回退后一定可以正常使用" echoContent yellow "2.不保证回退后一定可以正常使用"
echoContent yellow "3.如果回退的版本不支持当前的config则会无法连接谨慎操作" echoContent yellow "3.如果回退的版本不支持当前的config则会无法连接谨慎操作"
echoContent skyBlue "------------------------Version-------------------------------" echoContent skyBlue "------------------------Version-------------------------------"
curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ |grep "Xray-core v" | head -5 | awk -F "[X][r][a][y][-][c][o][r][e][ ]" '{print $2}' | awk -F "[<]" '{print $1}' | tail -n 5 | awk '{print ""NR""":"$0}' curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ | grep "Xray-core v" | head -5 | awk -F "[X][r][a][y][-][c][o][r][e][ ]" '{print $2}' | awk -F "[<]" '{print $1}' | tail -n 5 | awk '{print ""NR""":"$0}'
echoContent skyBlue "--------------------------------------------------------------" echoContent skyBlue "--------------------------------------------------------------"
read -r -p "请输入要回退的版本:" selectXrayVersionType read -r -p "请输入要回退的版本:" selectXrayVersionType
version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ |grep "Xray-core v" | head -5 | awk -F "[X][r][a][y][-][c][o][r][e][ ]" '{print $2}' | awk -F "[<]" '{print $1}' | tail -n 5 | awk '{print ""NR""":"$0}' | grep "${selectXrayVersionType}:" | awk -F "[:]" '{print $2}') version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ | grep "Xray-core v" | head -5 | awk -F "[X][r][a][y][-][c][o][r][e][ ]" '{print $2}' | awk -F "[<]" '{print $1}' | tail -n 5 | awk '{print ""NR""":"$0}' | grep "${selectXrayVersionType}:" | awk -F "[:]" '{print $2}')
if [[ -n "${version}" ]]; then if [[ -n "${version}" ]]; then
updateXray "${version}" updateXray "${version}"
else else
@ -1031,7 +1031,7 @@ updateXray() {
if [[ -n "$1" ]]; then if [[ -n "$1" ]]; then
version=$1 version=$1
else else
version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ |grep "Xray-core v" | head -1 | awk '{print $3}' | awk -F "[<]" '{print $1}') version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ | grep "Xray-core v" | head -1 | awk '{print $3}' | awk -F "[<]" '{print $1}')
fi fi
echoContent green " ---> Xray-core版本:${version}" echoContent green " ---> Xray-core版本:${version}"
@ -1053,7 +1053,7 @@ updateXray() {
if [[ -n "$1" ]]; then if [[ -n "$1" ]]; then
version=$1 version=$1
else else
version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ |grep "Xray-core v" | head -1 | awk '{print $3}' | awk -F "[<]" '{print $1}') version=$(curl -s https://github.com/XTLS/Xray-core/releases | grep /XTLS/Xray-core/releases/tag/ | grep "Xray-core v" | head -1 | awk '{print $3}' | awk -F "[<]" '{print $1}')
fi fi
if [[ -n "$1" ]]; then if [[ -n "$1" ]]; then
@ -1414,28 +1414,24 @@ EOF
} }
EOF EOF
fi fi
# 取消BT # 取消BT
# cat <<EOF >/etc/v2ray-agent/v2ray/conf/10_bt_outbounds.json # cat <<EOF >/etc/v2ray-agent/v2ray/conf/10_bt_outbounds.json
#{ #{
# "outbounds": [ # "outbounds": [
# { # {
# "protocol": "blackhole", # "protocol": "blackhole",
# "settings": {}, # "settings": {},
# "tag": "blocked" # "tag": "blocked"
# } # }
# ] # ]
#} #}
#EOF #EOF
# dns # dns
cat <<EOF >/etc/v2ray-agent/v2ray/conf/11_dns.json cat <<EOF >/etc/v2ray-agent/v2ray/conf/11_dns.json
{ {
"dns": { "dns": {
"servers": [ "servers": [
"74.82.42.42",
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"localhost" "localhost"
] ]
} }
@ -1723,28 +1719,24 @@ EOF
EOF EOF
fi fi
# 取消BT # 取消BT
# cat <<EOF >/etc/v2ray-agent/xray/conf/10_bt_outbounds.json # cat <<EOF >/etc/v2ray-agent/xray/conf/10_bt_outbounds.json
#{ #{
# "outbounds": [ # "outbounds": [
# { # {
# "protocol": "blackhole", # "protocol": "blackhole",
# "settings": {}, # "settings": {},
# "tag": "blocked" # "tag": "blocked"
# } # }
# ] # ]
#} #}
#EOF #EOF
# dns # dns
cat <<EOF >/etc/v2ray-agent/xray/conf/11_dns.json cat <<EOF >/etc/v2ray-agent/xray/conf/11_dns.json
{ {
"dns": { "dns": {
"servers": [ "servers": [
"74.82.42.42",
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"localhost" "localhost"
] ]
} }
@ -2408,6 +2400,7 @@ customUserEmail() {
# 添加用户 # 添加用户
addUser() { addUser() {
echoContent yellow "添加新用户后,需要重新查看订阅" echoContent yellow "添加新用户后,需要重新查看订阅"
read -r -p "请输入要添加的用户数量:" userNum read -r -p "请输入要添加的用户数量:" userNum
echo echo
@ -2425,13 +2418,13 @@ addUser() {
fi fi
while [[ ${userNum} -gt 0 ]]; do while [[ ${userNum} -gt 0 ]]; do
((userNum--)) || true ((userNum--)) || true
if [[ -n "${currentCustomUUID}" ]]; then if [[ -n "${currentCustomUUID}" ]]; then
uuid=${currentCustomUUID} uuid=${currentCustomUUID}
else else
uuid=$(${ctlPath} uuid) uuid=$(${ctlPath} uuid)
fi fi
if [[ -n "${currentCustomEmail}" ]]; then if [[ -n "${currentCustomEmail}" ]]; then
email=${currentCustomEmail} email=${currentCustomEmail}
else else
@ -2439,6 +2432,7 @@ addUser() {
fi fi
if [[ ${userNum} == 0 ]]; then if [[ ${userNum} == 0 ]]; then
users=${users}{\"id\":\"${uuid}\",\"flow\":\"xtls-rprx-direct\",\"email\":\"${email}\"} users=${users}{\"id\":\"${uuid}\",\"flow\":\"xtls-rprx-direct\",\"email\":\"${email}\"}
if echo ${currentInstallProtocolType} | grep -q 4; then if echo ${currentInstallProtocolType} | grep -q 4; then
@ -2451,8 +2445,8 @@ addUser() {
trojanGoUsers=${trojanGoUsers}\"${uuid}\", trojanGoUsers=${trojanGoUsers}\"${uuid}\",
fi fi
fi fi
done done
# 兼容v2ray-core # 兼容v2ray-core
if [[ "${coreInstallType}" == "2" ]]; then if [[ "${coreInstallType}" == "2" ]]; then
# | sed 's/"flow":"xtls-rprx-direct",/"alterId":1,/g') # | sed 's/"flow":"xtls-rprx-direct",/"alterId":1,/g')
@ -2789,6 +2783,131 @@ EOF
fi fi
} }
# 流媒体工具箱
streamingToolbox() {
echoContent skyBlue "\n功能 1/${totalProgress} : 流媒体工具箱"
echoContent red "\n=============================================================="
echoContent yellow "1.Netflix检测"
echoContent yellow "2.DNS解锁Netflix"
read -r -p "请选择:" selectType
case ${selectType} in
1)
checkNetflix
;;
2)
dnsUnlockNetflix
;;
esac
}
# 检查 vps是否支持Netflix
checkNetflix() {
echoContent red "\n注意事项"
echoContent yellow " 1.只可检测vps是否支持Netflix"
echoContent yellow " 2.无法检测代理配置dns解锁后是否支持Netflix"
echoContent yellow " 3.可检测vps配置dns解锁后是否支持Netflix\n"
echoContent skyBlue " ---> 检测中"
netflixResult=$(curl -s -m 2 https://www.netflix.com | grep "Not Available")
if [[ -n ${netflixResult} ]]; then
echoContent red " ---> Netflix不可用"
exit
fi
echoContent skyBlue " ---> 检测绝命毒师是否可以播放"
result=$(curl -s -m 2 https://www.netflix.com/title/70143836 | grep "page-404")
if [[ -n ${result} ]]; then
echoContent green " ---> 仅可看自制剧"
exit
fi
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个性化安装 # v2ray-core个性化安装
customV2RayInstall() { customV2RayInstall() {
echoContent skyBlue "\n========================个性化安装============================" echoContent skyBlue "\n========================个性化安装============================"
@ -3114,7 +3233,7 @@ menu() {
cd "$HOME" || exit cd "$HOME" || exit
echoContent red "\n==============================================================" echoContent red "\n=============================================================="
echoContent green "作者mack-a" echoContent green "作者mack-a"
echoContent green "当前版本v2.3.17" echoContent green "当前版本v2.3.18"
echoContent green "Githubhttps://github.com/mack-a/v2ray-agent" echoContent green "Githubhttps://github.com/mack-a/v2ray-agent"
echoContent green "描述:七合一共存脚本" echoContent green "描述:七合一共存脚本"
echoContent red "==============================================================" echoContent red "=============================================================="
@ -3126,14 +3245,15 @@ menu() {
echoContent yellow "5.更新证书" echoContent yellow "5.更新证书"
echoContent yellow "6.更换CDN节点" echoContent yellow "6.更换CDN节点"
echoContent yellow "7.ipv6人机验证" echoContent yellow "7.ipv6人机验证"
echoContent yellow "8.流媒体工具"
echoContent skyBlue "-------------------------版本管理-----------------------------" echoContent skyBlue "-------------------------版本管理-----------------------------"
echoContent yellow "8.core版本管理" echoContent yellow "9.core版本管理"
echoContent yellow "9.更新Trojan-Go" echoContent yellow "10.更新Trojan-Go"
echoContent yellow "10.更新脚本" echoContent yellow "11.更新脚本"
echoContent yellow "11.安装BBR、DD脚本" echoContent yellow "12.安装BBR、DD脚本"
echoContent skyBlue "-------------------------脚本管理-----------------------------" echoContent skyBlue "-------------------------脚本管理-----------------------------"
echoContent yellow "12.查看日志" echoContent yellow "13.查看日志"
echoContent yellow "13.卸载脚本" echoContent yellow "14.卸载脚本"
echoContent red "==============================================================" echoContent red "=============================================================="
mkdirTools mkdirTools
aliasInstall aliasInstall
@ -3161,21 +3281,24 @@ menu() {
ipv6HumanVerification ipv6HumanVerification
;; ;;
8) 8)
coreVersionManageMenu 1 streamingToolbox 1
;; ;;
9) 9)
updateTrojanGo 1 coreVersionManageMenu 1
;; ;;
10) 10)
updateV2RayAgent 1 updateTrojanGo 1
;; ;;
11) 11)
bbrInstall updateV2RayAgent 1
;; ;;
12) 12)
checkLog 1 bbrInstall
;; ;;
13) 13)
checkLog 1
;;
14)
unInstall 1 unInstall 1
;; ;;
esac esac