This is most likely due to your router not properly forwarding the connection. You will need to set up Port Forwarding on your router. What is the make/model of your router?
As for your continually changing IP address, broadband Internet Service Providers commonly issue to home users what is known as a
dynamic IP address. Long story short, they change your IP address once in a while for organizational and efficient use of addresses purposes. Stuff you don't need to really worry about. So you don't have to keep looking up your new IP address (which would be rather difficult if it were to change while you were not at home to look it up), you want to set up something on your router known as
Dynamic DNS. Long story short for that, Dynamic DNS will keep track of your ever-shifting public IP address and allow you to use a non-shifting static DNS address (eg: example1.example.com) like an alias, so you don't need to keep looking it up and changing your settings. This feature is dependent on whether your router supports it (most modern routers do). There are two major/popular web services which provide Dynamic DNS for free for home use:
DynDNS and
No-IP.
Note: You will need to install and run a small update client on your computer to let the service know you still actively use it, or else after 30 days the service will automatically expire. These small programs are very small and take almost no resources. They should be kept running at all times (when installing/configuring, it should run when your computer starts up). For DynDNS:
DynDNS Updater. For No-IP:
No-IP DUC.