#!/bin/bash # Get the directory where the script is located SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) PROJECT_ROOT=$(cd -- "$SCRIPT_DIR/.." &> /dev/null && pwd) # Path to the ZIVPN binary ZIVPN_BINARY="$PROJECT_ROOT/zivpn/udp-zivpn-linux-amd64" ZIVPN_URL="https://github.com/zahidbd2/udp-zivpn/releases/download/udp-zivpn_1.4.9/udp-zivpn-linux-amd64" ZIVPN_DIR=$(dirname "$ZIVPN_BINARY") # Check if the ZIVPN binary exists, and download if it does not if [ ! -f "$ZIVPN_BINARY" ]; then echo "ZIVPN binary not found. Downloading..." # Ensure the directory exists mkdir -p "$ZIVPN_DIR" # Download the binary using wget or curl if command -v wget >/dev/null 2>&1; then wget -O "$ZIVPN_BINARY" "$ZIVPN_URL" elif command -v curl >/dev/null 2>&1; then curl -L -o "$ZIVPN_BINARY" "$ZIVPN_URL" else echo "Error: Neither wget nor curl is available to download the ZIVPN binary." exit 1 fi # Make the binary executable if [ -f "$ZIVPN_BINARY" ]; then chmod +x "$ZIVPN_BINARY" echo "ZIVPN binary downloaded and made executable." else echo "Error: Failed to download ZIVPN binary." exit 1 fi else echo "ZIVPN binary already exists. Skipping download." fi # Flush all iptables -F iptables -t nat -F # Set policy default untuk masing-masing chain iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # Pastikan IP forwarding diaktifkan echo 1 > /proc/sys/net/ipv4/ip_forward interface=$(ip -4 route ls|grep default|grep -Po '(?<=dev )(\S+)'|head -1) # Tambahkan rule untuk mengizinkan paket UDP dengan destination port 50000 pada chain INPUT iptables -A INPUT -p udp --dport 3671 -j ACCEPT # UDP CUSTOM: Tambahkan aturan iptables untuk melakukan port forwarding UDP ke port 3671 iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 1:21 -j DNAT --to-destination :3671 # 22: (SSH Port) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 23:52 -j DNAT --to-destination :3671 # 53: (DNS Port) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 54:3670 -j DNAT --to-destination :3671 # 3671: (Itself/UDP CUSTOM) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 3672:5665 -j DNAT --to-destination :3671 # 5666 & 5667: (UDP ZIVPN) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 5668:5999 -j DNAT --to-destination :3671 # ZIVPN: Tambahkan aturan iptables untuk melakukan port forwarding UDP ke port 5667 iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 6000:7299 -j DNAT --to-destination :5667 # 7300: (BadVPN UDPGW) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 7301:19131 -j DNAT --to-destination :5667 # 19132: (Minecraft Server) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 19133:19999 -j DNAT --to-destination :5667 # End # ZIVPN Legacy (Old): Tambahkan aturan iptables untuk melakukan port forwarding UDP ke port 5666 iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 20000:25564 -j DNAT --to-destination :5666 # 25565: (Minecraft Server) iptables -t nat -A PREROUTING -i ${interface} -p udp --dport 25566:65535 -j DNAT --to-destination :5666 # End # Chain bash optimize.sh