−25%

på Windows vid årsbetalning, till 31/10. Till paketen

EQVPS

Så installerar du PostgreSQL på en VPS och ansluter säkert

Installera PostgreSQL 16 på Ubuntu, skapa en databas och en användare, och anslut på distans utan att exponera port 5432 mot internet: via SSH-tunnel eller tillåtelselista.

PostgreSQL installeras med ett kommando. Där folk gör fel är fjärråtkomsten: de öppnar port 5432 för hela världen, sätter ett lösenord och undrar sedan varför loggarna är fulla av inloggningsförsök. Den här guiden installerar Postgres på Ubuntu 24.04, skapar en databas och visar två säkra sätt att ansluta utifrån.

1. Installation

apt update && apt install -y postgresql
systemctl status postgresql --no-pager

På Ubuntu 24.04 är det PostgreSQL 16. Som standard lyssnar den bara på localhost; låt det vara så om du inte har ett skäl.

2. Skapa en användare och en databas

sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL

Appar på samma server ansluter med postgresql://app:PASSWORD@localhost:5432/appdb.

3. Anslut från din laptop: SSH-tunnel (rekommenderas)

Inget att öppna, inget att konfigurera på servern. Tunneln vidarebefordrar en lokal port via SSH:

ssh -N -L 5433:localhost:5432 root@203.0.113.10

På en NAT-plan lägger du till din personliga SSH-port från panelen:

ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host

Medan tunneln är uppe pekar du din databasklient mot localhost:5433. SSH krypterar allt och port 5432 förblir stängd mot internet. Grafiska verktyg som DBeaver och pgAdmin har en flik för ”SSH-tunnel” som gör samma sak.

4. Direkt åtkomst för en annan server (tillåtelselista)

Om en applikationsserver någon annanstans måste ansluta direkt, tillåt bara dess IP. Databasservern måste då ligga på en plan med dedikerad IP, eftersom NAT-planer inte tar emot inkommande anslutningar utöver SSH.

I /etc/postgresql/16/main/postgresql.conf:

listen_addresses = '*'

Längst ner i /etc/postgresql/16/main/pg_hba.conf:

hostssl  appdb  app  198.51.100.20/32  scram-sha-256

Öppna brandväggen för just den adressen och starta om:

ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql

hostssl tvingar fram en krypterad anslutning; Ubuntu-paketet levereras med ett självsignerat certifikat, så klienterna ska ansluta med sslmode=require.

5. Förnuftiga första inställningar

För en server med 2 GB RAM, i postgresql.conf:

shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB

Starta om efter ändringen. Det räcker för de flesta små appar; finjustera när du ser riktiga frågor.

6. Backuper

En nattlig dump som sparas i en vecka:

mkdir -p /var/backups/pg && chown postgres /var/backups/pg
cat > /etc/cron.d/pg-backup <<'EOF'
30 3 * * * postgres pg_dump -Fc appdb > /var/backups/pg/appdb-$(date +\%u).dump
EOF

-Fc skapar en komprimerad dump som du återställer med pg_restore. Kopiera också dumparna utanför servern; Managed Backups lägger till dagliga återställningspunkter för hela maskinen.

Relaterat

FAQ

Ska jag öppna port 5432 mot internet?

Helst inte. Exponerade databasportar skannas och utsätts för brute force hela tiden. Anslut via en SSH-tunnel eller, om en applikationsserver måste ansluta direkt, tillåt bara dess IP både i pg_hba.conf och i brandväggen.

Kan jag använda PostgreSQL på en NAT-plan?

Ja. Appar på samma server ansluter lokalt, och du når databasen från din laptop via en SSH-tunnel över din personliga SSH-port. Det en NAT-plan inte kan är att ta emot en direkt inkommande anslutning på 5432 från en annan server.

Hur mycket RAM behöver PostgreSQL?

Den kör på några hundra megabyte och använder allt du ger den som cache. En vanlig startpunkt är shared_buffers runt 25 % av RAM. För databasen till en liten app är 2 GB RAM på servern gott och väl.

Hur säkerhetskopierar jag databasen?

Använd pg_dump i custom-formatet ('pg_dump -Fc') och kör det från cron. Spara även kopior utanför servern. Managed Backups lägger till dagliga återställningspunkter för hela servern.

Vilken version av PostgreSQL får jag?

Ubuntu 24.04 levereras med PostgreSQL 16 och Debian 12 med version 15. För en nyare huvudversion lägger du till PostgreSQL:s officiella apt-förråd (apt.postgresql.org).

Kommentarer

Inga kommentarer än. Bli först.

Lämna en kommentar

Kommentarer modereras innan de visas.