38 fix xray
This commit is contained in:
269
v2ray
269
v2ray
@@ -1,269 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# EDIT: @kiritossh
|
|
||||||
# github: https://github.com/Jrohy/multi-v2ray
|
|
||||||
|
|
||||||
#定时任务北京执行时间(0~23)
|
|
||||||
BEIJING_UPDATE_TIME=3
|
|
||||||
|
|
||||||
#记录最开始运行脚本的路径
|
|
||||||
BEGIN_PATH=$(pwd)
|
|
||||||
|
|
||||||
#安装方式, 0为全新安装, 1为保留v2ray配置更新
|
|
||||||
INSTALL_WAY=0
|
|
||||||
|
|
||||||
#定义操作变量, 0为否, 1为是
|
|
||||||
HELP=0
|
|
||||||
|
|
||||||
REMOVE=0
|
|
||||||
|
|
||||||
CHINESE=0
|
|
||||||
|
|
||||||
BASE_SOURCE_PATH="https://multi.netlify.app"
|
|
||||||
|
|
||||||
UTIL_PATH="/etc/v2ray_util/util.cfg"
|
|
||||||
|
|
||||||
UTIL_CFG="$BASE_SOURCE_PATH/v2ray_util/util_core/util.cfg"
|
|
||||||
|
|
||||||
BASH_COMPLETION_SHELL="$BASE_SOURCE_PATH/v2ray"
|
|
||||||
|
|
||||||
CLEAN_IPTABLES_SHELL="$BASE_SOURCE_PATH/v2ray_util/global_setting/clean_iptables.sh"
|
|
||||||
|
|
||||||
#Centos 临时取消别名
|
|
||||||
[[ -f /etc/redhat-release && -z $(echo $SHELL|grep zsh) ]] && unalias -a
|
|
||||||
|
|
||||||
[[ -z $(echo $SHELL|grep zsh) ]] && ENV_FILE=".bashrc" || ENV_FILE=".zshrc"
|
|
||||||
|
|
||||||
#######color code########
|
|
||||||
RED="31m"
|
|
||||||
GREEN="32m"
|
|
||||||
YELLOW="33m"
|
|
||||||
BLUE="36m"
|
|
||||||
FUCHSIA="35m"
|
|
||||||
|
|
||||||
colorEcho(){
|
|
||||||
COLOR=$1
|
|
||||||
echo -e "\033[${COLOR}${@:2}\033[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
#######get params#########
|
|
||||||
while [[ $# > 0 ]];do
|
|
||||||
key="$1"
|
|
||||||
case $key in
|
|
||||||
--remove)
|
|
||||||
REMOVE=1
|
|
||||||
;;
|
|
||||||
-h|--help)
|
|
||||||
HELP=1
|
|
||||||
;;
|
|
||||||
-k|--keep)
|
|
||||||
INSTALL_WAY=1
|
|
||||||
colorEcho ${BLUE} "keep config to update\n"
|
|
||||||
;;
|
|
||||||
--zh)
|
|
||||||
CHINESE=1
|
|
||||||
colorEcho ${BLUE} "安装中文版..\n"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# unknown option
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift # past argument or value
|
|
||||||
done
|
|
||||||
#############################
|
|
||||||
|
|
||||||
help(){
|
|
||||||
echo "bash v2ray.sh [-h|--help] [-k|--keep] [--remove]"
|
|
||||||
echo " -h, --help Show help"
|
|
||||||
echo " -k, --keep keep the config.json to update"
|
|
||||||
echo " --remove remove v2ray,xray && multi-v2ray"
|
|
||||||
echo " no params to new install"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
removeV2Ray() {
|
|
||||||
#卸载V2ray脚本
|
|
||||||
bash <(curl -L -s https://multi.netlify.app/go.sh) --remove >/dev/null 2>&1
|
|
||||||
rm -rf /etc/v2ray >/dev/null 2>&1
|
|
||||||
rm -rf /var/log/v2ray >/dev/null 2>&1
|
|
||||||
|
|
||||||
#卸载Xray脚本
|
|
||||||
bash <(curl -L -s https://multi.netlify.app/go.sh) --remove -x >/dev/null 2>&1
|
|
||||||
rm -rf /etc/xray >/dev/null 2>&1
|
|
||||||
rm -rf /var/log/xray >/dev/null 2>&1
|
|
||||||
|
|
||||||
#清理v2ray相关iptable规则
|
|
||||||
bash <(curl -L -s $CLEAN_IPTABLES_SHELL)
|
|
||||||
|
|
||||||
#卸载multi-v2ray
|
|
||||||
pip uninstall v2ray_util -y
|
|
||||||
rm -rf /usr/share/bash-completion/completions/v2ray.bash >/dev/null 2>&1
|
|
||||||
rm -rf /usr/share/bash-completion/completions/v2ray >/dev/null 2>&1
|
|
||||||
rm -rf /usr/share/bash-completion/completions/xray >/dev/null 2>&1
|
|
||||||
rm -rf /etc/bash_completion.d/v2ray.bash >/dev/null 2>&1
|
|
||||||
rm -rf /usr/local/bin/v2ray >/dev/null 2>&1
|
|
||||||
rm -rf /etc/v2ray_util >/dev/null 2>&1
|
|
||||||
|
|
||||||
#删除v2ray定时更新任务
|
|
||||||
crontab -l|sed '/SHELL=/d;/v2ray/d'|sed '/SHELL=/d;/xray/d' > crontab.txt
|
|
||||||
crontab crontab.txt >/dev/null 2>&1
|
|
||||||
rm -f crontab.txt >/dev/null 2>&1
|
|
||||||
|
|
||||||
if [[ ${PACKAGE_MANAGER} == 'dnf' || ${PACKAGE_MANAGER} == 'yum' ]];then
|
|
||||||
systemctl restart crond >/dev/null 2>&1
|
|
||||||
else
|
|
||||||
systemctl restart cron >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#删除multi-v2ray环境变量
|
|
||||||
sed -i '/v2ray/d' ~/$ENV_FILE
|
|
||||||
sed -i '/xray/d' ~/$ENV_FILE
|
|
||||||
source ~/$ENV_FILE
|
|
||||||
|
|
||||||
colorEcho ${GREEN} "uninstall success!"
|
|
||||||
}
|
|
||||||
|
|
||||||
closeSELinux() {
|
|
||||||
#禁用SELinux
|
|
||||||
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
|
|
||||||
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
|
|
||||||
setenforce 0
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
checkSys() {
|
|
||||||
#检查是否为Root
|
|
||||||
[ $(id -u) != "0" ] && { colorEcho ${RED} "Error: You must be root to run this script"; exit 1; }
|
|
||||||
|
|
||||||
if [[ `command -v apt-get` ]];then
|
|
||||||
PACKAGE_MANAGER='apt-get'
|
|
||||||
elif [[ `command -v dnf` ]];then
|
|
||||||
PACKAGE_MANAGER='dnf'
|
|
||||||
elif [[ `command -v yum` ]];then
|
|
||||||
PACKAGE_MANAGER='yum'
|
|
||||||
else
|
|
||||||
colorEcho $RED "Not support OS!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#安装依赖
|
|
||||||
installDependent(){
|
|
||||||
if [[ ${PACKAGE_MANAGER} == 'dnf' || ${PACKAGE_MANAGER} == 'yum' ]];then
|
|
||||||
${PACKAGE_MANAGER} install socat crontabs bash-completion which -y
|
|
||||||
else
|
|
||||||
${PACKAGE_MANAGER} update
|
|
||||||
${PACKAGE_MANAGER} install socat cron bash-completion ntpdate -y
|
|
||||||
fi
|
|
||||||
|
|
||||||
#install python3 & pip
|
|
||||||
source <(curl -sL https://python3.netlify.app/install.sh)
|
|
||||||
}
|
|
||||||
|
|
||||||
updateProject() {
|
|
||||||
[[ ! $(type pip 2>/dev/null) ]] && colorEcho $RED "pip no install!" && exit 1
|
|
||||||
|
|
||||||
pip install -U v2ray_util
|
|
||||||
|
|
||||||
if [[ -e $UTIL_PATH ]];then
|
|
||||||
[[ -z $(cat $UTIL_PATH|grep lang) ]] && echo "lang=en" >> $UTIL_PATH
|
|
||||||
else
|
|
||||||
mkdir -p /etc/v2ray_util
|
|
||||||
curl $UTIL_CFG > $UTIL_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ $CHINESE == 1 ]] && sed -i "s/lang=en/lang=zh/g" $UTIL_PATH
|
|
||||||
|
|
||||||
rm -f /usr/local/bin/v2ray >/dev/null 2>&1
|
|
||||||
ln -s $(which v2ray-util) /usr/local/bin/v2ray
|
|
||||||
rm -f /usr/local/bin/xray >/dev/null 2>&1
|
|
||||||
ln -s $(which v2ray-util) /usr/local/bin/xray
|
|
||||||
|
|
||||||
#移除旧的v2ray bash_completion脚本
|
|
||||||
[[ -e /etc/bash_completion.d/v2ray.bash ]] && rm -f /etc/bash_completion.d/v2ray.bash
|
|
||||||
[[ -e /usr/share/bash-completion/completions/v2ray.bash ]] && rm -f /usr/share/bash-completion/completions/v2ray.bash
|
|
||||||
|
|
||||||
#更新v2ray bash_completion脚本
|
|
||||||
curl $BASH_COMPLETION_SHELL > /usr/share/bash-completion/completions/v2ray
|
|
||||||
curl $BASH_COMPLETION_SHELL > /usr/share/bash-completion/completions/xray
|
|
||||||
if [[ -z $(echo $SHELL|grep zsh) ]];then
|
|
||||||
source /usr/share/bash-completion/completions/v2ray
|
|
||||||
source /usr/share/bash-completion/completions/xray
|
|
||||||
fi
|
|
||||||
|
|
||||||
#安装V2ray主程序
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && bash <(curl -L -s https://multi.netlify.app/go.sh)
|
|
||||||
}
|
|
||||||
|
|
||||||
#时间同步
|
|
||||||
timeSync() {
|
|
||||||
if [[ ${INSTALL_WAY} == 0 ]];then
|
|
||||||
echo -e "${Info} Time Synchronizing.. ${Font}"
|
|
||||||
if [[ `command -v ntpdate` ]];then
|
|
||||||
ntpdate pool.ntp.org
|
|
||||||
elif [[ `command -v chronyc` ]];then
|
|
||||||
chronyc -a makestep
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $? -eq 0 ]];then
|
|
||||||
echo -e "${OK} Time Sync Success ${Font}"
|
|
||||||
echo -e "${OK} now: `date -R`${Font}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
profileInit() {
|
|
||||||
|
|
||||||
#清理v2ray模块环境变量
|
|
||||||
[[ $(grep v2ray ~/$ENV_FILE) ]] && sed -i '/v2ray/d' ~/$ENV_FILE && source ~/$ENV_FILE
|
|
||||||
|
|
||||||
#解决Python3中文显示问题
|
|
||||||
[[ -z $(grep PYTHONIOENCODING=utf-8 ~/$ENV_FILE) ]] && echo "export PYTHONIOENCODING=utf-8" >> ~/$ENV_FILE && source ~/$ENV_FILE
|
|
||||||
|
|
||||||
#全新安装的新配置
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && v2ray new
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
installFinish() {
|
|
||||||
#回到原点
|
|
||||||
cd ${BEGIN_PATH}
|
|
||||||
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && WAY="install" || WAY="update"
|
|
||||||
colorEcho ${GREEN} "multi-v2ray ${WAY} success!\n"
|
|
||||||
|
|
||||||
if [[ ${INSTALL_WAY} == 0 ]]; then
|
|
||||||
clear
|
|
||||||
|
|
||||||
echo -e "\n\033[1;32mV2RAY INSTALADO COM SUCESSO !\033[0m"
|
|
||||||
v2ray info
|
|
||||||
|
|
||||||
echo -e "Por favor insira o comando 'v2ray' para gerenciar v2ray\n"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main() {
|
|
||||||
|
|
||||||
[[ ${HELP} == 1 ]] && help && return
|
|
||||||
|
|
||||||
[[ ${REMOVE} == 1 ]] && removeV2Ray && return
|
|
||||||
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && colorEcho ${BLUE} "new install\n"
|
|
||||||
|
|
||||||
checkSys
|
|
||||||
|
|
||||||
installDependent
|
|
||||||
|
|
||||||
closeSELinux
|
|
||||||
|
|
||||||
timeSync
|
|
||||||
|
|
||||||
updateProject
|
|
||||||
|
|
||||||
profileInit
|
|
||||||
|
|
||||||
installFinish
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
@@ -1 +1 @@
|
|||||||
36 Year Of the Noodle Dragon
|
38 Year Of the Noodle Dragon
|
||||||
21
xray.php
21
xray.php
@@ -222,13 +222,6 @@ function xrayGenerateConfig($port, string $network = 'xhttp')
|
|||||||
$apiInbound,
|
$apiInbound,
|
||||||
$dragonInbound,
|
$dragonInbound,
|
||||||
],
|
],
|
||||||
'log' => [
|
|
||||||
'access' => '/var/log/v2ray/access.log',
|
|
||||||
'dnsLog' => false,
|
|
||||||
'error' => '',
|
|
||||||
'loglevel' => 'info',
|
|
||||||
'maskAddress' => '',
|
|
||||||
],
|
|
||||||
'observatory' => null,
|
'observatory' => null,
|
||||||
'outbounds' => [
|
'outbounds' => [
|
||||||
[
|
[
|
||||||
@@ -242,20 +235,6 @@ function xrayGenerateConfig($port, string $network = 'xhttp')
|
|||||||
'tag' => 'blocked',
|
'tag' => 'blocked',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'policy' => [
|
|
||||||
'levels' => [
|
|
||||||
'0' => [
|
|
||||||
'statsUserDownlink' => true,
|
|
||||||
'statsUserUplink' => true,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'system' => [
|
|
||||||
'statsInboundDownlink' => true,
|
|
||||||
'statsInboundUplink' => true,
|
|
||||||
'statsOutboundDownlink' => false,
|
|
||||||
'statsOutboundUplink' => false,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'reverse' => null,
|
'reverse' => null,
|
||||||
'routing' => [
|
'routing' => [
|
||||||
'domainStrategy' => 'AsIs',
|
'domainStrategy' => 'AsIs',
|
||||||
|
|||||||
Reference in New Issue
Block a user