Honestly by far the best app I've used for dlink is called Owlr (get the dlink or multi brand app). It will help you discover the cams and also fix the settings to view it externally. It's WAYYYY better than dlinks app (sad to say). I thought it was the cameras but they're actually great pieces of hardware...its just the software they provide is laggy.
Once you've done that keep note of the port that it wants to use. Disconnect your phone from wifi and see if it connects.
If it doesn't it means your port is blocked by your router and you need to do port forwarding.
You can also use this to check ismyportopen . com
If your IP address changes from time to time (usually ISP's lease it to you for some time) then look for a free dns service that will basically give you a webpage that directs to your IP address. You will only need to install a small software on your PC that does regular syncing of your new IP address to that webpage
I use: noip .com
If you have several cameras then I would suggest you fix the cameras to have a static IP, for example:
192.168.1.200 (your local IP range may be different just focus on the last 3 digits)
192.168.1.201
192.168.1.202
and then for the ports name it after the last 3 digits with another digit prefix. for example:
9200 (put this on the camera .200
9201 (on camera with address .201)
9202 (etc)
If your model has a UPnP port forwarding option for HTTP\HTTPS\RTSP then just add another low digit prefix, ie:
39200
39201
39202
That way when you're forwarding ports from the outside, it will know which static IP to go to because you've fixed the IP address of the cameras and uniquely identified different ports for each. The fact that you do it in order makes it easier to remember which one is which.
Note if you use noip then you only need 1 address for your IP and not for each camera
I'll check back on this forum to see if you managed ok