Você está testando dentro de sua própria rede. Você precisa testar o encaminhamento de porta de fora da sua rede.
O encaminhamento de porta apenas reescreve o endereço de destino. Se você testar de dentro, os pacotes de resposta irão diretamente para o destino e o roteador não terá a oportunidade de reescrever o endereço de origem dos pacotes de resposta.
Funciona para o roteador encaminhar suas próprias portas, porque a resposta não precisa voltar pelo roteador para ser NAT porque já está no roteador.
Se você espera que isso funcione dentro da sua própria rede, você precisa fazer um loop de NAT (às vezes chamado NAT hairpin), uma forma de NAT duplo que pode reescrever o endereço de origem e de destino. Isso garante que os pacotes de resposta retornem pelo roteador e também possam ser reescritos.
Veja o que acontece:
1) A máquina interna envia um pacote ao seu endereço IP público. O endereço de origem é o endereço da máquina interna. Como a máquina não tem rota para o endereço IP público, ela a envia ao longo da rota padrão para o roteador.
2) O roteador obtém o pacote e vê que ele corresponde a uma regra de encaminhamento de porta. Ele reescreve o endereço de destino para o endereço interno do servidor e encaminha o pacote para o servidor. O pacote ainda tem o endereço de origem da máquina interna.
3) O servidor forma uma resposta ao pacote. Como o pacote tinha o endereço de origem da máquina interna, a resposta tem o destino da máquina interna. A fonte da resposta é o endereço interno do servidor. Como o destino é local, o pacote não é encaminhado para o roteador, mas diretamente para a máquina local.
4) A máquina de origem recebe a resposta. Mas o endereço de origem da resposta é o endereço interno do servidor, não o endereço para o qual a máquina enviou o pacote original (seu endereço IP público). Então a máquina de origem descarta a resposta.