Como acessar sites e serviços locais do ServBay na internet pública usando o Pinggy
Pinggy é uma ferramenta de tunelamento extremamente simples de usar, permitindo romper as barreiras da rede local através de proxy reverso. Com ela, você pode expor com segurança serviços web rodando localmente (como em um ambiente ServBay) para a internet pública. Este guia detalha como utilizar o Pinggy com o ServBay, ajudando desenvolvedores a acessar rapidamente seus serviços web locais pela internet para demonstrações remotas, colaboração em equipe ou recebimento de webhooks, entre outros.
Princípios Técnicos
O Pinggy funciona criando um túnel SSH seguro. Ele direciona portas de serviços rodando localmente (possivelmente por trás de NAT ou firewall) para um servidor público do Pinggy via conexão SSH. Quando alguém acessa a URL pública fornecida pelo Pinggy, as requisições são roteadas de forma segura através do túnel até seu serviço local.
No cenário do ServBay, isso significa que você pode expor um site local rodando no ServBay (por exemplo, https://myproject.servbay.demo
) para uma URL pública facilmente via Pinggy, sem precisar mexer com redirecionamento complexo de portas ou firewalls.
Preparação do ambiente
Você não precisa instalar nenhum software cliente adicional para usar o Pinggy. Basta garantir que:
- ServBay instalado e em execução: Certifique-se de que o ServBay está corretamente instalado e que o site/serviço local que você deseja expor está funcionando.
- Um site ServBay em funcionamento: Um ou mais sites devem estar configurados e ativos no ServBay. Normalmente, eles estarão ouvindo nas portas 80 (HTTP) ou 443 (HTTPS) via Caddy ou Nginx integrados.
- Terminal com SSH: O macOS já inclui um terminal com SSH, ou usando outro emulador de terminal de sua preferência com suporte a SSH.
- Conhecimento básico de SSH: Saber executar comandos SSH no terminal.
Como configurar o túnel
Comando essencial
Para criar um túnel com o Pinggy, basta executar um único comando SSH no terminal. Veja um exemplo de como expor, na internet, um site ServBay acessível localmente via porta 443, com domínio servbay.new
:
bash
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
1
Importante: Substitua XXXXXXXXXXX
pelo seu nome de usuário do Pinggy (obtido no site do Pinggy). servbay.new
deve ser trocado pelo domínio do site local que você quer tornar acessível publicamente (por exemplo: myproject.servbay.demo
).
Entendendo os principais parâmetros do comando:
Componente | Descrição |
---|---|
-p 443 | Especifica que a conexão SSH será feita pela porta 443. Usar a porta HTTPS padrão aumenta a chance de driblar firewalls. |
-R0:localhost:443 | Essencial para o redirecionamento. O 0 faz com que o Pinggy escolha uma porta aleatória pública. O tráfego recebido nesta porta pública é encaminhado para localhost:443 da sua máquina. O Caddy/Nginx do ServBay normalmente escuta na 443 para HTTPS. |
-o StrictHostKeyChecking=no | Desliga a checagem da chave do host SSH. Prático para testes, mas, para produção, recomenda-se validar as chaves por segurança. |
-o ServerAliveInterval=30 | Mantém a conexão ativa enviando pacotes a cada 30 segundos, evitando timeout do SSH por inatividade. |
-t [email protected] | Usuário Pinggy e endereço do servidor. Troque XXXXXXXXXXX pelo seu usuário. |
x:localServerTls:servbay.new | Parâmetro customizado do Pinggy informando que seu serviço local suporta TLS (HTTPS) no domínio indicado (substitua pelo domínio desejado). Ajuda o Pinggy a tratar conexões HTTPS corretamente. |
"u:host:servbay.new" | Outro parâmetro do Pinggy, força o cabeçalho HTTP Host para o domínio informado (substitua pelo seu domínio local). Fundamental para quando há múltiplos sites locais/vhosts configurados no ServBay. |
Após rodar o comando com sucesso, o Pinggy mostrará na tela o endereço público para acesso ao serviço. Normalmente, tanto HTTP quanto HTTPS são fornecidos. Exemplo:
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
1
2
2
Verificando o serviço
Com o túnel ativo, valide o acesso externo assim:
Via
curl
(recomendado): Use o comandocurl
com a opção-I
(apenas cabeçalhos) para testar a URL pública. Troque pelo endereço fornecido pelo Pinggy.bashcurl -I https://rnirh-172-188-50-148.a.free.pinggy.link
1Se estiver tudo certo, verá saída parecida com:
HTTP/1.1 200 OK Connection: close Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Content-Type, Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Origin: * Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private Connection: keep-alive Content-Type: text/html; charset=UTF-8 Date: Tue, 18 Feb 2025 11:51:48 GMT # A data será diferente Expires: Sun, 02 Jan 1990 00:00:00 GMT Pragma: no-cache Server: nginx # Ou caddy, etc., conforme sua configuração ServBay Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Powered-By: PHP/8.4.3 # Ou outra tecnologia
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16O status
HTTP/1.1 200 OK
e o cabeçalhoServer
correto indicam resposta bem-sucedida do seu servidor web local via ServBay.Acesso pelo navegador: Abra a URL HTTPS fornecida pelo Pinggy, em qualquer dispositivo (mesmo fora de sua rede local). O conteúdo deve ser idêntico ao exibido localmente no ServBay.
Resultados esperados:
- Usuários externos conseguem acessar seu site/serviço ServBay local usando a URL do Pinggy.
- Se o serviço local usa HTTPS (por padrão, o ServBay gera certificados autoassinados), o Pinggy também permite HTTPS público, entregando um certificado gratuito assinado por autoridade pública, sem configuração extra.
- A latência e estabilidade dependem de sua conexão local, da rota até o servidor do Pinggy e da carga do serviço Pinggy.
Dicas avançadas
Expondo diferentes portas ou serviços locais: Se seu serviço não é web, ou está em porta diferente da padrão do ServBay, ajuste o parâmetro
-R
. Por exemplo, para expor a porta 8000 (Python, Node.js, etc):bashssh -p 443 -R0:localhost:8000 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected]
1Para serviços não-web (ou que não dependem de cabeçalho
Host
), os parâmetrosx:localServerTls
eu:host
podem ser omitidos.Domínio personalizado (Pinggy Pro): Com o Pinggy Pro, tenha seu próprio domínio no lugar do subdomínio aleatório fornecido. Para detalhes de configuração, siga a documentação oficial do Pinggy.
Tunelamento persistente (usando
autossh
): Conexões SSH podem cair por instabilidade na rede. Para manter o túnel ativo por longos períodos, use oautossh
, que monitora e reconecta automaticamente se cair. Para instalar (no macOS:brew install autossh
), execute:bashautossh -M 0 -t "ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new \"u:host:servbay.new\""
1O argumento
-M 0
instrui o autossh a não usar uma porta extra para monitoramento, confiando no keep-alive nativo do SSH.Comando sem token no terminal: O Pinggy permite comandos sem precisar colocar seu token/nome de usuário no comando - basta pegar o comando de uso único diretamente pelo site. Ideal para compartilhar comandos com terceiros sem riscos de exposição do token.
Casos comuns de uso
- Demonstração remota: Apresente aplicações ou sites locais do ServBay para clientes/equipe sem precisar publicar em staging ou produção.
- Depuração de Webhook: Receba webhooks de serviços externos (ex.: gateways de pagamento, GitHub) diretamente no seu ambiente local para testar e depurar.
- Testes em vários dispositivos: Verifique responsividade e compatibilidade do seu site local em diferentes dispositivos (celular, tablet), mesmo sem eles estarem na mesma LAN.
- Colaboração em equipe: Facilitando o compartilhamento de serviços rodando no seu ambiente local do ServBay entre colegas de equipe para testes e revisões.
Solução de problemas
Problema | Solução |
---|---|
SSH não conecta ou expira | Verifique sua conexão com a internet e se é possível acessar a.pinggy.io . Confira as regras do firewall local (libere a porta 443). Confirme seu usuário do Pinggy. |
URL do Pinggy inacessível ou dá erro (ex: 502 Bad Gateway) | Certifique-se de que o site/serviço do ServBay está rodando e ouvindo em localhost:443 (ou na porta usada no parâmetro -R ). Confirme as configurações do servidor web (Caddy/Nginx) do ServBay. |
Retorno 404 (Not Found) ou página padrão ServBay | Caso tenha múltiplos sites (vhosts), garanta que os parâmetros x:localServerTls e u:host no comando SSH estejam corretamente apontando para o domínio local desejado (ex: myproject.servbay.demo ). Isso direciona o ServBay ao virtual host correto. |
Conexões caindo intermitentemente | Pode ser oscilação da rede ou timeout no SSH. Tente aumentar o valor de ServerAliveInterval ou use o autossh para reconexão automática (veja “Dicas avançadas”). |
Erro de certificado HTTPS | O Pinggy geralmente fornece certificado de Autoridade Certificadora (CA) pública para usuários gratuitos. Se usa certificado autoassinado localmente no ServBay, browsers podem alertar. O certificado público do Pinggy elimina isso para o acesso externo. Se o problema persistir, confira se o serviço exposto está mesmo em HTTPS (escutando na 443). |
Resumo da solução
O Pinggy oferece aos usuários do ServBay uma forma extremamente simples e ágil de expor, com segurança, seus sites e aplicações locais na internet. Os principais benefícios são:
- Sem necessidade de instalar clientes: Processo de configuração rápido e descomplicado.
- Operação com um comando: Crie o túnel rodando apenas um comando SSH.
- HTTPS automático: Receba certificados públicos gratuitos pelo Pinggy, evitando problemas de HTTPS para acesso externo.
- Suporte HTTP e TCP: Exponha diferentes tipos de serviço conforme sua necessidade.
- Ótima integração com ServBay: Exponha facilmente sites locais específicos, ajustando o cabeçalho
Host
. - Comandos sem token: Mais seguro ao compartilhar comandos.
Comparado a soluções mais complexas (com software cliente ou configs pesadas), o Pinggy traz leveza e praticidade para desenvolvedores ServBay com foco em testes rápidos, demonstrações e compartilhamento temporário de serviços locais. Para ambientes comerciais ou com necessidade de domínio personalizado/persistência, o plano pago do Pinggy é recomendado. Combinando o ambiente robusto do ServBay e o acesso externo do Pinggy, sua produtividade e colaboração vão para o próximo nível.