Можно ли организовать DNS через порты на одном ip?
Нет. Через Nginx Proxy это делается.
DNS - это база данных, которая увязывает имя и IP в прямом и обратном направлении. И больше ничего она не умеет. Ну еще соотнести имя с неким комментарием (как в SPF/DKIM делается)