Есть удаленный сервер
Ubuntu к которому я подключаюсь с рабочего компьютера на
Windows через
SSH туннель. На сервере развернута база данных
PostgreSQL. Для подключения к базе данных использую утилиту
HeidiSQL. При подключении к базе данных через SSH все проходит отлично, имею доступ ко всем данным в базе, но при попытках подключение по TCP/IP ничего не выходит и выдает ошибку:
Ту же самую ошибку выдает и python, если пытаюсь подключаться через него.
Вот некоторые команды исполненные с рабочего компьютера на
Windows:
ping {ip сервера}
Обмен пакетами с {ip сервера} по с 32 байтами данных:
Ответ от {ip сервера}: число байт=32 время=16мс TTL=49
Ответ от {ip сервера}: число байт=32 время=6мс TTL=49
Ответ от {ip сервера}: число байт=32 время=10мс TTL=49
Ответ от {ip сервера}: число байт=32 время=13мс TTL=49
Статистика Ping для {ip сервера}:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 6мсек, Максимальное = 16 мсек, Среднее = 11 мсек
telnet {ip сервера} 5432
<Выдает пустой экран>
Вот некоторые команды исполненные на сервере
Ubuntu:
ping {ip рабочего компьютера}
PING {ip рабочего компьютера} ({ip рабочего компьютера}) 56(84) bytes of data.
64 bytes from {ip рабочего компьютера}: icmp_seq=1 ttl=53 time=73.5 ms
64 bytes from {ip рабочего компьютера}: icmp_seq=2 ttl=53 time=71.5 ms
64 bytes from {ip рабочего компьютера}: icmp_seq=3 ttl=53 time=71.5 ms
64 bytes from {ip рабочего компьютера}: icmp_seq=4 ttl=53 time=71.4 ms
^C
--- {ip рабочего компьютера} ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 71.372/71.970/73.485/0.876 ms
telnet {ip рабочего компьютера} 5432
Trying {ip рабочего компьютера}...
telnet: Unable to connect to remote host: Connection timed out
Фаервол ufw на сервере Ubuntu был отключен, включал его и прописывал ему порты, вот такой статус получается:
sudo ufw status
Status: active
To Action From
-- ------ ----
5000 ALLOW Anywhere
5432/tcp ALLOW Anywhere
Anywhere ALLOW {ip рабочего компьютера}
22 ALLOW Anywhere
5432 ALLOW Anywhere
55525 ALLOW Anywhere
Anywhere ALLOW {другой ip}
55525 ALLOW {ip рабочего компьютера}
5000 (v6) ALLOW Anywhere (v6)
5432/tcp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
5432 (v6) ALLOW Anywhere (v6)
55525 (v6) ALLOW Anywhere (v6)
Также на сервере прописывал команду
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
Вот статус самой базы данных PostgreSQL:
sudo tail -f /var/log/postgresql/postgresql-12-main.log
2024-11-12 13:21:21.312 UTC [1872] LOG: aborting any active transactions
2024-11-12 13:21:21.317 UTC [1872] LOG: background worker "logical replication launcher" (PID 1879) exited with exit code 1
2024-11-12 13:21:21.317 UTC [1874] LOG: shutting down
2024-11-12 13:21:21.330 UTC [1872] LOG: database system is shut down
2024-11-12 13:21:21.509 UTC [5727] LOG: starting PostgreSQL 12.20 (Ubuntu 12.20-0ubuntu0.20.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit
2024-11-12 13:21:21.509 UTC [5727] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-11-12 13:21:21.509 UTC [5727] LOG: listening on IPv6 address "::", port 5432
2024-11-12 13:21:21.510 UTC [5727] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-11-12 13:21:21.530 UTC [5728] LOG: database system was shut down at 2024-11-12 13:21:21 UTC
2024-11-12 13:21:21.536 UTC [5727] LOG: database system is ready to accept connections
sudo systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2024-11-12 13:21:23 UTC; 2min 11s ago
Process: 5745 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5745 (code=exited, status=0/SUCCESS)
Nov 12 13:21:23 BI systemd[1]: Starting PostgreSQL RDBMS...
Nov 12 13:21:23 BI systemd[1]: Finished PostgreSQL RDBMS.
В файле
/etc/postgresql/12/main/postgresql.conf прописано:
listen_addresses = '*'
port = 5432
В файле
/etc/postgresql/12/main/pg_hba.conf прописано:
# Database administrative login by Unix domain socket
host all all 0.0.0.0/0 md5
host all all ::/0 md5
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
host all all all md5
При подключении к базе данных в самом Ubuntu через локальный хост все работает отлично.