|   | GNU/Linux Desktop Survival Guide by Graham Williams |   | |||
| PostgreSQL Remote Access | 
20200819 The default install of PostgreSQL on Ubuntu supports local access only. To allow remote access we need to edit a couple of configurations.
First edit /etc/postgresql/10/main/postgresql.conf to ask PostgreSQL to listen as any IP address (rather than just localhost) by changing the first line we see below to the second line shown.
| #listen_addresses = 'localhost' listen_addresses = '*' | 
Next, edit /etc/postgresql/12/main/pg_hba.conf to allow connections from any IP address by changing the first line to the second:
| #host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 md5 | 
To instead allow connections from a single specific IP address we can
specify that address using a CIDR (see Section ![[*]](crossref.png) ):
):
| host all all 219.113.36.19/32 md5 | 
Your firewall will need to be opened to allow access via port 5432:
| $ sudo ufw allow 5432/tcp | 
Then restart the server:
| $ wajig restart postgresql | 
The users will need a password to connect:
| $ psql psql (12.2 (Ubuntu 12.2-4)) Type "help" for help. kayon=# \password Enter new password: Enter it again: kayon=# \q | 
Then on the remote host connect to the postgresql server:
| 
$ psql -h 123.145.167.89 -d kayon -U kayon
Password for user kayon: 
psql (12.2 (Ubuntu 12.2-4))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
kayon=# SELECT * FROM iris LIMIT 5;
 sepal_length | sepal_width | petal_length | petal_width | species 
--------------+-------------+--------------+-------------+---------
          5.1 |         3.5 |          1.4 |         0.2 | setosa
          4.9 |         3.0 |          1.4 |         0.2 | setosa
          4.7 |         3.2 |          1.3 |         0.2 | setosa
          4.6 |         3.1 |          1.5 |         0.2 | setosa
          5.0 |         3.6 |          1.4 |         0.2 | setosa
(5 rows)
kayon=#
 |