Нет никакой проблемы. Так и должно быть.
Вы пробросили порты на роутере - т.е создали правило, что
все входящие подключения на определенный порт, нужно перенаправлять на Ubuntu server.
Если вы подключаетесь с внешней сети, то роутер отправляет
входящий пакет согласно правилу на Ubuntu server.
Если вы подключаетесь с локальной сети, то
исходящий пакет приходит на адрес роутера, и нет никакого правила, поэтому он его никуда не отправляет.
Если вас не устраивает данная ситуация, есть три выхода- 1)Можно настроить правило проброса портов для исходящих соединений, но задачка нетривиальная на большинстве SOHO роутеров, не везде это можно реализовать. Хотя на нормальном роутере вроде mikrotik это сделать несложно. Гуглите по фразе -
Hairpin NAT2)Ходите на нужный ресурс по локальному адресу.
3)Ходите на нужный ресурс по доменному имени, а в hosts или локальный DNS указываете что это имя соответствует локальному адресу Ubuntu server. Самый простой в исполнении вариант не требующий сложных настроек. Можно гуглить по слову split-dns.