Для настройки подключения к PostgreSQL с использованием "белого" IP-адреса (общедоступного IP-адреса) и учитывая, что стандартный порт занят в Docker и SSL не используется, выполните следующие шаги:
1. Изменение конфигурации PostgreSQL:
- Откройте файл `postgresql.conf`, который обычно находится в каталоге `data` вашего PostgreSQL.
- Установите для параметра `listen_addresses` значение `'*'`, чтобы сервер принимал подключения на всех сетевых интерфейсах.
- Поменяйте стандартный порт 5432 на другой, если он занят (например, на 5433), указав `port = 5433`.
- Сохраните изменения и перезапустите PostgreSQL, чтобы применить настройки.
2. Настройка `pg_hba.conf`:
- Откройте файл `pg_hba.conf`, который также находится в каталоге `data` вашего PostgreSQL.
- Добавьте правила для разрешения подключений из внешних источников. Например, чтобы разрешить подключения для всех пользователей с определённого IP-адреса или подсети без SSL, добавьте следующую строку:
```
host all all <ваш_внешний_ip>/32 trust
```
Или, если вы хотите использовать аутентификацию по паролю:
```
host all all <ваш_внешний_ip>/32 md5
```
- Вместо `<ваш_внешний_ip>` укажите белый IP-адрес, с которого будут происходить подключения, или используйте `0.0.0.0/0` для разрешения подключений со всех адресов (не рекомендуется из соображений безопасности).
- Сохраните изменения и перезапустите PostgreSQL.
3. Настройка Docker (если PostgreSQL работает в контейнере Docker):
- Если стандартный порт занят и вы запускаете PostgreSQL в Docker, убедитесь, что вы определили маппинг портов в вашем `docker run` команде или в `docker-compose.yml` файле правильно:
```
docker run -p <внешний_порт>:<внутренний_порт> ...
```
Внешний порт — это порт на хост-машине, на который будет перенаправляться трафик. Внутренний порт — это порт, на который настроен PostgreSQL (например, 5433).
4. Настройка брандмауэра или маршрутизатора:
- Если вы находитесь за брандмауэром или маршрутизатором, убедитесь, что правила трансляции портов (port forwarding) и правила брандмауэра настроены таким образом, чтобы разрешать входящий трафик на новый порт PostgreSQL.
5. Проверка подключения:
- После конфигурации попробуйте подключиться через pgAdmin или другой инструмент для работы с PostgreSQL, указав соответствующий адрес сервера, порт (новый, если был изменен), имя пользователя и пароль.
Если подключение всё ещё не удаётся, проверьте следующее:
- Запущен ли PostgreSQL и слушает ли он новый порт.
- Правильно ли настроен маппинг портов в Docker.
- Настроены ли правильно брандмауэр и правила маршру