How do I get HeidiSQL to connect to Postgres databases for the first time?
First of all, make sure you can connect to your PostgreSQL database from your Linux machine itself (if you have two, you'll have everything on both machines). 

You do that using psql:

 psql -h localhost -p 5432 postgres


This assumes psql is in your path; if not... finding where it resides depends on your specific Linux version, PostgreSQL version and installation methods; please, specify them.

If you cannot connect to the database from the local machine... make sure it is running, and that it is the process actually using the 5432 port.



Next, you need to check your PostgreSQL configuration file settings. The file to check is called postgresql.conf. Its location, again, depends on how you installed it. Check Where are my postgres *.conf files?.

In the configuration file, you need to check for the parameteres listen_addresses and port, which indicates PostgreSQL which TCP-IP addresses and ports it should connect to. You might have port 5432 blocked, and PostgreSQL listening to it, but only for your 127.0.0.1 (localhost) IP address, but not listening to the "outside world". The default setting (AFAIK) is to listen only to 'localhost'.

If your Linux box is connected to the outside world through port 192.168.1.2, and you want to use the standard 5432 port, you should have: 

listen_addresses = 'localhost, 192.168.1.2'
port = 5432


If you change any of these parameters, you should stop and restart the PostgreSQL service. [There are alternatives that don't need to stop, but at this point, I think this is the easiest way.]



Once you have PostgreSQL listening to the outside world, you still need to allow connections from users. That is done through the pg_hba.conf file. You need to have some user(s) allowed to connect to your database(s) from some IP address (or some range, or all of them, ...) using a specific authentication method. The most usual settings would look like:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# local net
host    all             all             192.168.1.0/24          md5


This means: all users can connect to all databases using a TCP/IP host on an address 192.168.1.0 .. 192.168.1.255, authenticating using md5 (meaning a password).



If your Linux box uses SELinux/iptables, make sure they allow the connections. Check, for instance Linux: Iptables Allow PostgreSQL server incoming request, or Connect to Postgres remotely, open port 5432 for Postgres in iptables.



If you need to setup SSL for PostgreSQL connections... check Secure TCP/IP Connections with SSL. I would suggest that you use SSL only after you have managed to have insecure (non-SSL) connections first.



Check the firewall in your Windows Machine, and/or any external Firewall between your Windows and your Linux machines. If any of them exists and are active, make sure they allow for communications to port 5432. Your specifics depend a lot on your actual setup. Resource: How to open firewall ports in Windows 10



Make sure you can ping your Linux box from within Windows. If you have telnet on your windows machine, try telnet (ip-of-your-linux-box) 5432 and check also that you can connect (as soon as you type something, you're very likely to get disconnected, that's ok).



At this point, HeidiSQL should be able to connect to your remote Linux machine. (Now, repeat with the 2nd one).