Quando se trabalha com Cloudflare Access no cliente, é comum precisar acessar vários serviços (SSH, RDP, HTTP) simultaneamente. É importante entender que, no cliente:
- Não existe
credentials-file. O cliente apenas ingressa nos túneis já existentes no Cloudflare. - Não é possível usar YAML com múltiplos ingress, pois o cliente não mantém túnel persistente. Cada host/porta precisa ser acessado via comando separado.
Problema
Rodar múltiplos comandos cloudflared access ssh ou rdp de forma sequencial faz com que cada processo espere o anterior subir, impossibilitando o acesso simultâneo.
Solução
A solução é criar um script que inicie múltiplos processos em paralelo, um para cada host/porta.
Windows (Powershell)
$hosts = @(
@{type="ssh"; hostname="ssh1.cliete.com.br"; url="ssh://localhost:2222"},
@{type="ssh"; hostname="ssh2.cliete.com.br"; url="ssh://localhost:2223"},
@{type="rdp"; hostname="rdp.cliete.com.br"; url="rdp://localhost:3389"},
@{type="http"; hostname="painel.cliete.com.br"; url="http://localhost:8080"}
)
foreach ($h in $hosts) {
Start-Process cloudflared -ArgumentList "access $($h.type) --hostname $($h.hostname) --url $($h.url)"
}
Linux (Bash)
#!/bin/bash
hosts=(
"ssh:ssh1.cliete.com.br:ssh://localhost:2222"
"ssh:ssh2.cliete.com.br:ssh://localhost:2223"
"rdp:rdp.cliete.com.br:rdp://localhost:3389"
"http:painel.cliete.com.br:http://localhost:8080"
)
for h in "${hosts[@]}"; do
IFS=':' read type hostname url <<< "$h"
cloudflared access $type --hostname $hostname --url $url &
done
wait
Como funciona
- Cada comando é iniciado em processo independente, permitindo múltiplas conexões ao mesmo tempo.
- O array de hosts organiza os serviços e portas, permitindo escalabilidade fácil.
- Você pode adicionar quantos hosts forem necessários, ajustando apenas o array.
Considerações
- Esse método é específico para o cliente, que apenas consome túneis já existentes.
- O YAML com
tunnel:ecredentials-file:não se aplica no cliente, apenas no servidor/origin que mantém o túnel. - Para ambientes com dezenas de hosts, o script garante que todos fiquem ativos sem travar.
