Dom. Ago 7th, 2022

Una vez que hemos instalado PostgreSQL, sea en ambiente Linux o en ambiente Windows (Windows 10 o Windows 11), es posible que surja la necesidad de permitir el acceso remoto a la base de datos.

En este artículo explicaremos paso por paso cómo configurar el Acceso Remoto PostgreSQL en los diferentes posibles escenarios en los que nos podríamos encontrar.

Cuando se ha instalado PostgreSQL, el acceso a la base de datos está disponible únicamente en modo local.

Esto significa que solo en el dispositivo que hace de servidor de datos es posible acceder a los mismos.

Si intentamos acceder a la base de datos desde otro pc en una intranet o desde una conexión remota a través de internet, debemos configurar la base de datos en modo que reciba/acepte accesos desde direcciones IP fuera de la local (localhost)

Para facilitar la configuración, elije el escenario en el que te encuentres en la siguiente sección.

Configurar Acceso Remoto PostgreSQL en Windows 10

Luego de haber instalado PostgreSQL en Windows 10, abrimos el explorador de archivos y nos colocamos en la carpeta en donde se instaló PostgreSQL.

Por lo general se instala en la ruta:

C:\Program Files\PostgreSQL

En el caso ilustrado en la captura de pantalla anterior, notamos que contamos con una instalación de PostgreSQL versión 13.

Es posible que el dispositivo en el que estemos trabajando, se halla instalado una versión diversa, pero eso poco importa a fines de esta configuración.

Abrimos la carpeta por medio de un doble clic sobre el nombre de la versión.

Una vez dentro, individuamos la carpeta llamada «data» y accedemos. Debemos poder visualizar los archivos: pg_hba.conf  y postgresql.conf

Configuración archivo pg_hba.conf

Procedemos a abrir el archivo pg_hba.conf con un editor de texto cualquiera. Una vez abierto, deslizamos hasta encontrar la sección: # IPv4 local connections

En esa sección, agregaremos una nueva línea con el siguiente contenido:

host all all 0.0.0.0/0 scram-sha-256

El archivo debe verse tal como se muestra en la siguiente captura de pantalla:

Si estás trabajando con una versión precedente de PostgreSQL, es posible que la línea contenga al final en vez de scram-sha-256 el valor md5.

En ese caso es suficiente que cambies el valor para que corresponda al mismo valor:

host all all 0.0.0.0/0 md5

Configuración archivo postgresql.conf

Tal como hicimos con el archivo pg_hba.conf, procedemos a abrir el archivo postgresql.conf con un editor de texto.

Deslizamos el contenido del archivo, hasta que encontremos la sección: # – Connection Settings –

