Microsoft Remote Desktop Client Configuration If this should be posted in networking stack overflow please let me know, and sorry if this is not the correct place. I'll delete the question if it's inappropriate.

I have a desktop (windows/linux) that I need to be able to access from my macbook. It is directly connected to my router via ethernet. What information do I need to connect from outside the network? From within my own network I can connect using 10.0.1.9 as the IP address. How do I specify which device on my network I should be connecting to- as using just the public IP address is not enough. Is it a port or is there a gateway I have to configure?
Basically you have to enable port forwarding. Most routers do that, even ones provided by the cable companies.

Briefly the computer you want to get to needs a static IP address (or a DHCP one that doesn't change) within your network. If it stays at 10.0.1.9 that is fine. Then on your router forward any RDP (Windows) requests on port 3389 to the IP address of your computer (10.0.1.9).

While you are in the router doing all the port-forwarding, get the WAN IP address of the router. That is what you will plug into your RDP or VNC clicent when connecting remotely. Note that that WAN IP address is DHCP and depending on your ISP may change at a moments notice. In practice my external IP almost never changed (TWC, Comcast, U-Verse)... YMMV

With Linux you will need to install and configure VNC and forward the VNC port numbers (5800 and 5900) to that computer. Apple's remote desktop is actually VNC but you might have better results with a dedicated VNC client.

Microsoft has an article about just this here