OSDN Git Service

luci-app-unblockneteasemusic: remove ipv6 & rewrite nft debug func
authorZiMing Mo <msylgj@immortalwrt.org>
Thu, 17 Mar 2022 17:06:49 +0000 (01:06 +0800)
committerZiMing Mo <msylgj@immortalwrt.org>
Thu, 17 Mar 2022 17:06:49 +0000 (01:06 +0800)
applications/luci-app-unblockneteasemusic/root/usr/share/unblockneteasemusic/debugging.sh
applications/luci-app-unblockneteasemusic/root/usr/share/unblockneteasemusic/rules/chain.uc
applications/luci-app-unblockneteasemusic/root/usr/share/unblockneteasemusic/rules/set.uc

index 417b63e..48d5a45 100755 (executable)
@@ -64,7 +64,23 @@ echo -e "\n"
 
 [ "$procd_running_status" != "running" ] || {
        echo -e "Firewall info:"
-       [ -e "/etc/nftables.d/90-unblockneteasemusic-rules.nft" ] && cat "/etc/nftables.d/90-unblockneteasemusic-rules.nft" || echo -e 'netease_cloud_music nft rule file not found.'
+       [ -e "/etc/nftables.d/90-unblockneteasemusic-rules.nft" ] || echo -e 'netease_cloud_music nft rule file not found.'
+       echo -e ""
+       nft list set inet fw4 "acl_neteasemusic_http" 2>&1
+       echo -e ""
+       nft list set inet fw4 "acl_neteasemusic_https" 2>&1
+       echo -e ""
+       nft list set inet fw4 "local_addr" 2>&1
+       echo -e ""
+       nft list set inet fw4 "neteasemusic" 2>&1
+       echo -e ""
+       nft list chain inet fw4 "input_wan" | grep "unblockneteasemusic-http-" 2>"/dev/null" || echo -e 'Http Port pub access rule not found.'
+       echo -e ""
+       nft list chain inet fw4 "input_wan" | grep "unblockneteasemusic-https-" 2>"/dev/null" || echo -e 'Https Port pub access rule not found.'
+       echo -e ""
+       nft list chain inet fw4 "netease_cloud_music" 2>&1
+       echo -e ""
+       nft list chain inet fw4 "netease_cloud_music_redir" 2>&1
        echo -e ""
        cat "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic.conf"
        echo -e "\n"
index e301661..ee477c1 100644 (file)
@@ -17,17 +17,13 @@ chain input_wan {
 {% if (hijack_ways == "use_ipset"): %}
 chain netease_cloud_music {
        type nat hook prerouting priority -1; policy accept;
-       meta l4proto tcp ip daddr @neteasemusic_ipv4 jump netease_cloud_music_redir;
-       meta l4proto tcp ip6 daddr @neteasemusic_ipv6 jump netease_cloud_music_redir;
+       meta l4proto tcp ip daddr @neteasemusic jump netease_cloud_music_redir;
 }
 
 chain netease_cloud_music_redir {
-       ip daddr @local_addr_ipv4 return;
-       ip saddr @acl_neteasemusic_http_ipv4 accept;
-       ip saddr @acl_neteasemusic_https_ipv4 accept;
-       ip6 daddr @local_addr_ipv6 return;
-       ip6 saddr @acl_neteasemusic_http_ipv6 accept;
-       ip6 saddr @acl_neteasemusic_https_ipv6 accept;
+       ip daddr @local_addr return;
+       ip saddr @acl_neteasemusic_http accept;
+       ip saddr @acl_neteasemusic_https accept;
        tcp dport 80 counter redirect to :{{ http_port }};
        tcp dport 443 counter redirect to :{{ https_port }};
 }
index 0bcf372..b5895c8 100644 (file)
@@ -1,6 +1,6 @@
 {%
 
-let local_addr4 = "
+let o_local_bypass = "
        0.0.0.0/8
        10.0.0.0/8
        100.64.0.0/10
@@ -20,17 +20,6 @@ let local_addr4 = "
        224.0.0.0/4
        240.0.0.0/4
 ";
-let local_addr6 = "
-       ::1/128
-       ::/128
-       ::ffff:0:0/96
-       64:ff9b:1::/48
-       100::/64
-       fe80::/10
-       2001::/23
-       fc00::/7
-";
-let o_local_bypass = local_addr4 + " " + local_addr6;
 
 let set_suffix = {
        "acl_neteasemusic_http": {
@@ -47,43 +36,33 @@ let set_suffix = {
        },
 };
 
-function set_name(suf, af) {
-       if (af == 4) {
-               return suf+"_ipv4";
-       } else {
-               return suf+"_ipv6";
-       }
-}
-
-function set_elements_parse(res, str, af) {
+function set_elements_parse(res, str) {
        for (let addr in split(str, /[ \t\n]/)) {
                addr = trim(addr);
                if (!addr) continue;
-               if (af == 4 && index(addr, ":") != -1) continue;
-               if (af == 6 && index(addr, ":") == -1) continue;
                push(res, addr);
        }
 }
 
-function set_elements(suf, af) {
+function set_elements(suf) {
        let obj = set_suffix[suf];
        let res = [];
        let addr;
 
        let str = obj["str"];
        if (str) {
-               set_elements_parse(res, str, af);
+               set_elements_parse(res, str);
        }
 
        return res;
 }
 %}
 
-{% for (let suf in set_suffix): for (let af in [4, 6]): %}
-set {{ set_name(suf, af) }} {
-       type ipv{{af}}_addr;
+{% for (let suf in set_suffix): %}
+set {{ suf }} {
+       type ipv4_addr;
        flags interval;
-{%   let elems = set_elements(suf, af); if (length(elems)): %}
+{%   let elems = set_elements(suf); if (length(elems)): %}
        elements = {
 {%     for (let i = 0; i < length(elems); i++): %}
                {{ elems[i] }}{% if (i < length(elems) - 1): %},{% endif %}{% print("\n") %}
@@ -91,4 +70,4 @@ set {{ set_name(suf, af) }} {
        }
 {%   endif %}
 }
-{% endfor; endfor %}
+{% endfor %}