Blog del Podcast
podcast    GitHub    Twitter  Telegram

Docker. Merino, un servidor proxy SOCKS5 en rust

Merino es un servidor proxy SOCKS5 que ofrece varias características útiles. Está escrito completamente en Rust, lo que lo hace seguro y confiable. Utiliza un controlador de conexiones multihilo para manejar múltiples conexiones simultáneamente. Es ligero y eficiente en el uso de recursos, con menos del 0,6% de uso de CPU mientras se navega por la web o se transmite YouTube.

Ofrece velocidades de conexión rápidas, con más de 1 Gb/segundo en una red LAN Gigabit a través de Ethernet. El registro es ajustable mediante banderas o la variable de entorno RUST_LOG.

Es compatible con los métodos de autenticación SOCKS5 NoAuth y Nombre de usuario y contraseña (aunque con este método no he conseguido hacerlo funcionar).

También se planea agregar compatibilidad con GSSAPI en el futuro.

Ciertamente es muy ligero y tan solo me ha ocupado con un usuario 0.6Mb de RAM.

Docker Compose

La imagen multiarquitectura podemos descargarla desde GitHub.

Este sería el Docker Compose:


merino:
image: ghcr.io/ajmwagar/merino:latest
container_name: merino
ports:
- "8001:8001"
command: ["--no-auth", "--ip=0.0.0.0", "--port=8001"]

Docker cli


docker container run --pull=always --name=merino -p=8001:8001 ghcr.io/ajmwagar/merino:latest --no-auth --port=8001

Comprobando conexión

Probando la conexión al servidor de socks5.


curl -4vv https://google.com -qqss  --socks5 "socks5://166.287.280.567:8001"

En este ejemplo la IP puerto de mi servidor sería 166.287.280.567:8001.

Si necesitas proporcionar un nombre de usuario y una contraseña para el servidor SOCKS5, puedes incluirlos en la URL del proxy de la siguiente manera:


curl -4vv https://google.com -qqss  --socks5 "socks5h://usuario:contraseña@166.287.280.567:8001"

Cambiamos el esquema de "socks5" a "socks5h" para habilitar la resolución de nombres de host a través del proxy, lo que puede ser necesario dependiendo de la configuración del servidor SOCKS5.

Fuentes




Powered by org-bash-blog

Written in OrgMode with Emacs and converted to HTML with Pandoc

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.