Como configurar um servidor Matrix por trás de um proxy Cloudflare

Um servidor Matrix pode ficar atrás do Cloudflare, mas a configuração depende de como os clientes e outros servidores domésticos o descobrem. O proxy HTTP padrão do Cloudflare suporta HTTPS na porta 443; a federação do Synapse geralmente usa a porta 8448 por padrão, que não está na lista de portas proxy padrão do Cloudflare. Uma solução confiável é expor o Synapse por meio de um proxy reverso na porta 443 e publicar registros WK (Well-Known Register) do Matrix que direcionem os clientes e o tráfego de federação para esse hostname. Como alternativa, mantenha a federação na porta 8448 e configure esse registro DNS como somente DNS.

Este guia utiliza o Synapse, a implementação oficial do Matrix para servidores domésticos, com os IDs do Matrix @alice:example.come o endpoint do cliente de exemplo matrix.example.com. Substitua esses nomes e endereços pelos seus. As instruções pressupõem que o Synapse e um proxy reverso HTTPS já estejam instalados. Elas não se aplicam integralmente a todas as implementações de servidores domésticos. Verificado com base na documentação atual do Cloudflare e do Element Synapse em 6 de outubro de 2026.

Escolha o layout de rede correto

O proxy laranja da Cloudflare é um proxy reverso HTTP/HTTPS. Ele se posiciona entre os clientes e seu servidor de origem para requisições web encaminhadas; ele não encaminha todas as portas TCP indiscriminadamente. Suas portas HTTPS padrão incluem 443 e 8443, mas não a porta 8448, comumente usada para federação pelo Synapse. Consulte a lista de portas de rede suportadas e limitações de proxy da Cloudflare .

LayoutDNS da CloudflareDescoberta da FederaçãoUse-o quando
Federação em HTTPS 443matrix.example.comproxyexample.com/.well-known/matrix/serveraponta paramatrix.example.com:443Você deseja que o tráfego de clientes e de federação passe pelo proxy HTTP padrão do Cloudflare.
Federação em 8448Nome do host do cliente encaminhado por proxy; nome do host da federação somente por DNSAnuncie o servidor na porta 8448 ou use o destino de delegação apropriado.Você deseja manter a porta de federação padrão do Synapse e aceitar conexões diretas à origem para fins de federação.

O primeiro layout é usado abaixo. Um registro DNS proxy não configura, por si só, a descoberta do Matrix, o proxy reverso, o TLS ou a política de firewall.

1. Defina o nome do servidor Matrix antes de configurar o DNS.

O nome do servidor Matrix é a parte que vem depois dos dois pontos no ID do usuário. Neste exemplo, é `<username>` example.com, então os usuários têm IDs como `<username> @alice:example.com`. O nome técnico do host do cliente é `<username>` matrix.example.com. Essa separação permite que o domínio usado nos IDs de usuário permaneça estável enquanto o tráfego é delegado para outro nome de host. Se o Synapse já estiver inicializado, não o altere server_namesem necessidade: ele faz parte da identidade do usuário e da sala, e alterá-lo é uma migração, não um ajuste de proxy.

Planeja-se disponibilizar dois pequenos documentos JSON de descoberta a partir do domínio do nome do servidor:

  • https://example.com/.well-known/matrix/clientIndica aos clientes compatíveis para usarem https://matrix.example.com.
  • https://example.com/.well-known/matrix/serverinstrui outros servidores domésticos a acessarem a federação em matrix.example.com:443.

O documento do cliente precisa de um Access-Control-Allow-Origin: *cabeçalho de resposta. O guia de delegação do Synapse inclui exemplos desses registros e sua estrutura esperada: Delegação de federação do Synapse .

2. Crie os registros DNS do Cloudflare.

No DNS da Cloudflare, crie um Aregistro com o nome matrixque aponte para o endereço IPv4 público do servidor. Adicione um AAAAregistro somente se a origem tiver conectividade IPv6 funcionando e um firewall configurado para IPv6. Defina o status de proxy do nome de host da web como " Proxyed" (nuvem laranja). Se o domínio raiz também apontar para este servidor e servir os arquivos conhecidos, configure o registro web dele como proxy também.

Mantenha registros não relacionados, incluindo registros de e-mail, em suas configurações apropriadas de DNS somente. Registros MX e TXT não são encaminhados por proxy. A Cloudflare explica que um registro A, AAAA ou CNAME encaminhado por proxy direciona solicitações HTTP/HTTPS através da Cloudflare, enquanto o DNS somente retorna o endereço de origem diretamente: Comportamento do status do proxy da Cloudflare .

