User Tools

Site Tools


proyecto:conexion_externa

This is an old revision of the document!


Conexión Externa

Hay que configurar Postgres para aceptar conexiones desde nuestra aplicación.

Configurar Postgres

Ahora tenemos que configurar Postgres para permitir conexiones externas. Tenemos que cambiar la configuración en dos archivos:

sudo vim /etc/postgresql/13/main/pg_hba.conf

En este archivo, la configuración, por defecto, permite solo conexiones desde localhost. Específicamente, dice:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Tenemos que cambiar esta configuración a la siguiente:

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5
# host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::0/0                  md5
# host    all             all             ::1/128                 md5

… y guardar el archivo. (# indica un comentario, 0.0.0.0/0 indica permitir todo, ::0/0 igualmente).

El segundo archivo que tenemos que cambiar es:

sudo vim /etc/postgresql/11/main/postgresql.conf

En ese archivo, hay que cambiar localhost por * para escuchar a cada IP (no solo localhost):

listen_addresses = '*'                  # what IP address(es) to listen on;

… y guardar el archivo.

Finalmente, hay que recargar la configuración de Postgres. Entonces, en psql, se debería ejecutar:

SELECT pg_reload_conf();

A veces no funciona (no sé porque) pero para tener seguridad, se puede quitar psql y ejecutar:

sudo service postgresql stop
sudo service postgresql start

(Hemos reiniciado Postgres.)

La Contraseña

Ahora tenemos que configurar la contraseña. No es la misma contraseña que la contraseña de SSH para ingresar al servidor. De hecho, en principio no hay una contraseña (en el servidor, Postgres usa los credenciales de SSH por defecto, pero la aplicación se conectará directamente con Postres, no por SSH).

En psql, hay que poner:

\password cc3201

Luego esta contraseña la pueden usar para conectarse desde una aplicación.

Los Puertos

En caso de querer establecer una conexión con Postgres desde otra máquina (por ejemplo, un notebook), el puerto será 55XX donde XX es el número de la máquina. Por ejemplo, si uno estuviera utilizando la máquina 6, y quisiera establecer una conexión con Postgres en esa máquina desde otra máquina, el puerto sería 5506; si estuviera en el máquina 21, sería 5521.

hostname: cc3201.dcc.uchile.cl
puerto: 55XX (donde XX es el número de la máquina)

Si uno quiere establecer una conexión con Postgres en la misma máquina, el puerto será 5432 y el host será localhost. El puerto 55XX no va a funcionar dentro de la misma máquina.

proyecto/conexion_externa.1653701711.txt.gz · Last modified: 2022/05/28 01:35 by ahogan