mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-04-25 11:59:17 +00:00
Compare commits
3 Commits
13ed653c2e
...
1e10113665
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e10113665 | ||
|
|
aa21581057 | ||
|
|
04503ab921 |
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
meta_v=v1.19.17
|
||||
singboxr_v=1.13.0-alpha.27
|
||||
versionsh=1.9.5alpha13
|
||||
versionsh=1.9.5alpha14
|
||||
GeoIP_v=20251205
|
||||
|
||||
@@ -55,8 +55,6 @@ EOF
|
||||
respect-rules: true
|
||||
nameserver-policy: {'rule-set:cn': [ $dns_nameserver ]}
|
||||
proxy-server-nameserver : [ $dns_proxy_server ]
|
||||
proxy-server-nameserver-policy:
|
||||
'+.cloud-nodes.com': '124.221.68.73:1053'
|
||||
nameserver: [ $dns_final ]
|
||||
EOF
|
||||
else
|
||||
@@ -203,12 +201,12 @@ add_custom_inbounds_and_rules() {
|
||||
}
|
||||
}
|
||||
|
||||
generate_rule_providers_and_merge_yaml() {
|
||||
merger_yaml() {
|
||||
#mix和route模式生成rule-providers
|
||||
[ "$dns_mod" = "mix" ] || [ "$dns_mod" = "route" ] && ! grep -Eq '^[[:space:]]*cn:' "$TMPDIR"/rule-providers.yaml && ! grep -q '^rule-providers' "$CRASHDIR"/yamls/others.yaml 2>/dev/null && {
|
||||
space=$(sed -n "1p" "$TMPDIR"/rule-providers.yaml | grep -oE '^ *') #获取空格数
|
||||
[ -z "$space" ] && space=' '
|
||||
echo "${space}cn: {type: http, behavior: domain, format: mrs, path: ./ruleset/cn.mrs, url: https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@update/bin/geodata/mrs_geosite_cn.mrs}" >>"$TMPDIR"/rule-providers.yaml
|
||||
echo "${space}cn: {type: http, behavior: domain, format: mrs, path: ./ruleset/cn.mrs, interval: 86400, url: https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@update/bin/geodata/mrs_geosite_cn.mrs}" >>"$TMPDIR"/rule-providers.yaml
|
||||
}
|
||||
#对齐rules中的空格
|
||||
sed -i 's/^ *-/ -/g' "$TMPDIR"/rules.yaml
|
||||
@@ -235,7 +233,7 @@ generate_rule_providers_and_merge_yaml() {
|
||||
cut -c 1- "$TMPDIR"/set.yaml $yaml_dns $yaml_hosts $yaml_user $yaml_others $yaml_add >"$TMPDIR"/config.yaml
|
||||
}
|
||||
|
||||
validate_and_rebuild_yaml_if_needed() {
|
||||
test_yaml() {
|
||||
#测试自定义配置文件
|
||||
"$TMPDIR"/CrashCore -t -d "$BINDIR" -f "$TMPDIR"/config.yaml >/dev/null
|
||||
if [ "$?" != 0 ]; then
|
||||
@@ -266,7 +264,7 @@ modify_yaml() {
|
||||
generate_set_and_hosts_yaml
|
||||
split_and_customize_yaml_parts
|
||||
add_custom_inbounds_and_rules
|
||||
generate_rule_providers_and_merge_yaml
|
||||
validate_and_rebuild_yaml_if_needed
|
||||
merger_yaml
|
||||
test_yaml
|
||||
finalize_clash_yaml
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@ getlanip() { #获取局域网host地址
|
||||
i=1
|
||||
while [ "$i" -le "20" ]; do
|
||||
#ipv4局域网网段
|
||||
host_ipv4=$(ip route show scope link | grep -Ev 'wan|utun|iot|peer|docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet' | awk '{print $1}')
|
||||
host_ipv4=$(ip route show scope link | grep -Ev 'wan|utun|iot|peer|docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet|wgs|multicast|anycast' | awk '{print $1}')
|
||||
#ipv6局域网网段 - 从IPv4已识别的LAN接口获取全局IPv6前缀
|
||||
[ "$ipv6_redir" = "ON" ] && {
|
||||
lan_ifaces=$(ip route show scope link | grep -Ev 'ppp|wan|utun|iot|peer|docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet' | awk '{for(i=1;i<=NF;i++) if($i=="dev") {print $(i+1); break}}' | grep -v '^lo$' | sort -u)
|
||||
lan_ifaces=$(ip route show scope link | grep -Ev 'ppp|wan|utun|iot|peer|docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet|wgs|multicast|anycast' | awk '{for(i=1;i<=NF;i++) if($i=="dev") {print $(i+1); break}}' | grep -v '^lo$' | sort -u)
|
||||
host_ipv6=$(
|
||||
for iface in $lan_ifaces; do
|
||||
ip -6 addr show dev $iface 2>/dev/null
|
||||
done | grep 'scope global' | awk '{print $2}' | tr '\n' ' ' | sed 's/ $//'
|
||||
)
|
||||
[ -z "$host_ipv6" ] && host_ipv6=$(ip -6 route show | grep -Ev 'default|unreachable|fe80::/|wan|ppp|utun|iot|peer|docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet|multicast|anycast' | awk '{print $1}' | tr '\n' ' ' | sed 's/ $//')
|
||||
[ -z "$host_ipv6" ] && host_ipv6=$(ip -6 route show | grep -Ev 'default|unreachable|fe80::/|wan|ppp|utun|iot|peer|docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet|wgs|multicast|anycast' | awk '{print $1}' | tr '\n' ' ' | sed 's/ $//')
|
||||
}
|
||||
[ -f "$TMPDIR"/ShellCrash.log ] && break
|
||||
[ -n "$host_ipv4" -a "$ipv6_redir" != "ON" ] && break
|
||||
|
||||
Reference in New Issue
Block a user