v1.0.0beta15.1
~新增自定义http/sock5代理认证功能 ~新增支持安装内置yacd面板 ~增加自定义DNS配置功能 ~优化安装脚本 ~修复部分设备无法正常显示局域网连接ip/mac的bug ~修复iptables报错的bug ~同步最新版本Geoip数据库文件
This commit is contained in:
Binary file not shown.
@@ -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=20201021
|
GeoIP_v=20201021
|
||||||
versionsh=1.0.0beta15.1
|
versionsh=1.0.0beta15.2
|
||||||
|
|||||||
53
install.sh
53
install.sh
@@ -11,13 +11,19 @@ echo "** by Juewuy **"
|
|||||||
echo "***********************************************"
|
echo "***********************************************"
|
||||||
|
|
||||||
#检查root权限
|
#检查root权限
|
||||||
[ "$USER" != "root" ] && [ "$USER" != "admin" ] && echo 请使用root用户执行安装!&& exit 1
|
if [ "$USER" != "root" ];then
|
||||||
|
echo 当前用户:$USER
|
||||||
|
$echo "\033[31m请尽量使用root用户执行安装!\033[0m"
|
||||||
|
echo -----------------------------------------------
|
||||||
|
read -p "仍要安装?可能会产生未知错误!(1/0) > " res
|
||||||
|
[ "$res" != "1" ] && exit
|
||||||
|
fi
|
||||||
|
|
||||||
#检查更新
|
#检查更新
|
||||||
url="https://cdn.jsdelivr.net/gh/juewuy/ShellClash"
|
url="https://cdn.jsdelivr.net/gh/juewuy/ShellClash"
|
||||||
if [ "$test" -gt 0 ];then
|
if [ "$test" -gt 0 ];then
|
||||||
url="--resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master"
|
url="--resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master"
|
||||||
[ "$test" -eq 2 ] && url="http://192.168.31.30:8080/clash-for-Miwifi" && echo $url
|
[ "$test" -eq 2 ] && url="http://192.168.31.30:8080/clash-for-Miwifi"
|
||||||
[ "$test" -eq 3 ] && url="http://192.168.123.90:8080/clash-for-Miwifi"
|
[ "$test" -eq 3 ] && url="http://192.168.123.90:8080/clash-for-Miwifi"
|
||||||
else
|
else
|
||||||
release_new=$(curl -kfsSL --resolve api.github.com:443:140.82.113.5 "https://api.github.com/repos/juewuy/ShellClash/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') #检查版本
|
release_new=$(curl -kfsSL --resolve api.github.com:443:140.82.113.5 "https://api.github.com/repos/juewuy/ShellClash/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') #检查版本
|
||||||
@@ -43,14 +49,13 @@ gettar(){
|
|||||||
mv $clashdir/clashservice /etc/init.d/clash
|
mv $clashdir/clashservice /etc/init.d/clash
|
||||||
chmod 777 /etc/init.d/clash
|
chmod 777 /etc/init.d/clash
|
||||||
else
|
else
|
||||||
[ -d /etc/systemd/system/ ] && sysdir=/etc/systemd/system/
|
[ -w /etc/systemd/system ] && sysdir=/etc/systemd/system
|
||||||
[ -d /usr/lib/systemd/system/ ] && sysdir=/usr/lib/systemd/system/
|
[ -w /usr/lib/systemd/system ] && sysdir=/usr/lib/systemd/system
|
||||||
if [ -n "$sysdir" ];then
|
if [ -n "$sysdir" ];then
|
||||||
#设为systemd方式启动
|
#设为systemd方式启动
|
||||||
mv $clashdir/clash.service $sysdir/clash.service
|
mv $clashdir/clash.service $sysdir/clash.service
|
||||||
sed -i "s%/etc/clash%$clashdir%g" $sysdir/clash.service
|
sed -i "s%/etc/clash%$clashdir%g" $sysdir/clash.service
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
rm -rf /etc/init.d/clash
|
|
||||||
else
|
else
|
||||||
#设为保守模式启动
|
#设为保守模式启动
|
||||||
sed -i '/start_old=*/'d $clashdir/mark
|
sed -i '/start_old=*/'d $clashdir/mark
|
||||||
@@ -64,10 +69,12 @@ gettar(){
|
|||||||
sed -i '/versionsh_l=*/'d $clashdir/mark
|
sed -i '/versionsh_l=*/'d $clashdir/mark
|
||||||
sed -i "1i\versionsh_l=$release_new" $clashdir/mark
|
sed -i "1i\versionsh_l=$release_new" $clashdir/mark
|
||||||
#设置环境变量
|
#设置环境变量
|
||||||
sed -i '/alias clash=*/'d /etc/profile
|
[ -w $HOME/.bashrc ] && profile=$HOME/.bashrc
|
||||||
echo "alias clash=\"$shtype $clashdir/clash.sh\"" >> /etc/profile #设置快捷命令环境变量
|
[ -w /etc/profile ] && profile=/etc/profile
|
||||||
sed -i '/export clashdir=*/'d /etc/profile
|
sed -i '/alias clash=*/'d $profile
|
||||||
echo "export clashdir=\"$clashdir\"" >> /etc/profile #设置clash路径环境变量
|
echo "alias clash=\"$shtype $clashdir/clash.sh\"" >> $profile #设置快捷命令环境变量
|
||||||
|
sed -i '/export clashdir=*/'d $profile
|
||||||
|
echo "export clashdir=\"$clashdir\"" >> $profile #设置clash路径环境变量
|
||||||
#删除临时文件
|
#删除临时文件
|
||||||
rm -rf /tmp/clashfm.tar.gz
|
rm -rf /tmp/clashfm.tar.gz
|
||||||
rm -rf $clashdir/clashservice
|
rm -rf $clashdir/clashservice
|
||||||
@@ -86,10 +93,13 @@ $echo "\033[33m输入\033[30;47m clash \033[0;33m命令即可管理!!!\033
|
|||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
}
|
}
|
||||||
setdir(){
|
setdir(){
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
$echo "\033[32m 1 在默认目录(/etc)安装"
|
$echo "\033[33m安装ShellClash至少需要预留约10MB的磁盘空间\033[0m"
|
||||||
$echo "\033[33m 2 手动设置安装目录"
|
$echo " 1 在\033[32m/etc目录\033[0m下安装(适合路由设备)"
|
||||||
$echo "\033[0m 0 退出安装"
|
$echo " 2 在\033[32m/usr/share目录\033[0m下安装(适合大多数设备)"
|
||||||
|
$echo " 3 在\033[32m当前用户目录\033[0m下安装(适合非root用户)"
|
||||||
|
$echo " 4 手动设置安装目录"
|
||||||
|
$echo " 0 退出安装"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
read -p "请输入相应数字 > " num
|
read -p "请输入相应数字 > " num
|
||||||
#设置目录
|
#设置目录
|
||||||
@@ -99,19 +109,27 @@ if [ -z $num ];then
|
|||||||
elif [ "$num" = "1" ];then
|
elif [ "$num" = "1" ];then
|
||||||
dir=/etc
|
dir=/etc
|
||||||
elif [ "$num" = "2" ];then
|
elif [ "$num" = "2" ];then
|
||||||
|
dir=/usr/share
|
||||||
|
elif [ "$num" = "3" ];then
|
||||||
|
dir=$HOME/.local/share
|
||||||
|
mkdir -p $HOME/.config/systemd/user
|
||||||
|
elif [ "$num" = "4" ];then
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo '可用路径 剩余空间:'
|
echo '可用路径 剩余空间:'
|
||||||
df -h | awk '{print $6,$2}'| sed 1d
|
df -h | awk '{print $6,$4}'| sed 1d
|
||||||
echo '路径是必须带 / 的格式,写入虚拟内存(/tmp,/sys,..)的文件会在重启后消失!!!'
|
echo '路径是必须带 / 的格式,写入虚拟内存(/tmp,/sys,..)的文件会在重启后消失!!!'
|
||||||
read -p "请输入自定义路径 > " dir
|
read -p "请输入自定义路径 > " dir
|
||||||
if [ -z "$dir" ];then
|
if [ -z "$dir" ];then
|
||||||
$echo "\033[31m路径错误!已取消安装!\033[0m"
|
$echo "\033[31m路径错误!请重新设置!\033[0m"
|
||||||
exit;
|
setdir
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo 安装已取消!!!
|
echo 安装已取消!!!
|
||||||
exit;
|
exit;
|
||||||
fi
|
fi
|
||||||
|
echo 目标目录磁盘剩余:$(df -h $dir | awk '{print $4}' | sed 1d )
|
||||||
|
read -p "确认安装?(1/0) > " res
|
||||||
|
[ "$res" != "1" ] && setdir
|
||||||
clashdir=$dir/clash
|
clashdir=$dir/clash
|
||||||
install
|
install
|
||||||
}
|
}
|
||||||
@@ -135,6 +153,9 @@ if [ -n "$clashdir" ];then
|
|||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
$echo "\033[31m 旧版本文件已卸载!\033[0m"
|
$echo "\033[31m 旧版本文件已卸载!\033[0m"
|
||||||
setdir
|
setdir
|
||||||
|
elif [ "$res" = "9" ];then
|
||||||
|
echo 测试模式,变更安装位置
|
||||||
|
setdir
|
||||||
else
|
else
|
||||||
$echo "\033[31m输入错误!已取消安装!\033[0m"
|
$echo "\033[31m输入错误!已取消安装!\033[0m"
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
@@ -573,9 +573,11 @@ echo -----------------------------------------------
|
|||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 返回上级菜单"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "请输入对应数字 > " num
|
||||||
if [ "$num" = '1' ]; then
|
if [ "$num" = '1' ]; then
|
||||||
echo 'function FindProxyForURL(url, host) {' > $dir/pac
|
cat > $dir/pac <<EOF
|
||||||
echo " return \"SOCKS $authentication@$host:$mix_port; PROXY $authentication@$host:$mix_port; DIRECT;\"" >> $dir/pac
|
function FindProxyForURL(url, host) {
|
||||||
echo '}' >> $dir/pac
|
return "PROXY $authentication@$host:$mix_port; DIRECT;"
|
||||||
|
}
|
||||||
|
EOF
|
||||||
echo -e "\033[33mPAC文件已生成!\033[0m"
|
echo -e "\033[33mPAC文件已生成!\033[0m"
|
||||||
echo -e "PAC地址:\033[32m$pac\033[0m"
|
echo -e "PAC地址:\033[32m$pac\033[0m"
|
||||||
echo "使用教程:https://baike.baidu.com/item/PAC/16292100"
|
echo "使用教程:https://baike.baidu.com/item/PAC/16292100"
|
||||||
|
|||||||
@@ -266,7 +266,6 @@ start_dns(){
|
|||||||
iptables -t nat -A clash_dns -p udp --dport 53 -j REDIRECT --to $dns_port
|
iptables -t nat -A clash_dns -p udp --dport 53 -j REDIRECT --to $dns_port
|
||||||
iptables -t nat -A clash_dns -p tcp --dport 53 -j REDIRECT --to $dns_port
|
iptables -t nat -A clash_dns -p tcp --dport 53 -j REDIRECT --to $dns_port
|
||||||
iptables -t nat -A PREROUTING -p udp -j clash_dns
|
iptables -t nat -A PREROUTING -p udp -j clash_dns
|
||||||
iptables -t nat -A OUTPUT -p udp -j clash_dns
|
|
||||||
#Google home DNS特殊处理
|
#Google home DNS特殊处理
|
||||||
iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 -j clash_dns
|
iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 -j clash_dns
|
||||||
iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j clash_dns
|
iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j clash_dns
|
||||||
|
|||||||
Reference in New Issue
Block a user