mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-04-25 20:10:42 +00:00
Compare commits
3 Commits
13ed653c2e
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e10113665 | ||
|
|
aa21581057 | ||
|
|
04503ab921 |
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
meta_v=v1.19.17
|
meta_v=v1.19.17
|
||||||
singboxr_v=1.13.0-alpha.27
|
singboxr_v=1.13.0-alpha.27
|
||||||
versionsh=1.9.5alpha13
|
versionsh=1.9.5alpha14
|
||||||
GeoIP_v=20251205
|
GeoIP_v=20251205
|
||||||
|
|||||||
@@ -55,8 +55,6 @@ EOF
|
|||||||
respect-rules: true
|
respect-rules: true
|
||||||
nameserver-policy: {'rule-set:cn': [ $dns_nameserver ]}
|
nameserver-policy: {'rule-set:cn': [ $dns_nameserver ]}
|
||||||
proxy-server-nameserver : [ $dns_proxy_server ]
|
proxy-server-nameserver : [ $dns_proxy_server ]
|
||||||
proxy-server-nameserver-policy:
|
|
||||||
'+.cloud-nodes.com': '124.221.68.73:1053'
|
|
||||||
nameserver: [ $dns_final ]
|
nameserver: [ $dns_final ]
|
||||||
EOF
|
EOF
|
||||||
else
|
else
|
||||||
@@ -203,12 +201,12 @@ add_custom_inbounds_and_rules() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_rule_providers_and_merge_yaml() {
|
merger_yaml() {
|
||||||
#mix和route模式生成rule-providers
|
#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 && {
|
[ "$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 '^ *') #获取空格数
|
space=$(sed -n "1p" "$TMPDIR"/rule-providers.yaml | grep -oE '^ *') #获取空格数
|
||||||
[ -z "$space" ] && space=' '
|
[ -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中的空格
|
#对齐rules中的空格
|
||||||
sed -i 's/^ *-/ -/g' "$TMPDIR"/rules.yaml
|
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
|
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
|
"$TMPDIR"/CrashCore -t -d "$BINDIR" -f "$TMPDIR"/config.yaml >/dev/null
|
||||||
if [ "$?" != 0 ]; then
|
if [ "$?" != 0 ]; then
|
||||||
@@ -266,7 +264,7 @@ modify_yaml() {
|
|||||||
generate_set_and_hosts_yaml
|
generate_set_and_hosts_yaml
|
||||||
split_and_customize_yaml_parts
|
split_and_customize_yaml_parts
|
||||||
add_custom_inbounds_and_rules
|
add_custom_inbounds_and_rules
|
||||||
generate_rule_providers_and_merge_yaml
|
merger_yaml
|
||||||
validate_and_rebuild_yaml_if_needed
|
test_yaml
|
||||||
finalize_clash_yaml
|
finalize_clash_yaml
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ getlanip() { #获取局域网host地址
|
|||||||
i=1
|
i=1
|
||||||
while [ "$i" -le "20" ]; do
|
while [ "$i" -le "20" ]; do
|
||||||
#ipv4局域网网段
|
#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局域网网段 - 从IPv4已识别的LAN接口获取全局IPv6前缀
|
||||||
[ "$ipv6_redir" = "ON" ] && {
|
[ "$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=$(
|
host_ipv6=$(
|
||||||
for iface in $lan_ifaces; do
|
for iface in $lan_ifaces; do
|
||||||
ip -6 addr show dev $iface 2>/dev/null
|
ip -6 addr show dev $iface 2>/dev/null
|
||||||
done | grep 'scope global' | awk '{print $2}' | tr '\n' ' ' | sed 's/ $//'
|
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
|
[ -f "$TMPDIR"/ShellCrash.log ] && break
|
||||||
[ -n "$host_ipv4" -a "$ipv6_redir" != "ON" ] && break
|
[ -n "$host_ipv4" -a "$ipv6_redir" != "ON" ] && break
|
||||||
|
|||||||
Reference in New Issue
Block a user