diff --git a/omr-bypass/files/etc/init.d/omr-bypass-nft b/omr-bypass/files/etc/init.d/omr-bypass-nft index a6a8a01ec..6c38601d2 100755 --- a/omr-bypass/files/etc/init.d/omr-bypass-nft +++ b/omr-bypass/files/etc/init.d/omr-bypass-nft @@ -444,7 +444,7 @@ _bypass_proto_without_ndpi() { uci -q add_list firewall.bypass_$proto.entry=$ip else #ipset -q add omr_dst_bypass_$intf $ip - uci -q add_list firewall.omr_dst_bypass_$intf_4.entry=$ip + uci -q add_list firewall.omr_dst_bypass_${intf}_4.entry=$ip fi elif [ "$valid_ip6" = "ok" ]; then if [ "$vpn" != "1" ]; then @@ -452,7 +452,7 @@ _bypass_proto_without_ndpi() { uci -q add_list firewall.bypass6_$proto.entry=$ip else #ipset -q add omr6_dst_bypass_$intf $ip - uci -q add_list firewall.omr6_dst_bypass_$intf_4.entry=$ip + uci -q add_list firewall.omr_dst_bypass_${intf}_6.entry=$ip fi fi done @@ -572,6 +572,11 @@ _intf_rule() { set firewall.omr_dst_bypass_${intf}_4=ipset set firewall.omr_dst_bypass_${intf}_4.name="omr_dst_bypass_${intf}_4" set firewall.omr_dst_bypass_${intf}_4.match='dest_ip' + set firewall.omr_dst_bypass_${intf}_4.enabled='1' + set firewall.omr_dst_bypass_${intf}_6=ipset + set firewall.omr_dst_bypass_${intf}_6.name="omr_dst_bypass_${intf}_6" + set firewall.omr_dst_bypass_${intf}_6.match='dest_ip' + set firewall.omr_dst_bypass_${intf}_6.enabled='1' EOF #echo "firewall omr_dst_bypass rules" if [ "$disableipv6" = "0" ]; then @@ -686,8 +691,10 @@ _intf_rule() { _intf_rule_xray_rules fi - uci -q set omr-bypass.$intf=interface - uci -q set omr-bypass.$intf.id=$count + if [ "$intf" != "all" ]; then + uci -q set omr-bypass.$intf=interface + uci -q set omr-bypass.$intf.id=$count + fi } _bypass_ip_set() { diff --git a/shadowsocks-libev/files/shadowsocks-libev.init-nft b/shadowsocks-libev/files/shadowsocks-libev.init-nft index f8121fe7c..c69eade3c 100755 --- a/shadowsocks-libev/files/shadowsocks-libev.init-nft +++ b/shadowsocks-libev/files/shadowsocks-libev.init-nft @@ -11,6 +11,8 @@ START=99 EXTRA_COMMANDS="rules_up rules_down rules_exist" +. /usr/lib/unbound/iptools.sh + ss_confdir=/var/etc/shadowsocks-libev ss_bindir=/usr/bin @@ -45,17 +47,17 @@ ss_mkjson_server_conf_() { [ -z "$plugin" ] || json_add_string plugin "$plugin" [ -z "$plugin_opts" ] || json_add_string plugin_opts "$plugin_opts" if [ "$obfs" = 1 ]; then - if [ "$obfs_plugin" = "obfs" ]; then - obfs_options="obfs=$obfs_type" - [ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host" - [ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri" - [ "$fast_open" = 1 ] && obfs_options="$obfs_options;fast-open" - [ "$mptcp" = 1 ] && obfs_options="$obfs_options;mptcp" - [ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout" - json_add_string plugin "/usr/bin/obfs-local" - json_add_string plugin_opts "$obfs_options" - fi - if [ "$obfs_plugin" = "v2ray" ]; then + if [ "$obfs_plugin" = "obfs" ]; then + obfs_options="obfs=$obfs_type" + [ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host" + [ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri" + [ "$fast_open" = 1 ] && obfs_options="$obfs_options;fast-open" + [ "$mptcp" = 1 ] && obfs_options="$obfs_options;mptcp" + [ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout" + json_add_string plugin "/usr/bin/obfs-local" + json_add_string plugin_opts "$obfs_options" + fi + if [ "$obfs_plugin" = "v2ray" ]; then obfs_options="loglevel=default" [ "$obfs_type" = "tls" ] && obfs_options="tls" [ -z "$obfs_host" ] || obfs_options="$obfs_options;host=$obfs_host" @@ -135,7 +137,11 @@ ss_rules_cb() { if [ "$cfgtype" = ss_redir ]; then config_get cfgserver "$cfg" server config_get server "$cfgserver" server - ss_redir_servers="$ss_redir_servers $server" + if [ -z "$ss_redir_servers" ]; then + ss_redir_servers="$server" + else + ss_redir_servers="$ss_redir_servers $server" + fi if [ "$mode" = tcp_only -o "$mode" = "tcp_and_udp" ]; then eval "ss_rules_redir_tcp_$cfg=$local_port" fi @@ -193,7 +199,15 @@ ss_rules_nft_gen() { eval local_port_udp="\$ss_rules_redir_udp_$redir_udp" fi [ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1 - remote_servers="$(echo $ss_redir_servers \ + + if [ -z "$(echo $ss_redir_servers | grep ' ')" ]; then + valid_ip4=$( valid_subnet4 $ss_redir_servers) + valid_ip6=$( valid_subnet6 $ss_redir_servers) + if [ "$valid_ip4" = "ok" ] || [ "$valid_ip6" = "ok" ]; then + remote_servers=$ss_redir_servers + fi + fi + [ -z "$remote_servers" ] && remote_servers="$(echo $ss_redir_servers \ | tr ' ' '\n' \ | sort -u \ | xargs -n 1 resolveip \ diff --git a/shadowsocks-rust/files/shadowsocks-rust.init-nft b/shadowsocks-rust/files/shadowsocks-rust.init-nft index 7a48c152f..158df38f7 100755 --- a/shadowsocks-rust/files/shadowsocks-rust.init-nft +++ b/shadowsocks-rust/files/shadowsocks-rust.init-nft @@ -11,6 +11,8 @@ START=99 EXTRA_COMMANDS="rules_up rules_down rules_exist" +. /usr/lib/unbound/iptools.sh + ss_confdir=/var/etc/shadowsocks-rust ss_bindir=/usr/bin @@ -108,7 +110,11 @@ ss_rules_cb() { if [ "$cfgtype" = ss_redir ]; then config_get cfgserver "$cfg" server config_get server "$cfgserver" server - ss_redir_servers="$ss_redir_servers $server" + if [ -z "$ss_redir_servers" ]; then + ss_redir_servers="$server" + else + ss_redir_servers="$ss_redir_servers $server" + fi if [ "$mode" = tcp_only -o "$mode" = "tcp_and_udp" ]; then eval "ss_rules_redir_tcp_$cfg=$local_port" fi @@ -164,7 +170,15 @@ ss_rules_nft_gen() { fi [ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1 - remote_servers="$(echo $ss_redir_servers \ + + if [ -z "$(echo $ss_redir_servers | grep ' ')" ]; then + valid_ip4=$( valid_subnet4 $ss_redir_servers) + valid_ip6=$( valid_subnet6 $ss_redir_servers) + if [ "$valid_ip4" = "ok" ] || [ "$valid_ip6" = "ok" ]; then + remote_servers=$ss_redir_servers + fi + fi + [ -z "$remote_servers" ] && remote_servers="$(echo $ss_redir_servers \ | tr ' ' '\n' \ | sort -u \ | xargs -n 1 resolveip \ diff --git a/z8102/files/etc/init.d/z8102 b/z8102/files/etc/init.d/z8102 index 67f2cc068..fc8aad8f0 100755 --- a/z8102/files/etc/init.d/z8102 +++ b/z8102/files/etc/init.d/z8102 @@ -16,42 +16,60 @@ start_service() #echo $i > /sys/class/gpio/export #echo "out" > /sys/class/gpio/gpio${i}/direction #echo "0" > /sys/class/gpio/gpio${i}/value - echo "0" > /sys/class/gpio/sim1/value - #gpioset `gpiofind "sim1"`=0 + if [ -e /sys/class/gpio/sim1/value ]; then + echo "0" > /sys/class/gpio/sim1/value + else + gpioset `gpiofind "sim1"`=0 + fi # sim 2 #i=462 #echo $i > /sys/class/gpio/export #echo "out" > /sys/class/gpio/gpio${i}/direction #echo "0" > /sys/class/gpio/gpio${i}/value - echo "0" > /sys/class/gpio/sim2/value - #gpioset `gpiofind "sim2"`=0 + if [ -e /sys/class/gpio/sim2/value ]; then + echo "0" > /sys/class/gpio/sim2/value + else + gpioset `gpiofind "sim2"`=0 + fi # stop modem 1 #i=459 #echo $i > /sys/class/gpio/export #echo "out" > /sys/class/gpio/gpio${i}/direction #echo "0" > /sys/class/gpio/gpio${i}/value - echo "0" > /sys/class/gpio/modem1/value - #gpioset `gpiofind "modem1"`=0 + if [ -e /sys/class/gpio/modem1/value ]; then + echo "0" > /sys/class/gpio/modem1/value + else + gpioset `gpiofind "modem1"`=0 + fi # stop modem 2 #i=460 #echo $i > /sys/class/gpio/export #echo "out" > /sys/class/gpio/gpio${i}/direction #echo "0" > /sys/class/gpio/gpio${i}/value - echo "0" > /sys/class/gpio/modem2/value - #gpioset `gpiofind "modem2"`=0 + if [ -e /sys/class/gpio/modem2/value ]; then + echo "0" > /sys/class/gpio/modem2/value + else + gpioset `gpiofind "modem2"`=0 + fi sleep 1 # run modem 1 #i=459 #echo "1" > /sys/class/gpio/gpio${i}/value - echo "1" > /sys/class/gpio/modem1/value - #gpioset `gpiofind "modem1"`=1 + if [ -e /sys/class/gpio/modem1/value ]; then + echo "1" > /sys/class/gpio/modem1/value + else + gpioset `gpiofind "modem1"`=1 + fi sleep 3 # run modem 2 #i=460 #echo "1" > /sys/class/gpio/gpio${i}/value - echo "1" > /sys/class/gpio/modem2/value - #gpioset `gpiofind "modem2"`=1 + if [ -e /sys/class/gpio/modem2/value ]; then + echo "1" > /sys/class/gpio/modem2/value + else + gpioset `gpiofind "modem2"`=1 + fi }