Un servidor SOCKS5 puede aceptar la conexión TCP y aun así rechazar la solicitud de acceso a un destino. Lea la respuesta en la etapa correcta antes de decidir qué endpoint falló.

Primero se selecciona el método. La autenticación con usuario y contraseña, si se elige, tiene su propio resultado. Solo después devuelve el servidor la respuesta de CONNECT u otro comando SOCKS. El valor de un byte de una etapa no puede interpretarse con la tabla de otra.

Las respuestas a solicitudes identifican fallos diferentes

Valor de respuestaSignificado en la respuesta a una solicitud SOCKS5
0x01Fallo general del servidor.
0x02Conexión no permitida por las reglas.
0x03Red inalcanzable.
0x04Host inalcanzable.
0x05Conexión rechazada.
0x06TTL vencido.
0x07Comando no admitido.
0x08Tipo de dirección no admitido.

Por ejemplo, un rechazo a nivel de solicitud se comunica tras llegar al servicio SOCKS. Es distinto de que el sistema operativo rechace la conexión TCP inicial a ese servicio.

Un error de tipo de dirección puede afectar a una representación IPv4, IPv6 o de nombre de host. No significa automáticamente que el endpoint completo carezca de soporte SOCKS5. Del mismo modo, un comando UDP no admitido no permite concluir nada definitivo sobre otra solicitud TCP CONNECT.

Recopilar el contexto que hace útil el código

Al escribir un informe de error, guarde junto al resultado la dirección del proxy, el comando, el host y puerto de destino, la familia de direcciones y el modo DNS. Los registros de políticas del servidor ayudan si administra el endpoint. Un rechazo por reglas requiere revisar el permiso aplicable, no aumentar el tiempo de espera de conexión.

La respuesta es el informe del servidor, no un diagnóstico independiente completo de la red de destino. La redacción de los clientes también varía. Registre la etapa y la respuesta subyacente cuando estén disponibles, en vez de depender solo de un breve mensaje de error traducido.

Artículos relacionados