Se eu entendi o layout da rede corretamente, você está entendendo mal como o túnel SSH interage com o NAT. Basicamente, uma vez que o roteador NAT tenha enviado sua conexão SSH do IP externo: 2222 para o privado IP1: 22, o NAT fez sua parte e está fora da equação.
Para obter uma conexão VNC ao segundo computador interno, é necessário tunelar uma conexão que vai da porta 15901 no computador local, pela conexão SSH ao primeiro computador interno e, em seguida, de lá para o segundo computador interno. computador. Você faz isso com ssh -p2222 [email protected] -N -L 15901:privateIP2:5900
.
A parte "privateIP2: 5900" é o que você está perdendo; sua versão está dizendo ao primeiro computador para encaminhar a conexão para si mesmo (127.0.0.1) na porta 5901; não há nada lá, então é rejeitado.
Você não quer a caixa NAT encaminhando as portas 5900 e 5901 para qualquer coisa - que deixaria qualquer VNC nesses computadores de qualquer lugar e ignoraria completamente o túnel SSH.