As listas de portas dos serviços VPN são copiadas entre páginas de comparação sem o detalhe que decide se importam: quem inicia a conexão. Uma regra que permite TCP 443 de saída não diz nada sobre se outro host consegue alcançar um ouvinte na sua máquina. Escreva três requisitos separados antes de comparar um único plano, e marque quais a sua tarefa realmente precisa. A maioria das comparações reduz-se a uma única pergunta curta assim que essa folha existe.

Separe o requisito antes de ler qualquer lista de portas

Três linhas cobrem quase todos os casos: chegar a um destino além do túnel, publicar algo para que outros possam ligar-se para dentro, e transportar o próprio túnel. Cada linha falha por um motivo diferente, e uma política de fornecedor que satisfaz uma pode deixar as outras duas intactas. Classificar a tarefa na linha certa leva cinco minutos e evita uma discussão mais tarde.

LineWho starts itWhat can block itQuestion for the provider
Outbound destinationYour applicationEgress filter on the exit nodeIs this protocol and port allowed to that destination?
Inbound publishingA remote peerNo mapping, no public address, short lifetimeWhich protocol, which external port, and how long does the mapping last?
Tunnel transportYour client to the gatewayThe access network drops that protocolDoes the client offer a fallback the local network permits?

As declarações de marketing confundem as três linhas de propósito. Uma permissão P2P descreve uma política de destino, um endereço dedicado descreve um endereço, e a afirmação de que não há restrições de portas costuma significar que o plano não as enumera. Nenhuma dessas frases responde às outras.

Escolha um fluxo concreto e escreva-o como uma frase: iniciador, transporte, porta, família de endereços, direção. Um cliente de cópias noturno que envia para um host remoto é apenas de saída. Um servidor de jogos na sua secretária ao qual os amigos se ligam é de entrada. Executar ambos por um único túnel significa que a folha precisa das duas linhas, não de um compromisso entre elas.

O acesso de saída falha na política de destino, não no túnel

O tráfego de saída através de um gateway que traduz cria estado. O primeiro pacote de um endereço e uma porta internos constrói uma entrada de tradução, e as respostas correspondem-lhe, que é o comportamento de mapeamento descrito em RFC 3022. Esse mecanismo é a razão pela qual um separador do navegador normalmente funciona sem qualquer pedido de porta.

Duas coisas ainda o quebram. O nó de saída pode filtrar destinos ou números de porta que considere abusáveis, e a aplicação pode estar a escutar numa porta que a política de saída nunca esperou. Pergunte pelo par de destino em vez das regras de entrada, e espere respostas diferentes para TCP e UDP.

Meça antes de discutir. Execute estes comandos na máquina que ficará atrás do túnel, uma vez com o túnel desligado e outra com ele ligado:

ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://example.com

Os mesmos comandos, o mesmo destino, dois estados do túnel, dão a um operador uma comparação antes e depois sobre a qual pode agir. Substitua o endereço de documentação pelo host de que realmente precisa; o que importa é que a comparação se repita, não que algum número pareça impressionante.

A publicação de entrada exige um mapeamento, um endereço e uma duração

Nada de fora pode iniciar uma ligação ao seu ouvinte a menos que algo do lado público saiba onde a entregar. Uma reserva de porta estática mantida pelo operador, um mapeamento pedido pelo cliente através de UPnP, NAT-PMP ou PCP, e um endereço público encaminhado são três produtos diferentes com três limites diferentes.

Faça cinco perguntas a qualquer um deles: que protocolo, que porta externa, se a porta externa pode diferir da local, que família de endereços cobre e quanto sobrevive o mapeamento a uma reconexão. Uma reserva ligada a uma sessão ativa desaparece quando essa sessão termina, diga o que disser a página do plano.

Confirme primeiro a metade local, porque um ouvinte morto e um caminho de entrada bloqueado parecem iguais de fora:

ss -lntup | grep -E ':(8080|51820)\b'
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080

Quando o pedido local devolve 200 e um pedido de uma rede que não controla ainda expira, a lacuna está do lado público. Esse é o momento de dizer ao operador o protocolo e a porta externa em vez de descrever a aplicação pelo nome.

O transporte próprio do túnel é uma pergunta separada

As portas do transportador são a parte mais pequena do problema e a mais fácil de consultar. Os valores predefinidos variam consoante o protocolo, e o que o cliente pode negociar importa mais do que qualquer descrição do plano.

ClientOuter transportDefault portWhen it helps
OpenVPNUDP1194Default mode; needs outbound UDP to pass
OpenVPNTCP443UDP is dropped and TCP 443 is not
WireGuardUDP51820Short handshake; there is no TCP mode
IKEv2/IPsecUDP500 and 4500Mobile clients; 4500 carries NAT traversal

Uma rede que descarta UDP de saída aceitará um túnel TCP 443 e recusará um de UDP, por isso um modo alternativo pertence à folha de requisitos. Mudar o transportador não move uma porta de aplicação dentro do túnel nem alarga uma política de destino; essas ficam nas suas próprias linhas.

A fragmentação merece uma sonda enquanto está lá, porque um túnel que se liga e depois bloqueia em transferências grandes costuma ter um MTU errado mais do que uma porta fechada:

ping -M do -s 1400 203.0.113.10
ping -M do -s 1372 203.0.113.10

No Windows a mesma sonda é ping -f -l 1400 203.0.113.10. Defina o MTU do túnel abaixo do maior tamanho que passa, e depois volte a testar a transferência que falhou.

Verifique as três linhas antes de pagar um plano

Ponha as três linhas numa página e preencha cada célula com um resultado medido em vez de uma promessa. Estes comandos produzem a metade local dessa página em cerca de um minuto:

ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080
ping -M do -s 1400 203.0.113.10

Leia a saída como uma lista de verificação. A saída funciona quando o destino responde com o túnel ativo. A entrada só funciona quando um host fora da sua rede alcança o ouvinte na porta externa. O transportador funciona quando o aperto de mão se completa num protocolo que a sua rede de acesso permite.

Dois hábitos mantêm a folha honesta. Registe a data e a versão do cliente ao lado de cada resultado, porque tanto as políticas dos fornecedores como os valores predefinidos dos clientes se movem. Depois peça o mapeamento mais estreito que serve o fluxo, porque um pedido para abrir tudo costuma obter uma recusa ou uma venda adicional em vez de uma resposta técnica.

Artigos relacionados