一、配置PostgreSQL允许远程连接
要让pgAdmin远程访问PostgreSQL,首先需要修改PostgreSQL的核心配置文件,允许其监听所有网络接口并接受远程认证。
/etc/postgresql/13/main/postgresql.conf),找到listen_addresses参数,将其从默认的localhost修改为*,表示允许所有IP地址连接:sudo nano /etc/postgresql/13/main/postgresql.conf
# 修改前:listen_addresses = 'localhost'
# 修改后:listen_addresses = '*'
可选:若需更改默认端口(如改为5433),修改port参数:port = 5433
/etc/postgresql/13/main/pg_hba.conf),在文件末尾添加一行,允许所有IP地址(0.0.0.0/0)通过密码(md5)连接所有数据库:sudo nano /etc/postgresql/13/main/pg_hba.conf
# 添加以下行(可限制IP段,如192.168.1.0/24)
host all all 0.0.0.0/0 md5
sudo systemctl restart postgresql
二、配置Debian防火墙
若系统启用了防火墙(如UFW),需允许PostgreSQL的默认端口(5432)或自定义端口通过:
# 允许5432端口(TCP)
sudo ufw allow 5432/tcp
# 启用防火墙(若未启用)
sudo ufw enable
# 检查防火墙状态
sudo ufw status
三、在pgAdmin中创建远程服务器连接
# 添加pgAdmin仓库
sudo apt install curl ca-certificates gnupg
curl -s https://www.pgadmin.org/static/packages_pgadmin-org.key | sudo tee /usr/share/keyrings/pgadmin-org-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/pgadmin-org-archive-keyring.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list > /dev/null
sudo apt update
# 安装pgAdmin 4
sudo apt install pgadmin4
sudo systemctl start pgadmin4
sudo systemctl enable pgadmin4
http://localhost:5050或系统应用菜单),登录后点击左侧“Servers”→右键“Create”→“Server…”。192.168.1.100)。5432,若修改过则填写自定义端口)。postgres)和密码。四、可选:配置SSL加密(提升安全性)
为避免数据明文传输,建议为PostgreSQL配置SSL:
sudo mkdir -p /etc/postgresql/13/main/ssl
sudo openssl req -new -x509 -days 365 -nodes -text -subj "/CN=postgres" -out /etc/postgresql/13/main/ssl/server.crt -keyout /etc/postgresql/13/main/ssl/server.key
sudo chmod 600 /etc/postgresql/13/main/ssl/server.key
postgresql.conf,添加以下参数:ssl = on
ssl_cert_file = '/etc/postgresql/13/main/ssl/server.crt'
ssl_key_file = '/etc/postgresql/13/main/ssl/server.key'
sudo systemctl restart postgresql
五、常见问题排查
sudo systemctl status postgresql)、防火墙规则(sudo ufw status)、网络连通性(ping <服务器IP>)。pg_hba.conf调整)。