DNS at Virtualmin not working

So, I rented a Centos VPS and installed Virtualmin in it, right.

Next, I registered a .TK domain at http://dot.tk, created a Virtual Server for it, pointed it to my VPS and voila, the website worked.

But the subdomains won’t. (mail, mx, etc) - the DNS rules at Virtualmin are useless.

I then added the domain as an Off-Site DNS at GoDaddy (More info on why I did that here: https://www.virtualmin.com/documentation/dns/faq), and now the problem is: I can only manage DNS at GoDaddy. If I change DNS at Virtualmin nothing happens.

The question is: How can I register a domain at http://dot.tk and manage it’s DNS rules at Virtualmin?

Okay, pointing an A record to your IP from .tk is always good, but when we get to the point to setup the DNS server on that specific IP is very difficult. You need rDNS first.

I recommend for you to read:
https://help.ubuntu.com/community/BIND9ServerHowto
https://en.wikipedia.org/wiki/Reverse_DNS_lookup

Probably you need to contact your hosting provider and ask for rDNS.
(I must note that, It’s very complicated to setup DNS [specially when you use the sh*t .tk domain # go to namecheap.com and buy for $0.88 cent a domain to yourself)

I use .tk for development websites, I create and delete them all the time

Doesn’t matter your domain. You asked something and I answered. You need an rDNS from your hosting provider.

I have to ask for the company that hosts my VPS to set up rDNS? Now I understood… I’ll do that, thanks!

yes. rDNS from your IP to your hostname (hostname -f). Than create the master zone, setup ns1.yourdomain.tld and ns2.yourdomain.tld. If you have just one IP I recommend to use https://www.1984hosting.com/product/freedns/ for your slave zone. When you get the two IP allow transfer zone from ns1 to ns2. If you need help just ask me.