Tạo kết nối data Postgres từ PC với Postgres trên VPS

Làm cách nào để kích hoạt quyền truy cập từ xa vào máy chủ PostgreSQL trên VPS? (Ubuntu)
Để cho phép truy cập từ xa vào máy chủ PostgreSQL:

  1. Kết nối với máy chủ PostgreSQL qua SSH.
  2. Nhận vị trí của postgresql.conf tệp bằng cách thực hiện lệnh (nó dạng như /etc/postgresql/12/main/postgresql.conf ):
sudo -u postgres psql -c 'SHOW config_file'
# output
/etc/postgresql/12/main/postgresql.conf
(1 row)
  1. Mở tệp postgresql.conf và thêm dòng sau vào cuối:
listen_addresses = '*'
  1. Lấy vị trí của tệp pg_hba.conf:
grep pg_hba.conf /etc/postgresql/12/main/postgresql.conf
# output
hba_file = '/etc/postgresql/12/main/pg_hba.conf'        # host-based authentication file

/etc/postgresql/12/main/postgresql.conf là tệp từ đầu ra của bước 2
5. Thêm dòng sau vào cuối tệp /etc/postgresql/12/main/pg_hba.conf:

host all all 203.0.113.22/32 md5
  • 203.0.113.22/32 là IP từ xa được phép kết nối. Nếu bạn muốn cho phép kết nối từ bất kỳ IP nào, hãy chỉ định 0.0.0.0/0
  • md5 là phương thức xác thực, phương thức này yêu cầu máy khách cung cấp mật khẩu băm kép MD5 để xác thực.
  • Người dùng dat.nguyen từ cơ sở dữ liệu example1 chỉ có quyền truy cập vào cơ sở dữ liệu example1.

Đối với các phương pháp xác thực khác, hãy tham khảo tài liệu PostgreSQL .
6. Khởi động lại máy chủ PostgreSQL để áp dụng các thay đổi:

sudo service postgresql restart

Đảm bảo cổng 5432 được mở để truy cập từ bên ngoài.

ss -lnt
# output
...
LISTEN             0                  128                                  0.0.0.0:22                                   0.0.0.0:*
LISTEN             0                  244                                  0.0.0.0:5432                                 0.0.0.0:*
...
  1. Kết nối:
    Có thể sử dụng pgadmin4 để kết nối với Postgresql trên vps, các thông tin cơ bản như sau:
  • ip của vps
  • port (5432)
  • data name
  • user
  • password