Cuando Mastodon no puede encontrar a un usuario remoto por su identificador completo, la federación se rompe. Verá errores como “Usuario no encontrado” o “Error al obtener la cuenta” al buscar a alguien en otra instancia. Esto ocurre porque la búsqueda Webfinger, el protocolo que Mastodon utiliza para resolver la dirección de un usuario en una URL de perfil, está fallando. Este artículo explica las causas raíz de los fallos de búsqueda Webfinger y proporciona soluciones paso a paso para administradores y usuarios.
Webfinger es un protocolo de descubrimiento definido en RFC 7033. Mastodon envía una solicitud HTTPS al dominio remoto pidiendo información sobre un recurso, generalmente una dirección con formato de correo electrónico como usuario@ejemplo.com. Si esa solicitud falla o devuelve datos incorrectos, el perfil remoto no se puede cargar.
Aprenderá a diagnosticar fallos de Webfinger, corregir configuraciones erróneas comunes en su propia instancia y comprender qué verificar en el servidor remoto. Esta guía cubre tanto la configuración del servidor Mastodon como las configuraciones de DNS que afectan la federación.
Conclusiones clave: Diagnóstico y solución de fallos de búsqueda Webfinger en Mastodon
- Preferencias > Cuenta > Mudarse desde otra cuenta: Verifica que su propio registro Webfinger se sirva correctamente antes de la migración.
- Registro DNS CNAME / A para webfinger.ejemplo.com: Requerido si la instancia remota utiliza un subdominio para Mastodon pero el identificador de usuario usa el dominio principal.
- Cola Sidekiq de Mastodon y registro de errores de nginx: Donde se registran las solicitudes Webfinger fallidas para su diagnóstico.
Por qué falla la búsqueda Webfinger de Mastodon
Webfinger funciona enviando una solicitud GET a https://domain.com/.well-known/webfinger?resource=acct:user@domain.com. El servidor debe devolver un documento JSON que contenga un enlace al perfil ActivityPub del usuario. Si algún paso de esta cadena se rompe, Mastodon no puede federarse con ese usuario.
Las causas raíz más comunes son:
- Falta o configuración incorrecta del endpoint .well-known/webfinger en el servidor remoto. El servidor web (nginx o Apache) puede no estar enrutando las solicitudes a Mastodon correctamente.
- Fallo de resolución DNS para el dominio utilizado en el identificador de usuario. Si el identificador es
user@example.compero Mastodon vive enmastodon.example.com, la solicitud Webfinger va aexample.com, que debe servir la respuesta Webfinger o redirigir amastodon.example.com. - Discrepancia de certificado SSL/TLS. El certificado presentado por el dominio remoto debe coincidir con el nombre de host en la solicitud Webfinger. Un certificado para
example.comno cubreexample.coma menos que se incluya explícitamente. - Firewall o proxy inverso bloqueando la ruta
.well-known. Algunos escáneres de seguridad bloquean rutas que comienzan con un punto. - Discrepancia de versión de Mastodon. Las instancias de Mastodon muy antiguas pueden no soportar el formato de respuesta Webfinger requerido.
El flujo de solicitud Webfinger
Cuando busca @user@remoteinstance.com, su instancia de Mastodon hace lo siguiente:
- Extraer el dominio
Su instancia analiza el identificador y extraeremoteinstance.comcomo dominio de destino. - Enviar solicitud Webfinger
Su instancia envía un GET ahttps://remoteinstance.com/.well-known/webfinger?resource=acct:user@remoteinstance.com. - Analizar la respuesta
Si la respuesta es HTTP 200 con un cuerpo JSON válido que contiene un enlaceselfcontype="application/activity+json", su instancia extrae la URL del perfil. - Obtener el perfil
Su instancia luego obtiene el perfil de la URL proporcionada en la respuesta Webfinger.
Si el paso 2 o el paso 3 falla, verá el fallo de búsqueda.
Cómo solucionar los fallos de búsqueda Webfinger
La solución depende de si usted controla el servidor remoto, su propio servidor, o ninguno. A continuación se presentan los pasos para cada escenario.
Si usted controla el servidor remoto que no se puede encontrar
Este es el escenario más común: los usuarios de otras instancias no pueden encontrar a sus usuarios por identificador. Siga estos pasos para verificar y corregir su servidor.
- Probar Webfinger manualmente
Abra una terminal y ejecute:curl -v "https://yourdomain.com/.well-known/webfinger?resource=acct:yourusername@yourdomain.com". Reemplaceyourusernameyyourdomain.comcon valores reales. Compruebe si obtiene una respuesta 200 con JSON. - Verificar el enrutamiento de nginx
Si obtiene un 404 o 403, su servidor web no está pasando las solicitudes a Mastodon. En nginx, asegúrese de tener un bloque de ubicación para/.well-known/webfingerque haga proxy a su backend de Mastodon (generalmentehttp://localhost:3000). En Apache, asegúrese de queRewriteRuleoProxyPassesté configurado. - Verificar el certificado SSL
Ejecute:curl -vI https://yourdomain.com/.well-known/webfinger. Compruebe que el certificado sea válido y coincida exactamente conyourdomain.com. Si utiliza un certificado comodín parayourdomain.com, no cubreyourdomain.coma menos que el certificado incluya explícitamente el dominio desnudo. - Revisar los registros de Mastodon
En su servidor Mastodon, ejecute:journalctl -u mastodon-sidekiq -n 50. Busque errores que contengan "Webfinger" o "webfinger". Los errores comunes incluyen "Error al obtener el recurso" o "Error de análisis JSON". - Reiniciar los servicios de Mastodon
Después de cualquier cambio de configuración, reinicie Mastodon:systemctl restart mastodon-web mastodon-sidekiq mastodon-streaming.
Si usted es el usuario que intenta encontrar a un usuario remoto
Verificar el formato del identificador
Asegúrese de estar utilizando el formato completo del identificador @username@domain.com incluyendo el @ antes del nombre de usuario. Mastodon requiere el prefijo acct: internamente, pero el cuadro de búsqueda espera el identificador completo.
- Probar la URL de Webfinger manualmente
En un navegador, vaya ahttps://domain.com/.well-known/webfinger?resource=acct:username@domain.com. Reemplacedomain.comyusername. Si obtiene una respuesta JSON, el servidor remoto está funcionando. Si obtiene un 404 o error, el servidor remoto está mal configurado. - Comprobar si el dominio remoto es una redirección
Algunas instancias utilizan un subdominio comomastodon.domain.compero el identificador usadomain.com. El servidor remoto debe tener una redirección dehttps://domain.com/.well-known/webfingerahttps://mastodon.domain.com/.well-known/webfinger. Puede probar esto con:curl -v "https://domain.com/.well-known/webfinger?resource=acct:user@domain.com"y verificar si hay una redirección 301 o 302. - Contactar al administrador de la instancia remota
Si el endpoint Webfinger devuelve un error, envíe al administrador una copia de la salida de curl. Ellos pueden seguir los pasos de la sección anterior.
Si no puede alcanzar a ningún usuario remoto
Si todas las búsquedas remotas fallan, el problema probablemente esté en su propia instancia.
- Verificar su DNS
Asegúrese de que su servidor pueda resolver dominios externos. Ejecute:nslookup remoteinstance.com. Si el DNS falla, verifique su archivo/etc/resolv.conf. - Verificar las reglas del firewall de salida
Su servidor Mastodon debe realizar conexiones HTTPS salientes a servidores remotos. Verifique que el puerto 443 no esté bloqueado en su firewall. - Probar con una instancia conocida que funcione
Intente buscar@gargron@mastodon.social(el creador de Mastodon). Si eso falla, su instancia tiene un problema general de federación. - Reiniciar Mastodon
Reinicie todos los servicios de Mastodon:systemctl restart mastodon-web mastodon-sidekiq mastodon-streaming.
Si Webfinger aún falla después de la solución principal
Webfinger devuelve HTTP 404 para todos los usuarios
Esto generalmente significa que el directorio .well-known no está configurado en nginx o Apache. En nginx, asegúrese de tener:
location ~ ^/.well-known/webfinger {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
En Apache, use:
ProxyPass /.well-known/webfinger http://localhost:3000/.well-known/webfinger
ProxyPassReverse /.well-known/webfinger http://localhost:3000/.well-known/webfinger
Webfinger devuelve JSON pero sin un enlace "self"
Esto indica una entrada de base de datos corrupta o incompleta para ese usuario. En el servidor remoto, ejecute:
RAILS_ENV=production bin/tootctl accounts refresh <username>
Reemplace <username> con el nombre de usuario real. Este comando regenera la respuesta Webfinger para ese usuario.
Webfinger devuelve HTTP 500
Revise el registro web de Mastodon: journalctl -u mastodon-web -n 50. Las causas comunes son fallos de conexión a la base de datos o gemas faltantes. Ejecute bundle install en el directorio de Mastodon y reinicie.
Webfinger de Mastodon vs. Federación basada en DNS
| Elemento | Búsqueda Webfinger | Federación basada en DNS |
|---|---|---|
| Protocolo | GET HTTPS a /.well-known/webfinger | Consulta de registro SRV |
| Se utiliza para | Resolver identificadores de usuario a URL de perfil | Descubrir endpoints del servidor Mastodon (opcional) |
| Requerido para la federación | Sí | No |
| Síntoma de error | "Usuario no encontrado" o "Error al obtener la cuenta" | Sin efecto en búsquedas básicas |
| Ubicación de configuración | Servidor web (nginx/Apache) + Mastodon | Archivo de zona DNS |
Webfinger es obligatorio para la federación de Mastodon. Los registros SRV de DNS son opcionales y solo se utilizan para optimizar la comunicación entre servidores.
Después de aplicar las soluciones anteriores, su instancia de Mastodon debería resolver correctamente a los usuarios remotos mediante Webfinger. Pruebe con un identificador conocido que funcione como @gargron@mastodon.social. Si la búsqueda tiene éxito, la federación está restaurada. Para un monitoreo continuo, configure un trabajo cron que ejecute curl contra su propio endpoint Webfinger semanalmente y le alerte si el código de respuesta no es 200.