Назад | Перейти на главную страницу

порт postgresql закрыт для удаленного доступа

Я пытаюсь подключиться к базе данных PostgreSQL на сервере Ubuntu, к которому у меня есть root-доступ, но каким-то образом я не могу открыть порт 5432 для удаленного доступа, только локального. Вот что происходит, когда я использую команду "nmap" на сервере (XXX.XXX.X.XX представляет IP-адрес сервера):

nmap -p 5432 localhost
PORT      STATE  SERVICE 
5432/tcp  open   postgresql


nmap -p 5432 XXX.XXX.X.XX
PORT      STATE  SERVICE 
5432/tcp  closed postgresql

Я уже редактировал файлы «pg_hba.conf» и «postgresql.conf», но это не сработало.

Перемены:

файл pg_hba.conf:

# IPv4 local connections:
host    all             all             all            md5
# IPv6 local connections:
host    all             all             all            md5

файл postgresql.conf:

listen_addresses = '*'

И когда я пытаюсь подключиться к pgAdmin III, он показывает мне вот что:

Сервер не слушает

не удалось подключиться к серверу: соединение отклонено (0x0000274D / 10061) Сервер работает на хосте «XXX.XXX.X.XX» и принимает соединения TCP / IP на порту 5432?

Я пытался открыть порт с помощью команды «ufw», но это тоже не сработало.

Может кто-нибудь помочь мне?

Убедитесь, что ваш брандмауэр не блокирует трафик.

Добавьте следующие правила в свой iptables (измените X.X.X.X на IP-адрес вашего сервера):

# iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d X.X.X.X  --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -p tcp -s X.X.X.X --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Если он работает, сохраните iptables и перезапустите его:

# apt-get install iptables-persistent
# /etc/init.d/iptables restart

Если у вас есть внешний брандмауэр в вашей сети, вы должны разрешить соединение и там.

Примечание по безопасности: Открытие вашего порта PostgreSQL для публики может быть проблемой безопасности. Вам следует рассмотреть возможность ограничения входящего трафика определенным IP-адресом / диапазоном, изменив -s 0/0 параметр в первой команде iptables для -s X.X.X.X/X