2013-12-15 7 views
4

При попытке подключиться к PostgreSQL с удаленного сервера Windows с помощью pgAdmin 1.16.1 я получаю сообщение «Сервер не прослушивается» с «не удалось подключиться к серверу: Время ожидания подключения (0x0000274C/10060) Сервер работает на хосте «xxx.xx.xxx.xx» и принимает соединения TCP/IP на порту 5432.Сервер PostgreSQL не прослушивает: пробовал все и не удалось

Я запускаю PostgreSQL 9.3 на CentOS 6.4. Вот что я пробовал до сих пор:

  • Я могу получить доступ к базе данных локально с помощью psql --username = postgres. В базе данных есть, он работает, и я могу запросить его
  • В postgresql.conf, я установил

    listen_addresses = '*' 
    port = 5432 
    
  • В pg_hba.conf, у меня есть сервер, который я пытаюсь получить доступ база данных из перечисленных в:

    host all    all    xxx.xx.xxx.0/24   md5 
    
  • SELinux выключен (getenforce получает ответ Disabled)
  • Только в случае, если я добавил порт 5432 на I PTables

    iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT 
    
  • Я пошел в PostgreSQL с PSQL и установить пароль (хотя я убежден, что это был уже установлен правильно)

    ALTER USER postgres WITH PASSWORD '*************'; 
    
  • Typing netstat -an дает эти ссылки на порт 5432 (не уверен, что они актуальны):

    Proto Recv-Q Send-Q Local Address    Foreign Address    State  
    tcp  0  0 0.0.0.0:5432    0.0.0.0:*     LISTEN  
    
    tcp  0  0 :::5432      :::*      LISTEN  
    
    Active UNIX domain sockets (servers and established) 
    Proto RefCnt Flags  Type  State   I-Node Path 
    unix 2  [ ACC ]  STREAM  LISTENING  677454 /tmp/.s.PGSQL.5432 
    
  • Я могу свистеть с удаленного сервера на сервер базы данных

  • У меня нет проблем подключения к другому серверу под управлением PostgreSQL 9.1 на Ubuntu из одного удаленного сервера, используя ту же установку pgAdmin

Я в тупике. Кто-нибудь знает, что еще может быть неправильным? И да, я не забыл перезапустить сервер после изменения файлов конфигурации. Я считаю, что я прочитал все другие сообщения по этому вопросу.

+0

Вы видите что-либо в журналах сервера PostgreSQL при попытке подключения? Если есть сомнения, запустите Wireshark и посмотрите, что происходит на сетевом интерфейсе. –

+0

@CraigRinger Журналы сервера PostgreSQL ничего не показывают при попытке подключения. Запуск 'telnet xxx.xx.xxx.xx 5432' также не подключается, а' telnet xxx.xx.xxx.xx 22' делает. Запускается «telnet localhost 5432» на сервере базы данных. Не знаете, как это интерпретировать. По-прежнему пытаюсь понять, что Wireshark может сделать для меня, но мне не нужно устанавливать его на сервер базы данных - по крайней мере, нет версии Linux. – MiG62

+0

Звучит как брандмауэр. Что касается Wireshark, да, конечно же, это версия Linux! Практически каждый дистрибутив упакован. 'yum install wireshark-gnome' на Fedora; вероятно, то же самое на CentOS. –

ответ

2

Возможно, вы забыли команду "ВЫХОД"?

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

xx.xx.xx.xx - your server IP 
+0

Теперь я добавил выходную строку, но все равно не повезло. – MiG62

+0

@ MiG62: используйте 'iptables -nvL', чтобы узнать, какие правила согласованы. Правила, добавленные с помощью 'iptables -A ...', как показано, неэффективны, если существуют правила REJECT/DROP, которые противодействуют им вверх в цепочке. –

Смежные вопросы