En esta sección debemos asegurarnos que la línea que inicia con listen_addresses no esté comentada (símbolo # al inicio) y que como valor asignado tenga: ‘*’

El hecho que se encuentre el ‘*’ significa que la base de datos va a aceptar conexiones en entrada desde cualquier dirección IP que se la solicite.

Si queremos restringir el acceso remoto a una dirección IP específica, es suficiente escribir dentro de las comillas simples la dirección IP que vamos a permitir.

Si fuese el caso que hay mas direcciones IP individuales, se las debe escribir separadas por una coma (,).

Una vez realizados los cambios, hay que registrar las modificaciones, si se han hecho, del archivo.

Abrir Puerto en el Firewall

Ahora debemos asegurarnos que las conexiones en entrada no sean bloqueadas por el Firewall que tengamos instalado en el dispositivo que hace las veces de servidor de datos.

En el caso de la máquina virtual que estoy utilizando en el ejemplo, el Firewall activo es el que se instala junto con Windows 10 en forma predefinida.

Abrimos entonces la sección del Firewall de Windows 10, escribiendo la palabra firewall en la barra de búsqueda y haciendo clic en la aplicación Firewall de Windows Defender

Una vez hecho clic, se nos abre la sección principal del Firewall de Windows Defender.

Utilizamos la opción Configuración avanzada que encontramos en la parte izquierda del menú que se nos propone.

Se abre una nueva ventana en donde elegiremos siempre en el lado izquierdo la opción Reglas de entrada.

Ahora utilizamos la sección derecha en donde encontramos la opción Nueva regla.

Hacemos clic en la opción Nueva regla y seguimos los siguientes pasos:

Seleccionamos la segunda opción (puerto) y presionamos Siguiente

Dejamos la selección en TCP y en el segundo bloque elegimos Puertos locales específicos. Debemos escribir el puerto especificado en la instalación de PostgreSQL, si no hemos cambiado el puerto predeterminado, el valor debería ser 5432.

hacemos clic en Siguiente

Dejamos la selección en Permitir la conexión. Damos clic en Siguiente.

Clic en Siguiente.

Por último, debemos asignar un nombre a la nueva regla que se va crear. Una vez hecho, presionamos el botón Finalizar.

Hemos creado una regla a nivel del Firewall que permitirá de ahora en adelante las conexiones a través del puerto 5432 (o el que hallamos especificado)

Reinicio del Servicio PostgreSQL

El último paso que debemos dar es el del reinicio del servicio PostgreSQL para que la configuración que acabamos de realizar inicie a funcionar.

Para esto, abriremos los servicios de Windows escribiendo directamente en la barra de búsqueda la palabra servicios y haciendo clic en la aplicación Servicios que se nos muestra entre los resultados de la búsqueda.

En la aplicación servicios, individuamos el motor de la base de datos y entre las opciones que se muestran en la parte izquierda optamos por la que dice Reiniciar el servicio.

Una vez que el servicio se ha reiniciado, ya estamos listos para realizar la prueba de que nuestra configuración fue hecha correctamente. 

Podemos ir a la sección Probar el Acceso Remoto.

Configurar Acceso Remoto PostgreSQL en Windows 11

Luego de haber instalado PostgreSQL en Windows 11, abrimos el explorador de archivos y nos colocamos en la carpeta en donde se instaló PostgreSQL.

Por lo general se instala en la ruta:

C:\Program Files\PostgreSQL

En el caso ilustrado en la captura de pantalla anterior, notamos que contamos con una instalación de PostgreSQL versión 14.

Es posible que el dispositivo en el que estemos trabajando, halla una versión diversa, pero eso poco importa a fines de esta configuración.

Abrimos la carpeta por medio de un doble clic sobre el nombre de la versión.

Al interno de la carpeta, individuamos la carpeta llamada «data» y accedemos. debemos poder visualizar los archivos: pg_hba.conf  y postgresql.conf

Configuración archivo pg_hba.conf

Procedemos a abrir el archivo pg_hba.conf con un editor de texto cualquiera. Una vez abierto, deslizamos hasta encontrar la sección: # IPv4 local connections

En esa sección, agregaremos una nueva línea con el siguiente contenido:

host all all 0.0.0.0/0 scram-sha-256

El archivo debe verse tal como se muestra en la siguiente captura de pantalla:

Si estás trabajando con una versión precedente de PostgreSQL, es posible que la línea contenga al final en vez de scram-sha-256 el valor md5.

En ese caso es suficiente que cambies el valor para que corresponda al mismo valor:

host all all 0.0.0.0/0 md5

Configuración archivo postgresql.conf

Tal como hicimos con el archivo pg_hba.conf, procedemos a abrir el archivo postgresql.conf con un editor de texto.

Deslizamos el contenido del archivo, hasta que encontremos la sección: # – Connection Settings –

En esta sección debemos asegurarnos que la línea que inicia con listen_addresses no esté comentada (símbolo # al inicio) y que como valor asignada tenga: ‘*’

El hecho que se encuentre el ‘*’ significa que la base de datos va a aceptar conexiones en entrada desde cualquier dirección IP que se la solicite.

Si queremos restringir el acceso remoto a una dirección IP específica, es suficiente escribir dentro de las comillas simples la dirección IP que vamos a permitir.

Si fuese el caso que hay mas direcciones IP individuales, se las debe escribir separadas por una coma (,).

Una vez realizados los cambios, hay que registrar las modificaciones, si se han hecho, del archivo.

Abrir Puerto en el Firewall

Ahora debemos asegurarnos que las conexiones en entrada no sean bloqueadas por el Firewall que tengamos instalado en el dispositivo que hace las veces de servidor de datos.

En el caso de la máquina virtual que estoy utilizando en el ejemplo, el Firewall activo es el que se instala junto con Windows 11 en forma predefinida.

Abrimos entonces la sección del Firewall de Windows 11, escribiendo la palabra firewall en la barra de búsqueda y haciendo clic en la aplicación Firewall de Windows Defender

Una vez hecho clic, se nos abre la sección principal del Firewall de Windows Defender.

Utilizamos la opción Configuración avanzada que encontramos en la parte izquierda del menú que se nos propone.

Se abre una nueva ventana en donde elegiremos siempre en el lado izquierdo la opción Reglas de entrada.

Ahora utilizamos la sección derecha en donde encontramos la opción Nueva regla.

Hacemos clic en la opción Nueva regla y seguimos los siguientes pasos:

Seleccionamos la segunda opción (puerto) y presionamos Siguiente

Dejamos la selección en TCP y en el segundo bloque elegimos Puertos locales específicos. Debemos escribir el puerto especificado en la instalación de PostgreSQL, si no hemos cambiado el puerto predeterminado, el valor debería ser 5432.

hacemos clic en Siguiente

Dejamos la selección en Permitir la conexión. Damos clic en Siguiente.

Clic en Siguiente.

Por último, debemos asignar un nombre a la nueva regla que se va crear. Una vez hecho, presionamos el botón Finalizar.

Hemos creado una regla a nivel del Firewall que permitirá de ahora en adelante las conexiones a través del puerto 5432 (o el que hallamos especificado)

Reinicio del Servicio PostgreSQL

El último paso que debemos dar es el del reinicio del servicio PostgreSQL para que la configuración que acabamos de realizar inicie a funcionar.

Para esto, abriremos los servicios de Windows escribiendo directamente en la barra de búsqueda la palabra servicios y haciendo clic en la aplicación Servicios que se nos muestra entre los resultados de la búsqueda.

En la aplicación servicios, individuamos el motor de la base de datos y entre las opciones que se muestran en la parte izquierda optamos por la que dice Reinicia el servicio.

Una vez que el servicio se ha reiniciado, ya estamos listos para realizar la prueba de que nuestra configuración fue hecha correctamente. 

Podemos ir a la sección Probar el Acceso Remoto.

Configurar Acceso Remoto PostgreSQL en Linux

Si has instalado PostgreSQL en Linux, sea en modo gráfico que en modo texto, al igual que en las instalaciones de Windows, debemos acceder a los dos archivos de configuración que sirven para configurar acceso remoto Postgresql

En nuestro caso utilizaremos Linux UBUNTU Server 20.04 en modo texto.

Configuración del archivo pg_hba.conf

Utilizamos un editor de texto para abrir el archivo pg_hba.conf. 

En el caso de nuestro ejemplo utilizaremos el editor nano.

Escribimos el comando:

sudo nano /etc/postgresql/12/main/pg_hba.conf

La ruta en donde se encuentran los archivos de configuración depende de qué versión de PostgreSQL hemos instalado. En el caso del ejemplo tenemos instalado la versión 12.

Una vez que se ha abierto el archivo, nos deslizamos con las flechas del teclado hasta la sección: Una vez abierto, deslizamos hasta encontrar la sección: # IPv4 local connections.

En esa sección, agregaremos una nueva línea con el siguiente contenido:

host all all 0.0.0.0/0 md5

Según sea la versión de PostgreSQL con la que estemos trabajando, es posible que como METHOD encontremos en lugar de md5, el valor scram-sha-256

En ese caso colocamos la línea así:

host all all 0.0.0.0/0 scram-sha-256

Configuración archivo postgresql.conf

Ahora es el turno del segundo archivo de configuración, postgresql.conf.

Ejecutamos el comando:

sudo nano /etc/postgresql/12/main/postgresql.conf

Una vez abierto el archivo, deslizamos el contenido del archivo, hasta que encontremos la sección: # – Connection Settings –

En esta sección debemos asegurarnos que la línea que inicia con listen_addresses no esté comentada (símbolo # al inicio) y que como valor asignada tenga: ‘*’

El hecho que se encuentre el ‘*’ significa que la base de datos va a aceptar conexiones en entrada desde cualquier dirección IP que se la solicite.

Si queremos restringir el acceso remoto a una dirección IP específica, es suficiente escribir dentro de las comillas simples la dirección IP que vamos a permitir.

Si fuese el caso que hay mas direcciones IP individuales, se las debe escribir separadas por una coma (,).

Una vez realizados los cambios, hay que registrar las modificaciones, si se han hecho, del archivo.

Abrir Puerto en Firewall Linux

Antes de proceder a abrir el puerto 5432 (o el que hallamos especificado en fase de instalación), primero verificamos si en nuestro servidor está encendido el firewall.

Para esto ejecutamos el siguiente comando:

sudo ufw status verbose

La ejecución del comando anterior, puede darnos uno de los siguientes resultados:

Si el firewall está inactivo, podemos dirigirnos directamente al reinicio del servicio.

Si queremos en cambio que el firewall se active, ejecutamos el comando:

sudo ufw enable

Si el firewall de Linux está activo y no se muestra en el elenco de puertos el 5432, entonces procedemos a incluirlo ejecutando el siguiente comando:

sudo ufw allow 5432/tcp

Obtendremos un mensaje que confirma el haber agregado el puerto 

y ahora podemos realizar de nuevo la consultación de la situación del firewall.

Como vemos en la captura de pantalla, el servidor de datos está aceptando conexiones a través del puerto 5432 desde cualquier parte del mundo.

Reiniciar el Servicio PostgreSQL - LINUX

Por ultimo, debemos reiniciar el servicio de PostgreSQL para que los cambios que hemos aportado al servidor de datos inicien a funcionar.

Ejecutamos entonces el comando:

sudo systemctl restart postgresql.service

Probar el Acceso Remoto

Una vez que hemos terminado de Configurar el Acceso Remoto PostgreSQL, es el momento de realizar la prueba de una conexión remota, o desde un computador en la intranet o a través de Internet.

Antes de iniciar debemos procurarnos la dirección IP del computador donde se ha instalado la base de datos. Si fuere el caso debemos tener a la mano la dirección IP pública.

En el caso de nuestro ejemplo la dirección IP asignada en la red al computador en el que instalamos PostgreSQL es: 192.168.113.129

Realizar un PING

Si estamos realizando la prueba de acceso remoto a la base de datos en un dispositivo con Windows, independiente de la versión, presionamos la combinación Win+R y en la ventanita que se nos muestra, escribimos cmd y presionamos el botón OK

escribimos el siguiente comando:

ping 192.168.113.129

Recuerda que debes colocar la dirección IP del dispositivo en el que instalaste PostgreSQL.

Deberías obtener un resultado similar al de la captura de pantalla que se muestra a continuación.

Si no estás obteniendo un resultado similar, o vez que el resultado es que no se puede contactar la dirección IP del dispositivo, hay que resolver ese problema.

Probablemente hay algún problema a nivel del cableado de red que hay que resolver antes de proseguir. Asegúrate si no se trata de un servidor con sistema operativo de servidor, de que se ha activado la detección de redes (en ambos dispositivos).

Agregar el Servidor a pgAdmin

pgAdmin es una plataforma de administración y desarrollo de código abierto para PostgreSQL y sus sistemas de administración de bases de datos relacionales. 

Haremos el procedimiento de agregar el servidor de bases de datos a la administración principal dentro de pgAdmin.

Una vez que estamos dentro de la aplicación, sea esta en su Versión de Windows, Linux o iOS, procedemos como explicado a continuación.

Hacemos clic con el botón derecho del ratón en el grupo Server y seguimos  con la opción Register –> Servidor

En la sección que se nos muestra, indicamos un nombre al Servidor que estamos por registrar.

Luego hacemos clic en la pestaña Conexión.

En la primera casilla, indicamos la dirección IP correspondiente, si hemos cambiado al momento de la instalación de PostgreSQL el puerto, lo indicamos, caso contrario lo dejamos con el valor por defecto.

Escribimos la contraseña de acceso y activamos si lo queremos la opción Salvar Contraseña.

Para finalizar, presionamos el botón Salvar.

Si la conexión se logra, se cierra la ventana y en la parte izquierda de pgAdmin se nos muestra el nuevo servidor agregado.

A este punto hemos ya logrado Configurar Acceso Remoto PostgreSQL satisfactoriamente.

Podemos de este momento en adelante utilizar nuestra base de datos para los propósitos que nos hemos fijado.

By Enrique Vásquez B.

Programmatore dal 1988, con la passione per la scrittura di articoli di ogni genere. Attualmente sviluppa per ZEVEN S.A. il Sistema di Fatturazione Elettronica. Ecuadoriano di nascita e italiano di residenza, scrive da Genova, città che ha imparato ad amare tanto quanto la sua natale Guayaquil. Padre di due figli che sono il suo orgoglio e marito di una donna eccezionale.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.