Permita o tráfego HTTPS de entrada do Cloudflare para a origem. Para uma proteção mais robusta, restrinja o firewall de origem aos intervalos de IP publicados pelo Cloudflare e mantenha esses intervalos atualizados. Se o IP do servidor estava exposto antes da ativação da zona, o proxy DNS não invalida esse endereço antigo; considere alterar o IP de origem após a ativação. Não presuma que a nuvem laranja, por si só, impeça o acesso direto da origem.

3. Configure o HTTPS entre o Cloudflare e a origem.

Nas configurações de SSL/TLS do Cloudflare, use a opção Completo (estrito) quando a origem apresentar um certificado válido para o nome do host, como um certificado publicamente confiável ou um certificado da Autoridade Certificadora de Origem do Cloudflare. O modo Completo (estrito) criptografa a conexão entre o Cloudflare e a origem e valida o certificado de origem; o modo Flexível não oferece esse mesmo caminho TLS de ponta a ponta. Consulte a documentação do Cloudflare sobre o modo Completo (estrito) .

Instale o certificado e a chave privada no proxy reverso, não necessariamente no Synapse. O proxy reverso deve escutar na porta pública 443 e encaminhar as requisições do Matrix internamente para o listener HTTP do Synapse, geralmente na porta 8008. Não exponha o listener do Synapse publicamente se o proxy reverso for o único ponto de entrada.

4. Informe ao Synapse que ele está atrás de um proxy reverso confiável.

No listener HTTP relevante homeserver.yaml, habilite o tratamento de cabeçalhos encaminhados. Um exemplo simplificado para um servidor não conteinerizado é:

listeners:
  - port: 8008
    type: http
    tls: false
    x_forwarded: true
    bind_addresses: ['127.0.0.1']
    resources:
      - names: [client, federation]
        compress: false

Incorpore essas configurações ao listener existente em vez de substituir toda a configuração. A documentação da Synapse recomenda x_forwarded: trueo uso de um proxy reverso e sugere a vinculação ao localhost quando o proxy estiver em execução no mesmo host. Para uma implantação em contêiner, vincular o Synapse ao loopback do contêiner pode impedir que o proxy do host o alcance; use o endereço de rede do contêiner ou do serviço e configure o firewall para esse caminho. Consulte o guia atual de proxy reverso do Synapse antes de alterar as configurações do listener.

Os cabeçalhos encaminhados são confiáveis ​​somente quando o Synapse aceita tráfego do seu proxy controlado. Se o Cloudflare for a única rota voltada para a internet, impeça o acesso público direto à origem e configure o proxy para passar o endereço correto do cliente. $remote_addrCaso contrário, o endereço do Nginx será um endereço do Cloudflare, pois o Cloudflare está conectado ao Nginx. Configure o módulo real-IP do Nginx para confiar apenas nos intervalos de origem publicados pelo Cloudflare antes de usar o cabeçalho CF-Connecting-IP; nunca confie nesse cabeçalho de clientes arbitrários da internet. Mantenha a API de administração do Synapse privada, a menos que você tenha um motivo específico para expô-la.

5. Rotas em matrizes sem reescrevê-las

Configure seu proxy reverso para enviar ambos /_matrixos /_synapse/clientparâmetros para o Synapse. Preserve o URI da solicitação exatamente. As assinaturas de solicitação de federação do Synapse podem falhar se um proxy decodificar ou normalizar segmentos de caminho codificados.

Aqui está um exemplo compacto do Nginx para matrix.example.com. Ele pressupõe que suas diretivas de certificado TLS já estejam configuradas para este bloco de servidor e que o proxy reverso e o Synapse estejam sendo executados no mesmo host:

server {
    listen 443 ssl;
    server_name matrix.example.com;

    location ~ ^(/_matrix|/_synapse/client) {
        proxy_pass http://127.0.0.1:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        client_max_body_size 50M;
    }
}

Não adicione um sufixo URI ao local desta expressão regular proxy_pass. A documentação do proxy do Synapse menciona a canonicalização de URIs como uma causa de erros de assinatura de federação. Ajuste também client_max_body_sizepara corresponder ao limite de upload do Synapse e a qualquer limite do plano Cloudflare aplicável à sua zona. O 50Mvalor acima é apenas um exemplo, não uma recomendação universal.

A Cloudflare oferece suporte a WebSockets em seus planos, e os clientes Matrix podem usar conexões de longa duração. Confirme se seu proxy permite a atualização e se as regras de WAF ou de limitação de taxa não rejeitam solicitações legítimas do Matrix. A documentação da Cloudflare sobre WebSockets descreve como ela lida com conexões atualizadas.

