Closed zhengcan closed 3 years ago
我读了一下代码,应该是 luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh 里面的 cfg_get_alpn 函数未能正确识别 alpn 导致的:
cfg_get_alpn()
{
echo "$(grep "$1" "$2" 2>/dev/null |grep -v "^ \{0,\}- name:" |awk -v tag=$1 'BEGIN{FS=tag} {print $2}' 2>/dev/null |sed 's/,.*//' 2>/dev/null |sed 's/\}.*//' 2>/dev/null |sed 's/^ \{0,\}//g' 2>/dev/null |sed 's/ \{0,\}$//g' 2>/dev/null)"
}
猜测上诉代码仅支持 name 在 type 前面的情况,但我不会改
作为规避方法,我只会修改 yml_proxys_set.sh 里面的 set_alpn,如下:
set_alpn()
{
if [ -z "$1" ]; then
return
fi
if [ "$1" == "{type:" ]; then
return
fi
cat >> "$SERVER_FILE" <<-EOF
- $1
EOF
}
我有一个 trojan 订阅,里面有如下部分
在导入之后,生成的 clash 如下:
其中有一个
alpn: - {type:
导致 clash 加载失败 还请看一下这是怎么回事