Error : out of UDP buffer - como solucionarlo y Alternativas




Hola que tal, este post es para comentarles sobre un problema que me han mencionado algunos, sobre el error de out of UDP buffer, que han venido mostrando con la actualización que openssh en algunos proveedores. los cuales han mostrado un mensaje de flood (repetitivo) cuando sobre pasan los 100 clientes, que aunque no sea un problema grave a considerar, algunos nos les gusta ver errores ejecutandose (me incluyo) dentro de una VPS de consumo para clientes.

Para ello, hago mención que ese error ha sido un problema hasta cierto punto normal dentro de la base de tun2socks dentro del paquete original de su creador original, a lo cual hago mención sobre algunos detalles a considerar.

El paquete de BadVPN (anteriormente llamado tun2socks), es un paquete descontinuado desde 2015, el cual ya no recibe actualizaciones de parte del editor inicial, a lo cual he revisado cerca de 30 alternativas de UDP over SSH para transportar paquete para emular Llamada VoIP y habilitar el poder usar su Relay para usarlos en Aplicaciones de Video Juegos que lo necesitan para emularse.

Las más actuales van desde las basadas en GO-Lang, C++, Python, Ruby on Rails, entre algunas por mencionar, los cuales algunos elevan considerablemente el uso de CPU, llegando a algunos casos, en recibir alertas de UDP Flood por parte del proveedor por considerarlos ataques DDoS, suspendiendo la Máquina Virtual, en mi caso me suspendieron 2 vps usando UDP en Ruby on Rails por exceso de Buffer en DO.

Mi tabla de Alternativas que dejo a continuación que pueden utilizar como alternativa, para el uso de UDP, es la siguiente, a la cual no daré soporte alguno, más que la que ya tienen conocimiento que es BadVPN de ambrop72, el cual dejo en los enlaces de abajo para reconsideren revisar el record de Issues (problemas) para que se aseguren que no es problema aislado del script VpsPack, y que nos afecta a todos los scripts que usamos esa base.

1. BadVPN (c++) - 15% consumo x 100
2. gost (GoLang) - 35% consumo x 100
3. docker-tunnel (script) - 38% consumo x 100
4. NetCoreServer (NET) - 60% consumo x 100
5. udpproxy (GoLang) - 80% consumo x 100


Todas las demás presentaron un uso de CPU y consumo del 100% en una CPU de 4gb, por lo que no las veo como alternativas.

Mi alternativas de línea de ejecución en conjunto con una modificación de limites de buffer de cpu del vps es la siguiente:

badvpn-udpgw --listen-addr 127.0.0.1:7300 --max-clients 1000 --max-connections-for-client 1000 --client-socket-sndbuf 0 --udp-mtu 9000

A la cual se le añade :

--client-socket-sndbuf 0 --udp-mtu 9000 

Dicha línea puede ir en el caso de sndbuf desde 0 hasta 65535 y el mtu desde 0 hasta 15000 o más. este ultimo es opcional

Los límites, los podrán identificar tecleando en su VPS, el cual les mostrará los límites actuales de su VPS: ulimit -a


Para modificar estos límites puedes usar los parámetros (bajo su riesgo) con la siguiente instrucción, el número dependerá de cuanta carga de buffer le quieren ingresar a su VPS: ulimits -n 100000

Opcion 2 para modificar limites, es editar su conf: nano /etc/security/limits.conf agregando las siguientes líneas:

* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
linuxhint soft nproc 100000
linuxhint hard nproc 100000
linuxhint soft nofile 100000
linuxhint hard nofile 100000


En el caso de fs.file-max, tengo una opción en el menú de Herramientas llamada TCP TWEAKER, el cual les editará la opcion de los files.


La actualización de BadVPN dentro del script está disponible para todas las versiones, basta con eliminar y posteriormente instalar la actualización:

rm /bin/badvpn && rm /bin/badvpn-udgpw

Les recuerdo que cada proveedor maneja un performance diferente, aunque el script (VpsPack) sea adaptable, siempre hay settings para mejorar rendimientos, que pueden realizarlos manualmente y que tienen a la mano, solo es cuestión de leer un poco más al respeto (si les interesa).

Documentación y enlaces :

https://github.com/powermx/badvpn
https://github.com/f4nff/tunnel
https://github.com/feng-zh/docker-tunnel
https://github.com/chronoxor/NetCoreServer
https://github.com/Akagi201/udpproxy


Todas las dudas, que tengan sobre BadVPN y habiendo adquirido el script VpsPack, les resolveré todas las dudas, sobre estos settings, para evaluar la mejor configuración, esperando sean pacientes para recibir una respuesta en mi privado @PowerMX

Nota: Ésta explicación no aplica si usan V2ray o derivados.

0 Comentarios