6. Publique as respostas já conhecidas.

Forneça as duas respostas a seguir via example.comHTTPS. Você pode retorná-las do seu servidor web, de um host estático ou de um host virtual separado. Mantenha os documentos do cliente e da federação distintos:

GET /.well-known/matrix/client
HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *

{"m.homeserver":{"base_url":"https://matrix.example.com"}}
GET /.well-known/matrix/server
HTTP/1.1 200 OK
Content-Type: application/json

{"m.server":"matrix.example.com:443"}

Não utilize um redirecionamento para um host não relacionado como substituto sem verificar os requisitos de descoberta do Matrix e o comportamento do cliente. Certifique-se de que o host do nome do servidor esteja coberto por um certificado HTTPS válido e que o Cloudflare não armazene em cache respostas de descoberta desatualizadas enquanto você as estiver alterando.

7. Mantenha o tráfego da API dinâmico e os uploads dentro dos limites.

Não armazene em cache as respostas autenticadas da API do Matrix. Adicione uma regra de cache do Cloudflare para ignorar o cache dos caminhos da API do Matrix, incluindo `/api/matrix` /_matrix/*e /_synapse/client/*`/api/matrix`, a menos que você tenha um motivo bem fundamentado e testado para tratar uma resposta pública específica de forma diferente. Evite regras amplas de WAF ou bots que desafiem ou bloqueiem endpoints de federação; as solicitações de federação vêm de muitos servidores domésticos independentes. Se uma regra de segurança for necessária, teste-a em relação ao login do cliente, sincronização, upload de mídia e federação antes de aplicá-la de forma geral.

Os uploads têm vários limites independentes: o do cliente, a configuração de upload do plano ou zona da Cloudflare, o limite de tamanho do corpo do arquivo do proxy reverso e o do Synapse max_upload_size. Um erro 413 significa que um desses limites rejeitou a solicitação. A Cloudflare publica os limites de upload dependentes do plano e observa que essas configurações podem ser ajustadas dentro das restrições documentadas: página de solução de problemas do erro 413 da Cloudflare . Aumente apenas os limites necessários e teste com um arquivo menor que o limite configurado antes de aumentá-los ainda mais.

8. Verificar acesso, descoberta e federação do cliente

Execute essas verificações a partir de uma máquina fora da rede do seu servidor. Substitua os nomes de host de exemplo:

curl -i https://example.com/.well-known/matrix/client
curl -i https://example.com/.well-known/matrix/server
curl -i https://matrix.example.com/_matrix/client/versions
curl -i https://matrix.example.com/health

As duas primeiras requisições devem retornar HTTP 200, conteúdo JSON e os valores esperados. O documento do cliente deve incluir o cabeçalho CORS. O endpoint de versões do cliente deve retornar JSON do Synapse por meio do Cloudflare. O endpoint de integridade do Synapse retorna HTTP 200 quando acessado por meio de um listener configurado, mas não substitui a verificação de login ou federação.

Em seguida, faça login com um cliente Matrix usando um ID que termine em :example.com, entre em uma sala hospedada em outro local e confirme se as mensagens e as atualizações de membros estão sincronizadas. Use um testador de federação Matrix ou um segundo servidor doméstico para validar a descoberta e a federação do servidor. Uma solicitação bem-sucedida para /_matrix/client/versionsprova apenas que a rota voltada para o cliente funciona; não prova que a descoberta de federação, a assinatura ou a federação de saída estejam corretas.

O que significa sucesso — e quando mudar o design.

  • Os clientes se conectam através do Cloudflare: o DNS resolve para endereços do Cloudflare, o HTTPS usa o certificado pretendido e a API do cliente Matrix retorna uma resposta.
  • A descoberta está correta: ambas as URLs conhecidas retornam o JSON correto e o documento do cliente passa nas verificações de origem cruzada.
  • Funcionamento da federação: um servidor remoto descobre o endpoint anunciado e pode trocar informações sobre o estado da sala. Se a delegação na porta 443 falhar, mas a delegação direta na porta 8448 funcionar, verifique o registro conhecido (WAF), o roteamento do proxy e as regras do WAF.
  • Os uploads funcionam no tamanho esperado: teste com um upload representativo. Se arquivos pequenos forem bem-sucedidos, mas arquivos maiores retornarem erro 413, compare todos os quatro limites de tamanho em vez de alterar apenas o Synapse.
  • A origem não é um caminho público alternativo: solicitações diretas à origem devem ser bloqueadas ou limitadas conforme projetado. Se ainda assim conseguirem chegar ao serviço Matrix, corrija a configuração do firewall e do proxy confiável.

Use a federação somente por DNS na porta 8448 se seus requisitos ou implementação não permitirem o roteamento da federação na porta 443, mas esteja ciente de que isso expõe o endereço de origem e remove a proteção de proxy HTTP do Cloudflare para esse nome de host. O Spectrum é outra opção para portas não padrão, sujeito à disponibilidade do produto e às restrições do plano. O proxy do Cloudflare também significa que o TLS termina no Cloudflare antes de uma segunda conexão TLS com sua origem; a criptografia de ponta a ponta do Matrix protege o conteúdo da mensagem criptografada, mas não oculta os metadados da conexão ou o conteúdo que não está criptografado de ponta a ponta dos serviços que processam a solicitação HTTP. Escolha a topologia com base em seus requisitos de privacidade, federação e disponibilidade e, em seguida, teste novamente após alterações no DNS, certificados, Synapse ou regras do Cloudflare.

Deixar um comentário

10 Melhores Ferramentas de Varredura de Ping para Encontrar Dispositivos na Sua Rede

10 Melhores Ferramentas de Varredura de Ping para Encontrar Dispositivos na Sua Rede

Compare 10 ferramentas de varredura de ping para descoberta rápida de LAN, varredura multiplataforma e gerenciamento de endereços IP. Saiba o que uma varredura pode — e não pode — revelar.

6 Melhores Ferramentas de Gerenciamento de Rede para Monitorar o Desempenho

6 Melhores Ferramentas de Gerenciamento de Rede para Monitorar o Desempenho

Compare seis ferramentas de gerenciamento de rede para monitoramento de desempenho, incluindo cobertura SNMP, mapeamento, alertas, modelos de implantação e custo-benefício.

Melhores analisadores de Wi-Fi para Windows, iOS e Android

Melhores analisadores de Wi-Fi para Windows, iOS e Android

Compare as melhores opções de analisadores de Wi-Fi para Windows, iPhone e Android, incluindo ferramentas para congestionamento de canais, cobertura de sinal, mapas de calor e solução de problemas de rede.

Monitor de Ping: 7 ferramentas gratuitas e de código aberto para disponibilidade de rede

Monitor de Ping: 7 ferramentas gratuitas e de código aberto para disponibilidade de rede

Compare sete monitores de ping gratuitos e de código aberto, desde suítes completas de rede até sondas de latência específicas, e escolha a opção mais adequada para disponibilidade, perda de pacotes e histórico.

Taxa de transferência de rede versus largura de banda: o que significam e como afetam o desempenho

Taxa de transferência de rede versus largura de banda: o que significam e como afetam o desempenho

Veja como a taxa de transferência de rede difere da largura de banda, o que causa desempenho lento ou instável e quais ferramentas podem testar um caminho ou monitorar o tráfego.

Melhor software de servidor SFTP para transferências seguras de arquivos

Melhor software de servidor SFTP para transferências seguras de arquivos

Compare softwares de servidor SFTP confiáveis ​​para Windows e Linux, incluindo OpenSSH, Bitvise, SolarWinds e SFTPGo. Encontre a solução ideal para suas necessidades de segurança e transferência de arquivos.

Melhores práticas de monitoramento de rede: o que monitorar e quais ferramentas usar

Melhores práticas de monitoramento de rede: o que monitorar e quais ferramentas usar

Crie um monitoramento de rede prático com cobertura clara de dispositivos, métricas de desempenho úteis, alertas acionáveis ​​e uma comparação entre SolarWinds NPM, PRTG e OpManager.

As 7 melhores ferramentas de gerenciamento de endereços IP para equipes de rede

As 7 melhores ferramentas de gerenciamento de endereços IP para equipes de rede

Compare sete ferramentas de gerenciamento de endereços IP para descoberta de sub-redes, coordenação de DNS e DHCP, inventário de rede e IPAM de código aberto.

10 Melhores Ferramentas de Varredura de Rede para Descobrir Dispositivos e IPs

10 Melhores Ferramentas de Varredura de Rede para Descobrir Dispositivos e IPs

Compare ferramentas de varredura de rede para descoberta rápida de dispositivos, varreduras de IP multiplataforma e IPAM corporativo, com orientações sobre como escolher a opção mais adequada para sua rede.

6 ferramentas de monitoramento de rede Linux para dispositivos, hosts e tráfego.

6 ferramentas de monitoramento de rede Linux para dispositivos, hosts e tráfego.

Compare seis ferramentas de monitoramento de rede Linux para descoberta de dispositivos SNMP, gráficos de interface, métricas de host, verificação de serviços e fluxos de tráfego.