Q:

SSH using domain name from internal network

I have a home server running Ubuntu 18.04 that hosts some private services.  For access from the outside world, I have a domain that points through my router at my home server.  This way I can access webservices, as well as SSH from anywhere, which works fine. 
When I am at home I would like to use the same domain address to login to my server.  For the webservices this works.  However, I cannot login through SSH from my internal network using the domain.  I get the following message:
ssh: connect to host xyz.abc.com port 22: Connection refused

In the interal network I can only connect with SSH if I use the internal IP address of the server. 
Do I have to set special configurations for SSH somewhere to make this work? 

A:

There's a few ways that this could be configured. 

Have a DNS server for your internal domain that gives internal addresses for hosts in your domain, and forwards requests for other domains to your ISP's name servers.  This answer may be overkill, but it's a relatively straightforward way to do it that could work for your whole home network.  For example, DNS server for LAN. 
Set up a bastion host to the Internet that these requests have to go through.  Configure its firewall to port forward that specific address to the internal host that serves that address. 
Configure the server that is handling that traffic to be a bastion host.  Configure one of its interfaces to also listen to that particular address. 
Configure your hosts files on your internal systems to know the internal IP address for the domain. 
Configure your .ssh/config files on your internal machines to know that host name as the address on the internal network.  ssh config per dns domains

Each of these options is probably an already answered Question somewhere on Stack Exchange, most likely here or Super User, but Stack Overflow is also a possibility.  There are admittedly a lot of similar questions to sift through.