Configurando o Postgres: Não é possível conectar-se remotamente ao servidor Postgres

6

Estou com um problema ao fazer o postgres aceitar conexões do meu outro servidor. Aqui está minha configuração:

  • APP06 (10.55.129.31): servidor executando o Postgres
  • APP05 (10.55.129.30): servidor tentando se conectar ao Postgres

Este é o meu arquivo /var/lib/pgsql/data/pg_hba.conf em app06 :

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         10.55.129.30/32       trust
host    all         all         10.55.129.31/32       trust
host    all         all         0.0.0.0/0             trust
# IPv6 local connections:
host    all         all         ::1/128               trust

Não é exatamente o que eu quero (eu gostaria de usar o LDAP), mas deveria pelo menos funcionar. Quero conectar 10.55.129.30 a 10.44.129.31. A primeira linha host deve ser tudo que eu preciso. A terceira linha host deve permitir uma conexão de qualquer lugar.

Agora, iniciamos o Postgres no app06

 $ /etc/init.d/postgres start
 $ /etc/init.d/postgres status

 pg_ctl: server is running (PID: 30091)
 /usr/bin/postgres "-D" "/var/lib/pgsql/data"

Parece bom ...

Vamos dar uma olhada no Netstat:

$ netstat -nlp | grep 5432
tcp        0      0 127.0.0.1:5432              0.0.0.0:*                   LISTEN      30091/postmaster    
unix  2      [ ACC ]     STREAM     LISTENING     16490154 30091/postmaster    /tmp/.s.PGSQL.5432

Ok ... eu acho ... Não sendo um administrador de sistema real, eu não posso dizer exatamente o que isso significa, mas parece que o PID 30091 (postmaster do processo) tem a porta 5432 aberta.

Vamos ver se alguma coisa está escutando na porta 5432

$ telnet localhost 5432
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.

Ok, a porta 5432 está aberta e aceitando conexões.

Agora, vamos para o APP05 e ver se podemos nos conectar ...

Já tentei executar psql de app05 sem sucesso. Posso falar com o app06 ?

$ ping app06

PING app06 (10.55.129.31) 56(84) bytes of data.
64 bytes from app06 (10.55.129.31): icmp_seq=1 ttl=64 time=0.901 ms
64 bytes from app06 (10.55.129.31): icmp_seq=2 ttl=64 time=0.230 ms

--- app06 ping statistics ---
2 packets transmitted, 6 received, 0% packet loss, time 5001ms

Ok, posso falar com o app06 a partir do app05. Vamos ver se consigo me conectar à porta do Postgres:

$ telnet app06 5432
Trying 10.55.129.31...
telnet: connect to address 10.55.129.31: Connection refused
telnet: Unable to connect to remote host: Connection refused

Não consigo me conectar à porta 5432

Corri /usr/sbin/lokkit e verifiquei que o firewall do software está desativado.

Não sou um administrador de rede ou de sistema por nenhum meio. Eu também não sou administrador do postgres. É muito possível que eu tenha perdido alguma coisa simples e estúpida, mas não sei o quê.

Tenho certeza de que a porta 5432 dessas máquinas está aberta na rede. Eu tentei mudar a porta Postgres para 8999 que eu tenho certeza que não está bloqueada, mas eu recebo o mesmo problema.

Alguma ideia do que estou fazendo errado?

    
por David W. 17.04.2012 / 22:29

3 respostas

17

Abra postgresql.conf em um editor de texto e procure pela palavra-chave listen_addresses . Defina como *

Reinicie o pgsql.

    
por 17.04.2012 / 22:38
5

Apenas FYI ... uma coisa incrivelmente idiota que eu mesmo assim fiz foi esquecer de remover o principal " # " na linha "listen_addresses" no arquivo de configuração quando eu fui mudar isso. (Sim ... portanto, a linha era [ainda] um comentário ! Duh-h-h-hhh.)

    
por 24.04.2012 / 22:21
2

a resposta é muito simples, sua instalação postgress é unida apenas à interface 127.0.0.1

tcp        0      0 127.0.0.1:5432              0.0.0.0:*                   LISTEN      30091/postmaster    

você precisa reconfigurá-lo e vinculá-lo à sua interface de rede / endereço IP e poderá acessar

    
por 17.04.2012 / 22:33

Tags