#!/usr/bin/env bash set -euo pipefail log() { echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')] $*" } if ! command -v ufw >/dev/null 2>&1; then log "UFW not installed. Installing..." apt-get update -qq apt-get install -y -qq ufw fi UFW_STATUS=$(ufw status numbered 2>/dev/null || true) open_port() { local port=$1 local proto=${2:-tcp} local rule="$port/$proto" if echo "$UFW_STATUS" | grep -q "$rule"; then log "Already open: $rule" else log "Opening: $rule" ufw allow "$rule" fi } log "=== Opening RustDesk Server ports ===" open_port 21115 tcp open_port 21116 tcp open_port 21116 udp open_port 21117 tcp open_port 21118 tcp open_port 21119 tcp log "=== UFW status ===" ufw status verbose log "=== Done ==="