v1.0.0beta15.1

~新增自定义http/sock5代理认证功能
~新增支持安装内置yacd面板
~增加自定义DNS配置功能
~修复fake-ip模式下偶尔会出现大量回环流量的bug
~修复部分设备无法正常显示局域网连接ip/mac的bug
~同步最新版本Geoip数据库文件
This commit is contained in:
juewuy
2020-10-21 23:57:10 +08:00
parent 31160a6ef2
commit d7d9c6efa7
7 changed files with 75 additions and 24 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
clash_v=1.2.0 clash_v=1.2.0
clashpre_v=2020.10.09 clashpre_v=2020.10.09
GeoIP_v=20201010 GeoIP_v=20201021
versionsh=1.0.0beta15 versionsh=1.0.0beta15.1

View File

@@ -156,7 +156,7 @@ setport(){
if [ "$res" = "1" ];then if [ "$res" = "1" ];then
$clashdir/start.sh stop $clashdir/start.sh stop
else else
clashsh clashadv
fi fi
fi fi
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -217,6 +217,14 @@ setport(){
} }
setdns(){ setdns(){
source $ccfg source $ccfg
if [ "$dns_no" = "true" ];then
read -p "检测到内置DNS已被禁用是否启用内置DNS(1/0) > " res
if [ "$res" = "1" ];then
sed -i "/dns_no*/"d $ccfg
else
clashadv
fi
fi
[ -z "$dns_nameserver" ] && dns_nameserver='114.114.114.114, 223.5.5.5' [ -z "$dns_nameserver" ] && dns_nameserver='114.114.114.114, 223.5.5.5'
[ -z "$dns_fallback" ] && dns_fallback='1.0.0.1, 8.8.4.4' [ -z "$dns_fallback" ] && dns_fallback='1.0.0.1, 8.8.4.4'
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -228,6 +236,7 @@ setdns(){
echo -e " 1 修改基础DNS" echo -e " 1 修改基础DNS"
echo -e " 2 修改fallback_DNS" echo -e " 2 修改fallback_DNS"
echo -e " 3 重置DNS配置" echo -e " 3 重置DNS配置"
echo -e " 4 禁用内置DNS(慎用)"
echo -e " 0 返回上级菜单" echo -e " 0 返回上级菜单"
echo ----------------------------------------------- echo -----------------------------------------------
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
@@ -257,6 +266,13 @@ setdns(){
sed -i "/dns_nameserver*/"d $ccfg sed -i "/dns_nameserver*/"d $ccfg
sed -i "/dns_fallback*/"d $ccfg sed -i "/dns_fallback*/"d $ccfg
echo -e "\033[33mDNS配置已重置\033[0m" echo -e "\033[33mDNS配置已重置\033[0m"
elif [[ $num == 4 ]]; then
echo -----------------------------------------------
echo -e "\033[31m仅限搭配其他DNS服务(比如dnsmasq、smartDNS)时使用!\033[0m"
sed -i "/dns_no*/"d $ccfg
sed -i "1i\dns_no=true" $ccfg
echo -e "\033[33m已禁用内置DNS\033[0m"
clashadv
else else
clashadv clashadv
fi fi
@@ -744,7 +760,7 @@ echo -e " 2 启用ipv6支持: \033[36m$ipv6_support\033[0m ————实验性
echo -e " 3 使用保守方式启动: \033[36m$start_old\033[0m ————切换时会停止clash服务" echo -e " 3 使用保守方式启动: \033[36m$start_old\033[0m ————切换时会停止clash服务"
echo -e " 4 代理本机流量: \033[36m$local_proxy\033[0m ————配置本机代理环境变量" echo -e " 4 代理本机流量: \033[36m$local_proxy\033[0m ————配置本机代理环境变量"
echo -e " 5 手动指定clash运行端口及秘钥" echo -e " 5 手动指定clash运行端口及秘钥"
echo -e " 6 手动配置内置DNS设置" echo -e " 6 手动配置内置DNS服务"
echo ----------------------------------------------- echo -----------------------------------------------
echo -e " 8 \033[31m重置\033[0m配置文件" echo -e " 8 \033[31m重置\033[0m配置文件"
echo -e " 9 \033[32m重启\033[0mclash服务" echo -e " 9 \033[32m重启\033[0mclash服务"

View File

@@ -458,12 +458,41 @@ getdb(){
#host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';) #host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[36m安装本地版dashboard管理面板\033[0m" echo -e "\033[36m安装本地版dashboard管理面板\033[0m"
echo -e "\033[32m打开管理面板的速度更快且更稳定\033[0m"
echo ----------------------------------------------- echo -----------------------------------------------
echo -e "\033[32m打开管理面板的速度更快且更稳定" echo -e "请选择面板\033[33m安装类型\033[0m"
echo -e "\033[33m需要占用约500kb的本地空间\033[0m"
echo ----------------------------------------------- echo -----------------------------------------------
echo -e " 1 $clashdir/ui目录安装推荐\033[33m安装后需重启clash服务\033[0m" echo -e " 1 安装\033[32m官方面板\033[0m(约500kb)"
echo " 2 在/www/clash目录安装(依赖路由器自带的Nginx服务可能安装失败)" echo -e " 2 安装\033[32mYacd面板\033[0m(约1.1mb)"
echo -e " 3 卸载\033[33m本地面板\033[0m"
echo " 0 返回上级菜单"
read -p "请输入对应数字 > " num
if [ -z "$num" ];then
update
elif [ "$num" = '1' ]; then
db_type=clashdb
elif [ "$num" = '2' ]; then
db_type=yacd
elif [ "$num" = '3' ]; then
read -p "确认卸载本地面板?(1/0) > " res
if [ "$res" = 1 ];then
rm -rf /www/clash
rm -rf $clashdir/ui
echo -----------------------------------------------
echo -e "\033[31m面板已经卸载\033[0m"
sleep 1
fi
update
else
echo -e "\033[31m请输入正确的数字\033[0m"
update
fi
echo -----------------------------------------------
echo -e "请选择面板\033[33m安装目录\033[0m"
echo -----------------------------------------------
echo -e " 1 在$clashdir/ui目录安装(推荐安装后会自动重启clash服务)"
echo -e " 2 在/www/clash目录安装(依赖Openwrt的Nginx服务可能失败)"
echo ----------------------------------------------- echo -----------------------------------------------
echo " 0 返回上级菜单" echo " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
@@ -472,7 +501,7 @@ if [ -z "$num" ];then
update update
elif [ "$num" = '1' ]; then elif [ "$num" = '1' ]; then
dbdir=$clashdir/ui dbdir=$clashdir/ui
hostdir=":$db_port/ui\033[0;36m访问面板(需重启clash服务)" hostdir=":$db_port/ui\033[0;36m访问面板"
elif [ "$num" = '2' ]; then elif [ "$num" = '2' ]; then
dbdir=/www/clash dbdir=/www/clash
hostdir='/clash\033[0;36m访问面板' hostdir='/clash\033[0;36m访问面板'
@@ -481,9 +510,9 @@ else
fi fi
#下载及安装 #下载及安装
if [ -d /www/clash -o -d $clashdir/ui ];then if [ -d /www/clash -o -d $clashdir/ui ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -----------------------------------------------
echo -e "\033[31m检测到您已经安装过本地面板了\033[0m" echo -e "\033[31m检测到您已经安装过本地面板了\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -----------------------------------------------
read -p "是否覆盖安装?[1/0] > " res read -p "是否覆盖安装?[1/0] > " res
if [ -z "$res" ]; then if [ -z "$res" ]; then
update update
@@ -494,28 +523,34 @@ fi
update update
fi fi
fi fi
dblink="$update_url/bin/clashdb.tar.gz" dblink="${update_url}/bin/${db_type}.tar.gz"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -----------------------------------------------
echo 正在连接服务器获取安装文件………… echo 正在连接服务器获取安装文件…………
result=$(curl -w %{http_code} -kLo /tmp/clashdb.tar.gz $dblink) result=$(curl -w %{http_code} -kLo /tmp/clashdb.tar.gz $dblink)
if [ "$result" != "200" ];then if [ "$result" != "200" ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -----------------------------------------------
echo -e "\033[31m文件下载失败\033[0m" echo -e "\033[31m文件下载失败\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -----------------------------------------------
getdb getdb
else else
echo -e "\033[33m下载成功正在解压文件\033[0m" echo -e "\033[33m下载成功正在解压文件\033[0m"
mkdir -p $dbdir > /dev/null mkdir -p $dbdir > /dev/null
tar -zxvf '/tmp/clashdb.tar.gz' -C $dbdir > /dev/null tar -zxvf "/tmp/clashdb.tar.gz" -C $dbdir > /dev/null
[ $? -ne 0 ] && echo "文件解压失败!" && exit 1 [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
#修改默认host和端口 #修改默认host和端口
sed -i "s/127.0.0.1/${host}/g" $dbdir/js/*.js if [ "$db_type" = "clashdb" ];then
sed -i "s/9090/${db_port}/g" $dbdir/js/*.js sed -i "s/127.0.0.1/${host}/g" $dbdir/js/*.js
# sed -i "s/9090/${db_port}/g" $dbdir/js/*.js
else
sed -i "s/127.0.0.1/${host}/g" $dbdir/app*.js
sed -i "s/7892/${db_port}/g" $dbdir/app*.js
fi
[ "$dbdir" != "/www/clash" ] && $clashdir/start.sh restart
echo -----------------------------------------------
echo -e "\033[32m面板安装成功\033[0m" echo -e "\033[32m面板安装成功\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[36m请使用\033[32;4mhttp://$host$hostdir\033[0m" echo -e "\033[36m请使用\033[32;4mhttp://$host$hostdir\033[0m"
rm -rf /tmp/clashdb.tar.gz rm -rf /tmp/clashdb.tar.gz
sleep 1
update update
fi fi
@@ -583,7 +618,7 @@ elif [[ $num == 4 ]]; then
update update
fi fi
elif [[ $num == 9 ]]; then elif [[ $num == 9 ]]; then
update_url='http://127.0.0.1:8080/clash-for-Miwifi' update_url='http://192.168.31.30:8080/clash-for-Miwifi'
else else
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"

View File

@@ -279,8 +279,8 @@ start_dns(){
ip6tables -t nat -A clashv6_dns -p udp --dport 53 -j REDIRECT --to $dns_port > /dev/null 2>&1 ip6tables -t nat -A clashv6_dns -p udp --dport 53 -j REDIRECT --to $dns_port > /dev/null 2>&1
ip6tables -t nat -A PREROUTING -p udp -j clashv6_dns > /dev/null 2>&1 ip6tables -t nat -A PREROUTING -p udp -j clashv6_dns > /dev/null 2>&1
else else
ip6tables -I INPUT -p tcp --dport 53 -j REJECT ip6tables -I INPUT -p tcp --dport 53 -j REJECT
ip6tables -I INPUT -p udp --dport 53 -j REJECT ip6tables -I INPUT -p udp --dport 53 -j REJECT
fi fi
} }
daemon(){ daemon(){
@@ -336,7 +336,7 @@ afstart(){
getconfig getconfig
#修改iptables规则使流量进入clash #修改iptables规则使流量进入clash
stop_iptables stop_iptables
[ "$redir_mod" != "纯净模式" ] && start_dns [ "$redir_mod" != "纯净模式" ] && [ "$dns_no" != "true" ] && start_dns
[ "$redir_mod" != "纯净模式" ] && [ "$redir_mod" != "Tun模式" ] && start_redir [ "$redir_mod" != "纯净模式" ] && [ "$redir_mod" != "Tun模式" ] && start_redir
#标记启动时间 #标记启动时间
mark_time mark_time