У меня есть приложение django на виртуальной машине ubuntu, и я не могу получить удаленный доступ к базе данных postgres.

Я развернул приложение на django на GCP в виртуальной машине (ubuntu 22.04 01 LTS)

Приложение работает нормально, база данных - postgresql.

Но я не могу получить удаленный доступ к базе данных, я всегда получаю ошибку таймаута.

Мой settings.py

....
DATABASES = {
    'default': {
        'ENGINE': os.environ.get('DATABASE_ENGINE'),
        'NAME': os.environ.get('DATABASE_NAME'),
        'USER': os.environ.get('DATABASE_USER'),
        'PASSWORD': os.environ.get('DATABASE_PASSWORD'),
        'HOST': os.environ.get('DATABASE_HOST'),
        'PORT': os.environ.get('DATABASE_PORT'),
    }
}
...

Мой .env файл :

# Postgres
DATABASE_ENGINE = 'django.db.backends.postgresql'
DATABASE_NAME = "basededados"
DATABASE_USER = "user"
DATABASE_PASSWORD = "senha"
DATABASE_HOST = "127.0.0.1"
DATABASE_PORT = "5432"

Я создал базу данных следующим образом:

sudo -u postgres psql

CREATE ROLE user WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'senha';

CREATE DATABASE basededados WITH OWNER user;

GRANT ALL PRIVILEGES ON DATABASE basededados TO user;

Я уже настроил файл postgres.conf:

listen_addresses = '*'

И файл pg_hba.conf**:**

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5

Я уже разрешил порт 5432 через брандмауэр, выполнив:

sudo ufw allow 5432/tcp

Я пытаюсь получить доступ к БД следующим образом:

psql -h {Virtual machine IP} -d basededados -U user

ошибка:

psql: error: connection to server at {Virtual machine IP}, port 5432 failed: Connection timed out
        Is the server running on that host and accepting TCP/IP connections?

Я делаю что-то не так?

.env
# Postgres
DATABASE_ENGINE=django.db.backends.postgresql
DATABASE_NAME=basededados
DATABASE_USER=user
DATABASE_PASSWORD=senha
DATABASE_HOST=127.0.0.1
DATABASE_PORT=5432
Вернуться на верх