stop-transparent.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. CHAIN4="MYNETSPEEDER"
  4. CHAIN6="MYNETSPEEDER6"
  5. PID_FILE="/var/run/mynetspeeder-edge.pid"
  6. SOCKS_PID_FILE="/var/run/mynetspeeder-socks.pid"
  7. IPTABLES_WATCHDOG_PID_FILE="/var/run/mynetspeeder-iptables-watchdog.pid"
  8. if [[ $EUID -ne 0 ]]; then
  9. echo "need root"
  10. exit 1
  11. fi
  12. if [[ -f "$PID_FILE" ]]; then
  13. kill "$(cat "$PID_FILE")" 2>/dev/null || true
  14. rm -f "$PID_FILE"
  15. fi
  16. if [[ -f "$SOCKS_PID_FILE" ]]; then
  17. kill "$(cat "$SOCKS_PID_FILE")" 2>/dev/null || true
  18. rm -f "$SOCKS_PID_FILE"
  19. fi
  20. if [[ -f "$IPTABLES_WATCHDOG_PID_FILE" ]]; then
  21. kill "$(cat "$IPTABLES_WATCHDOG_PID_FILE")" 2>/dev/null || true
  22. rm -f "$IPTABLES_WATCHDOG_PID_FILE"
  23. fi
  24. pkill -f 'python3 -m mynetspeeder edge' || true
  25. pkill -f 'python3 -m mynetspeeder socks' || true
  26. if iptables -t nat -S >/dev/null 2>&1; then
  27. iptables -t nat -D OUTPUT -p tcp -j "$CHAIN4" 2>/dev/null || true
  28. iptables -t nat -D OUTPUT -p udp -j "$CHAIN4" 2>/dev/null || true
  29. iptables -t nat -F "$CHAIN4" 2>/dev/null || true
  30. iptables -t nat -X "$CHAIN4" 2>/dev/null || true
  31. fi
  32. if command -v ip6tables >/dev/null 2>&1; then
  33. if ip6tables -t nat -S >/dev/null 2>&1; then
  34. ip6tables -t nat -D OUTPUT -p tcp -j "$CHAIN6" 2>/dev/null || true
  35. ip6tables -t nat -D OUTPUT -p udp -j "$CHAIN6" 2>/dev/null || true
  36. ip6tables -t nat -F "$CHAIN6" 2>/dev/null || true
  37. ip6tables -t nat -X "$CHAIN6" 2>/dev/null || true
  38. else
  39. echo "ipv6 nat unavailable: skip ipv6 transparent cleanup"
  40. fi
  41. fi
  42. echo "mynetspeeder transparent mode stopped"