Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PortSlayer Banner

Release License Rust Stars Issues

🔥 Visualiza y elimina puertos abiertos directamente desde tu barra de tareas en Linux

InstalaciónUsoCaracterísticasCapturasContribuir


🤔 ¿El Problema?

¿Cuántas veces te ha pasado esto?

Error: Port 3000 is already in use
Error: Address already in use (os error 98)

Y luego tienes que abrir la terminal, buscar el PID, ejecutar kill... demasiados pasos para algo tan simple.

⚔️ La Solución: PortSlayer

PortSlayer vive en tu barra de tareas. Un clic derecho y ves todos los puertos abiertos. Un clic más y el puerto está libre. Así de fácil.

💡 Hecho en Rust para máximo rendimiento: usa ~2MB de RAM y 0% CPU en reposo.


✨ Características

Característica Descripción
🖥️ System Tray Vive en tu barra de tareas, siempre accesible
🔍 Escaneo en tiempo real Detecta puertos TCP/UDP abiertos automáticamente
Kill instantáneo Cierra cualquier puerto con un solo clic
💣 Kill All Cierra todos los puertos abiertos de una vez
🔄 Auto-actualización Se actualiza cada 10 segundos automáticamente
🚀 Autostart Se inicia con tu sistema automáticamente
🔒 Permisos inteligentes Solicita permisos elevados solo cuando es necesario
🪶 Ultra ligero ~2MB RAM, binario estático de ~3MB
🐧 100% Linux Compatible con ZorinOS, Ubuntu, Mint, Fedora y más

📸 Capturas

Menú del System Tray

┌─────────────────────────────────────────────┐
│  🔄 Actualizar                              │
│  ─────────────────────────────────────────── │
│  ⚔️ Cerrar Todos (4 puertos)                │
│  ─────────────────────────────────────────── │
│  🔴 Kill: Puerto 3000: node (PID: 12345)    │
│  🔴 Kill: Puerto 5432: postgres (PID: 987)  │
│  🔴 Kill: Puerto 8080: java (PID: 5678)     │
│  🔴 Kill: Puerto 9090: python (PID: 4321)   │
│  ─────────────────────────────────────────── │
│  ❌ Salir                                    │
└─────────────────────────────────────────────┘

📦 Instalación

Método rápido (recomendado)

# Clonar el repositorio
git clone https://github.com/artur282/PortSlayer.git
cd PortSlayer

# Instalar (compila, instala y configura autostart)
chmod +x scripts/install.sh
./scripts/install.sh

Compilar manualmente

# Instalar dependencias del sistema
sudo apt install -y libdbus-1-dev pkg-config   # Debian/Ubuntu/Zorin
sudo dnf install -y dbus-devel pkg-config       # Fedora
sudo pacman -S dbus pkg-config                  # Arch

# Compilar
cargo build --release

# El binario está en target/release/portslayer
./target/release/portslayer &

Desinstalar

chmod +x scripts/uninstall.sh
./scripts/uninstall.sh

🚀 Uso

Iniciar manualmente

portslayer &

Iniciar con logs visibles

RUST_LOG=debug portslayer

Comportamiento

  1. Inicia con el sistema automáticamente (después de instalar)
  2. Clic derecho en el ícono 🖥️ de la barra de tareas
  3. Ver todos los puertos TCP/UDP abiertos con sus procesos
  4. Clic en cualquier puerto para cerrarlo instantáneamente
  5. "Cerrar Todos" para liberar todos los puertos de una vez

🏗️ Arquitectura

portslayer/
├── src/
│   ├── main.rs            # Punto de entrada y configuración de logging
│   ├── port_scanner.rs    # Escaneo de puertos y gestión de procesos
│   └── tray.rs            # System tray con menú dinámico
├── scripts/
│   ├── install.sh         # Instalador automático
│   └── uninstall.sh       # Desinstalador limpio
├── assets/
│   └── banner.svg         # Banner del README
├── Cargo.toml             # Configuración del proyecto Rust
├── LICENSE                # Licencia MIT
└── README.md              # Este archivo

Dependencias Rust

Crate Uso
ksni System tray con protocolo StatusNotifierItem
log Framework de logging
env_logger Backend de logging configurable

Herramientas del sistema

Herramienta Uso
ss Escaneo de sockets/puertos de red
kill Terminación de procesos
pkexec Escalamiento de privilegios con GUI

🐧 Distros Compatibles

Distribución Estado
ZorinOS 16/17 ✅ Probado
Ubuntu 20.04+ ✅ Compatible
Linux Mint 20+ ✅ Compatible
Fedora 36+ ✅ Compatible
Arch Linux ✅ Compatible
Pop!_OS ✅ Compatible
Debian 11+ ✅ Compatible
Elementary OS ✅ Compatible

⚠️ Requiere un entorno de escritorio con soporte para StatusNotifierItem o AppIndicator (GNOME con extensión, KDE, XFCE, Budgie, etc.)


🔧 Configuración

Variables de entorno

Variable Descripción Default
RUST_LOG Nivel de logging (error, warn, info, debug, trace) info

Autostart

El instalador crea automáticamente un archivo .desktop en:

~/.config/autostart/portslayer.desktop

Para desactivar el autostart sin desinstalar:

rm ~/.config/autostart/portslayer.desktop

🤝 Contribuir

¡Las contribuciones son bienvenidas! 🎉

  1. Fork el repositorio
  2. Crea tu branch (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -m 'feat: agregar funcionalidad')
  4. Push al branch (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

Ideas para contribuir

  • 🎨 Ícono personalizado SVG para el system tray
  • 📊 Notificaciones cuando un nuevo puerto se abre
  • 🔍 Filtrar puertos por protocolo (TCP/UDP)
  • 📋 Copiar información del puerto al portapapeles
  • 🌐 Interfaz web opcional para monitoreo remoto
  • 📦 Paquetes .deb, .rpm y AUR
  • 🎯 Whitelist/Blacklist de puertos

⭐ ¿Te gusta PortSlayer?

Si este proyecto te es útil, dale una estrella ⭐ en GitHub. ¡Ayuda a que más personas lo descubran!

GitHub Stars


📝 Licencia

Este proyecto está bajo la licencia MIT. Puedes usarlo, modificarlo y distribuirlo libremente.


Hecho con ❤️ y 🦀 Rust

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages