debugging.sh 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/sh
  2. # Copyright (C) 2021 Tianling Shen <[email protected]>
  3. . /lib/functions.sh
  4. command -v "curl" >"/dev/null" || { echo -e "curl is not found."; exit 1; }
  5. echo -e "Launching luci-app-unblockneteasmusic Debugging Tool..."
  6. echo -e "\n"
  7. echo -e "OpenWrt info:"
  8. cat "/etc/openwrt_release"
  9. echo -e "\n"
  10. echo -e "uclient-fetch info:"
  11. opkg info uclient-fetch
  12. opkg info libustream-*
  13. uclient-fetch -O- 'https://api.github.com/repos/UnblockNeteaseMusic/server/commits?sha=enhanced&path=precompiled' | jsonfilter -e '@[0].sha' || echo -e "Failed to connect to GitHub with uclient-fetch."
  14. echo -e "\n"
  15. echo -e "Node.js info:"
  16. opkg info node
  17. echo -e "Node.js is placed at $(command -v node || echo "Not Found")"
  18. echo -e "Node.js version: $(node -v 2>"/dev/null" || echo "Not Found")"
  19. echo -e "\n"
  20. echo -e "luci-app-unblockneteasmusic info:"
  21. opkg info "luci-app-unblockneteasemusic"
  22. ls -lh "/etc/config/unblockneteasemusic" "/etc/init.d/unblockneteasemusic" "/usr/share/unblockneteasemusic"
  23. cat "/etc/config/unblockneteasemusic" | sed -e "s,joox_cookie .*,joox_cookie 'set',g" \
  24. -e "s,qq_cookie .*,qq_cookie 'set',g" \
  25. -e "s,youtube_key .*,youtube_key 'set',g" \
  26. -e "s,proxy_server_ip .*,proxy_server_ip 'set',g"
  27. echo -e "\n"
  28. echo -e "UnblockNeteaseMusic Node.js info:"
  29. echo -e "Git HEAD version: $(cat "/usr/share/unblockneteasemusic/core_local_ver" 2>"/dev/null" || echo "Not Found")"
  30. echo -e "Core version: $(node "/usr/share/unblockneteasemusic/core/app.js" -v 2>"/dev/null" || echo "Not Found")"
  31. ls -lh "/usr/share/unblockneteasemusic/core" 2>"/dev/null"
  32. echo -e "\n"
  33. echo -e "Netease networking info:"
  34. curl -fsv "http://music.163.com/song/media/outer/url?id=641644.mp3" 2>&1 | grep "Location" || echo -e "Cannot connect to NeteaseMusic."
  35. curl -sSL "http://httpdns.n.netease.com/httpdns/v2/d?domain=music.163.com" || echo -e "Cannot connect to Netease HTTPDNS."
  36. config_load "unblockneteasemusic"
  37. config_get custom_proxy "config" "proxy_server_ip"
  38. [ -n "$custom_proxy" ] && { curl -sL -x "$custom_proxy" "http://music.163.com/song/media/outer/url?id=641644.mp3" 2>&1 | grep "Location" || echo -e "Cannot connect to NeteaseMusic via proxy."; }
  39. echo -e "\n"
  40. echo -e "Port status:"
  41. config_get unm_port "config" "http_port" "5200"
  42. config_get unm_ports "config" "https_port" "5201"
  43. [ "x$(config_get "config" "hijack_ways")" = "xuse_hosts" ] && { unm_port="80"; unm_ports="443"; }
  44. netstat -tlpen | grep "$unm_port" || echo -e "No instance found on port $unm_port."
  45. netstat -tlpen | grep "$unm_ports" || echo -e "No instance found on port $unm_ports."
  46. echo -e "\n"
  47. echo -e "Running info:"
  48. procd_running_status="$(/etc/init.d/unblockneteasemusic status)"
  49. echo -e "PROCD running status: $procd_running_status"
  50. [ "$procd_running_status" = "running" ] && { busybox ps -w | grep "unblockneteasemusic" | grep "app\.js" || echo -e "Thread is not found."; }
  51. echo -e "\n"
  52. [ "$procd_running_status" != "running" ] || {
  53. echo -e "Firewall info:"
  54. if [ -e "$(command -v fw4)" ]; then
  55. [ -e "/etc/nftables.d/90-unblockneteasemusic-rules.nft" ] || echo -e 'netease_cloud_music nft rule file not found.'
  56. echo -e ""
  57. nft list set inet fw4 "acl_neteasemusic_http" 2>&1
  58. echo -e ""
  59. nft list set inet fw4 "acl_neteasemusic_https" 2>&1
  60. echo -e ""
  61. nft list set inet fw4 "local_addr" 2>&1
  62. echo -e ""
  63. nft list set inet fw4 "neteasemusic" 2>&1
  64. echo -e ""
  65. nft list chain inet fw4 "input_wan" | grep "unblockneteasemusic-http-" 2>"/dev/null" || echo -e 'Http Port pub access rule not found.'
  66. echo -e ""
  67. nft list chain inet fw4 "input_wan" | grep "unblockneteasemusic-https-" 2>"/dev/null" || echo -e 'Https Port pub access rule not found.'
  68. echo -e ""
  69. nft list chain inet fw4 "netease_cloud_music" 2>&1
  70. echo -e ""
  71. nft list chain inet fw4 "netease_cloud_music_redir" 2>&1
  72. else
  73. iptables -t "nat" -L "netease_cloud_music" 2>"/dev/null" || echo -e 'Chain "netease_cloud_music" not found.'
  74. echo -e ""
  75. ipset list "neteasemusic" 2>"/dev/null" || echo -e 'Table "neteasemusic" not found.'
  76. echo -e ""
  77. ipset list "acl_neteasemusic_http" 2>"/dev/null" || echo -e 'Table "acl_neteasemusic_http" not found.'
  78. echo -e ""
  79. ipset list "acl_neteasemusic_https" 2>"/dev/null" || echo -e 'Table "acl_neteasemusic_https" not found.'
  80. fi
  81. echo -e ""
  82. cat "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic.conf"
  83. echo -e "\n"
  84. echo -e "Testing source replacing..."
  85. lan_ip="$(uci -q get "network.lan.ipaddr" || echo "127.0.0.1")"
  86. echo -n "" > "/tmp/unblockneteasemusic.log"
  87. curl -sSL -X "POST" "https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token=" --data "params=bf3kf%2BOyalbxNS%2FeHAXquH8D2nt2YrhBzww4zy5rj2H%2BeAhdOIaGh4HHHzcoREFcu9Ve35LUgc%2BGE1YJD1HxrJ87ucm5zK%2FFn1lLvHFv1A8ZAuyU1afjG28s2Xja6zpfg00T0EcCeqkK61OpTfAaqw%3D%3D&encSecKey=6bab0dfa7ee3b292f9263a7af466636731cdbbd1d8747c9178c17477e70be899b7788c4a4e315c9fdb8c6e787603db6f9dff62c356f164d35b16b7f2d9ad5ede3cc7336130605521a8f916d308ce86b15c32b81c883ae2ba9c244444d91e1683be93fa0ea3e2a85207c9d693b86b5bb31adb002dd56c0bbcce9c73ec3bf5c105"
  88. echo -e ""
  89. curl -ksSL -X "POST" -x "http://$lan_ip:$unm_port" "https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token=" --data "params=bf3kf%2BOyalbxNS%2FeHAXquH8D2nt2YrhBzww4zy5rj2H%2BeAhdOIaGh4HHHzcoREFcu9Ve35LUgc%2BGE1YJD1HxrJ87ucm5zK%2FFn1lLvHFv1A8ZAuyU1afjG28s2Xja6zpfg00T0EcCeqkK61OpTfAaqw%3D%3D&encSecKey=6bab0dfa7ee3b292f9263a7af466636731cdbbd1d8747c9178c17477e70be899b7788c4a4e315c9fdb8c6e787603db6f9dff62c356f164d35b16b7f2d9ad5ede3cc7336130605521a8f916d308ce86b15c32b81c883ae2ba9c244444d91e1683be93fa0ea3e2a85207c9d693b86b5bb31adb002dd56c0bbcce9c73ec3bf5c105"
  90. echo -e ""
  91. }
  92. cat "/tmp/unblockneteasemusic.log"