1. 配置PostgreSQL允许远程连接
要让pgAdmin远程访问PostgreSQL数据库,首先需要修改PostgreSQL的核心配置文件,允许其监听所有IP地址并接受远程认证。
postgresql.conf文件(路径通常为/etc/postgresql/<版本>/main/postgresql.conf,如/etc/postgresql/13/main/postgresql.conf),找到listen_addresses参数,将其值从默认的localhost修改为*,表示允许来自任何IP地址的连接。同时确认port参数为默认的5432(若需修改端口,后续pgAdmin配置需同步调整)。/etc/postgresql/<版本>/main/pg_hba.conf),在文件末尾添加一行host all all 0.0.0.0/0 md5,表示允许所有IP地址(0.0.0.0/0)通过MD5加密密码认证连接到所有数据库(all)。如需限制特定IP段,可将0.0.0.0/0替换为具体网段(如192.168.1.0/24)。sudo systemctl restart postgresql命令重启服务,使配置生效。2. 配置Debian防火墙允许PostgreSQL端口
若Debian系统启用了UFW防火墙,需开放PostgreSQL的默认端口(5432),否则远程连接会被拦截。执行以下命令:
sudo ufw allow 5432/tcp
sudo ufw enable # 若防火墙未启用,可执行此命令开启
执行后,使用sudo ufw status命令确认端口已开放。
3. 安装并配置pgAdmin
pgAdmin是PostgreSQL的图形化管理工具,需先在Debian上安装并配置,再创建远程服务器连接。
sudo apt update
sudo apt install pgadmin4
安装过程中会提示设置Web访问密码(用于浏览器登录),若需命令行工具,可选择“仅安装pgAdmin CLI”。pgadmin4),在左侧“服务器”面板右键点击“Servers”,选择“Create”->“Server…”。在弹出的配置窗口中:
Host(IP地址或域名)、Port(默认5432)、Authentication选择“Standard”,输入PostgreSQL用户名(如postgres)和密码;4. 测试远程连接
psql -h <远程服务器IP> -U <用户名> -d <数据库名>(如psql -h 192.168.1.100 -U postgres -d postgres),输入密码后若能进入PostgreSQL命令行,说明连接成功。5. 安全性增强建议
pg_hba.conf中的host规则,将0.0.0.0/0替换为具体IP段(如公司IP或家庭IP),减少非法访问风险;postgresql.conf中的ssl = on,并指定证书路径(ssl_cert_file和ssl_key_file),然后在pgAdmin连接时勾选“Use SSL”选项,确保数据传输加密;