gfw2ipset.sh 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/bin/sh
  2. . $IPKG_INSTROOT/etc/init.d/shadowsocksr
  3. netflix() {
  4. if [ -f "$TMP_DNSMASQ_PATH/gfw_list.conf" ]; then
  5. for line in $(cat /etc/ssrplus/netflix.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done
  6. for line in $(cat /etc/ssrplus/netflix.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done
  7. fi
  8. cat /etc/ssrplus/netflix.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/server=\/&\/127.0.0.1#$1\nipset=\/&\/netflix/" >$TMP_DNSMASQ_PATH/netflix_forward.conf
  9. }
  10. mkdir -p $TMP_DNSMASQ_PATH
  11. if [ "$(uci_get_by_type global run_mode router)" == "oversea" ]; then
  12. cp -rf /etc/ssrplus/oversea_list.conf $TMP_DNSMASQ_PATH/
  13. else
  14. cp -rf /etc/ssrplus/gfw_list.conf $TMP_DNSMASQ_PATH/
  15. cp -rf /etc/ssrplus/gfw_base.conf $TMP_DNSMASQ_PATH/
  16. fi
  17. case "$(uci_get_by_type global netflix_server nil)" in
  18. nil)
  19. rm -f $TMP_DNSMASQ_PATH/netflix_forward.conf
  20. ;;
  21. $(uci_get_by_type global global_server nil) | $switch_server | same)
  22. netflix $dns_port
  23. ;;
  24. *)
  25. netflix $tmp_shunt_dns_port
  26. ;;
  27. esac
  28. for line in $(cat /etc/ssrplus/black.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done
  29. for line in $(cat /etc/ssrplus/black.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done
  30. for line in $(cat /etc/ssrplus/white.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done
  31. for line in $(cat /etc/ssrplus/white.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done
  32. for line in $(cat /etc/ssrplus/deny.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done
  33. for line in $(cat /etc/ssrplus/deny.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done
  34. cat /etc/ssrplus/black.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/server=\/&\/127.0.0.1#$dns_port\nipset=\/&\/blacklist/" >$TMP_DNSMASQ_PATH/blacklist_forward.conf
  35. cat /etc/ssrplus/white.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/server=\/&\/127.0.0.1\nipset=\/&\/whitelist/" >$TMP_DNSMASQ_PATH/whitelist_forward.conf
  36. cat /etc/ssrplus/deny.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/address=\/&\//" >$TMP_DNSMASQ_PATH/denylist.conf
  37. if [ "$(uci_get_by_type global adblock 0)" == "1" ]; then
  38. cp -f /etc/ssrplus/ad.conf $TMP_DNSMASQ_PATH/
  39. if [ -f "$TMP_DNSMASQ_PATH/ad.conf" ]; then
  40. for line in $(cat /etc/ssrplus/black.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/ad.conf; done
  41. for line in $(cat /etc/ssrplus/white.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/ad.conf; done
  42. for line in $(cat /etc/ssrplus/deny.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/ad.conf; done
  43. for line in $(cat /etc/ssrplus/netflix.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/ad.conf; done
  44. fi
  45. else
  46. rm -f $TMP_DNSMASQ_PATH/ad.conf
  47. fi