O Fast Nat é uma versão estendida baseada no Wenat, suportando HTTP, TCP, UDP, WebSocket e outros protocolos. Simplificando, você pode atribuir um IP público e uma porta ao seu computador intranet, por exemplo:
123.1.1.1:888 -> 192.168.1.123:3306
Quando o pacote de dados é recebido pelo servidor de rede externo, ele será encaminhado para a porta de rede interna 3306, alcançando assim a penetração. O servidor foi transferido, o que é diferente da penetração tradicional de P2P.
O protocolo é uma corda JSON
Ao se conectar ao servidor pela primeira vez, você precisa trazer o token do usuário. Depois que o servidor for válido, ele abrirá duas portas para uso subsequente. No processo subsequente, nenhuma verificação é feita. Embora existam riscos de segurança, aplicativos comuns de TCP: MySQL, MongoDB, Redis etc. têm mecanismos de usuário para proteger.
Três acordos tentativos
| tipo |
|---|
| TCP |
| UDP |
| Http |
Resposta de informação básica
Conecte -se diretamente à porta do servidor de comunicação 8888 sem enviar nenhum dado. Depois do sucesso, responda aos seguintes dados
| Campos | tipo | ilustrar |
|---|---|---|
| eu ia | String (8) | O ID desta sessão |
| outid | String (8) | ID de sessão de soquete externo |
| Intport | int (5) | Porta de conexão da intranet, porta de 5 dígitos, 30000-65535 |
| outport | int (5) | Portas para conexões de rede externas |
| Comando | corda | Comandos de operação |
| protocolo | corda | Tipo de protocolo |
{
id : 'CucfFpk7' ,
intPort : 61289 ,
outPort : 59918 ,
command : 'start_proxy' ,
outId : 'GpNYO5KW'
}Conecte -se ativamente ao servidor
Depois de receber a resposta básica das informações, você recebe a porta da intranet para estabelecer uma conexão TCP e trazer o Outid. O primeiro pacote de dados é um pacote de protocolo e os dados subsequentes são o encaminhamento normal.
| Campos | tipo | ilustrar |
|---|---|---|
| outid | String (8) | ID de sessão de soquete externo |
{
outId : 'GpNYO5KW'
}