Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
rathole — Un proxy inverso ligero y de alto rendimiento para la travesía de NAT, escrito en Rust. Una alternativa a frp y ngrok. | Kitploit
Herramientas/GitHubGitHub/rathole-org/rathole
Utilidades de Propósito GeneralSeguridad de RedesUtilidades y Frameworks
GitHubrathole-org/rathole

rathole

Un proxy inverso ligero y de alto rendimiento para la travesía de NAT, escrito en Rust. Una alternativa a frp y ngrok.

Ver Repositorio
14.0k80427hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

rathole

rathole-logo

GitHub stars GitHub release (latest SemVer) GitHub Workflow Status (branch) GitHub all releases Docker Pulls Join the chat at https://gitter.im/rapiz1/rathole

Inglés | Chino simplificado

Un proxy inverso seguro, estable y de alto rendimiento para la travesía NAT, escrito en Rust.

rathole, al igual que frp y ngrok, puede ayudar a exponer el servicio en un dispositivo detrás de NAT a Internet, a través de un servidor con una IP pública.

  • rathole
    • Características
    • Inicio rápido
    • Configuración
      • Registro
      • Ajuste
    • Benchmark
    • Planificación

Características

  • Alto rendimiento Se puede lograr un rendimiento mucho mayor que con frp, y es más estable al manejar un gran volumen de conexiones. Consulta Benchmark.
  • Bajo consumo de recursos Consume mucha menos memoria que herramientas similares. Consulta Benchmark. El binario puede ser tan pequeño como ~500 KiB para adaptarse a las limitaciones de dispositivos como dispositivos integrados (routers).
  • Seguridad Los tokens de los servicios son obligatorios y por servicio. El servidor y los clientes son responsables de sus propias configuraciones. Con el opcional Noise Protocol, el cifrado se puede configurar fácilmente. ¡No es necesario crear un certificado autofirmado! También se admite TLS.
  • Recarga en caliente Los servicios se pueden agregar o eliminar dinámicamente recargando el archivo de configuración. La API HTTP está en desarrollo.

Inicio rápido

Se puede obtener un rathole completamente funcional desde la página de lanzamientos. O compilar desde el código fuente para otras plataformas y minimizar el binario. También hay una imagen Docker disponible.

El uso de rathole es muy similar a frp. Si tienes experiencia con este último, la configuración te resultará muy sencilla. La única diferencia es que la configuración de un servicio se divide en el lado del cliente y el lado del servidor, y un token es obligatorio.

Para usar rathole, necesitas un servidor con una IP pública y un dispositivo detrás de NAT, donde se encuentren algunos servicios que necesiten exponerse a Internet.

Suponiendo que tienes un NAS en casa detrás de NAT y quieres exponer su servicio SSH a Internet:

  1. En el servidor que tiene una IP pública

Crea server.toml con el siguiente contenido y adáptalo a tus necesidades.

# server.toml
[server]
bind_addr = "0.0.0.0:2333" # `2333` especifica el puerto en el que rathole escucha a los clientes

[server.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" # Token utilizado para autenticar al cliente para el servicio. Cámbialo a un valor arbitrario.
bind_addr = "0.0.0.0:5202" # `5202` especifica el puerto que expone `my_nas_ssh` a Internet

Luego ejecuta:

./rathole server.toml
  1. En el host que está detrás de NAT (tu NAS)

Crea client.toml con el siguiente contenido y adáptalo a tus necesidades.

# client.toml
[client]
remote_addr = "myserver.com:2333" # La dirección del servidor. El puerto debe ser el mismo que el puerto en `server.bind_addr`

[client.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" # Debe ser el mismo que en el servidor para pasar la validación
local_addr = "127.0.0.1:22" # La dirección del servicio que necesita ser reenviado

Luego ejecuta:

./rathole client.toml
  1. Ahora el cliente intentará conectarse al servidor myserver.com en el puerto 2333, y cualquier tráfico hacia myserver.com:5202 será reenviado al puerto 22 del cliente.

Por lo tanto, puedes hacer ssh myserver.com:5202 para conectarte por SSH a tu NAS.

Para ejecutar rathole como un servicio en segundo plano en Linux, consulta los ejemplos de systemd.

Configuración

rathole puede determinar automáticamente si ejecutarse en modo servidor o en modo cliente, según el contenido del archivo de configuración, si solo está presente uno de los bloques [server] o [client], como en el ejemplo de Inicio rápido.

Pero los bloques [client] y [server] también se pueden colocar en un mismo archivo. Entonces, en el lado del servidor, ejecuta rathole --server config.toml y en el lado del cliente, ejecuta rathole --client config.toml para indicar explícitamente a rathole el modo de ejecución.

Antes de pasar a la especificación completa de configuración, se recomienda echar un vistazo a los ejemplos de configuración para tener una idea del formato de configuración.

Consulta Transporte para más detalles sobre el cifrado y el bloque transport.

Aquí está la especificación completa de configuración:

[client]
remote_addr = "example.com:2333" # Necesario. La dirección del servidor
default_token = "default_token_if_not_specify" # Opcional. El token por defecto de los servicios, si no definen el suyo propio
heartbeat_timeout = 40 # Opcional. Ponlo a 0 para deshabilitar la prueba de latido a nivel de aplicación. El valor debe ser mayor que `server.heartbeat_interval`. Por defecto: 40 segundos
retry_interval = 1 # Opcional. El intervalo entre reintentos de conexión al servidor. Por defecto: 1 segundo

[client.transport] # Todo el bloque es opcional. Especifica el transporte a usar
type = "tcp" # Opcional. Valores posibles: ["tcp", "tls", "noise"]. Por defecto: "tcp"

[client.transport.tcp] # Opcional. También afecta a `noise` y `tls`
proxy = "socks5://user:[email protected]:1080" # Opcional. El proxy usado para conectarse al servidor. Se admiten `http` y `socks5`.
nodelay = true # Opcional. Determina si habilitar TCP_NODELAY, si es aplicable, para mejorar la latencia pero disminuir el ancho de banda. Por defecto: true
keepalive_secs = 20 # Opcional. Especifica `tcp_keepalive_time` en `tcp(7)`, si es aplicable. Por defecto: 20 segundos
keepalive_interval = 8 # Opcional. Especifica `tcp_keepalive_intvl` en `tcp(7)`, si es aplicable. Por defecto: 8 segundos

[client.transport.tls] # Necesario si `type` es "tls"
trusted_root = "ca.pem" # Necesario. El certificado de la CA que firmó el certificado del servidor
hostname = "example.com" # Opcional. El nombre de host que el cliente usa para validar el certificado. Si no se establece, se usará `client.remote_addr`
Descargar herramienta