debian

如何在Debian上配置pgAdmin远程访问

小樊
44
2025-10-04 00:49:38
栏目: 智能运维

一、配置PostgreSQL允许远程连接
要让pgAdmin远程访问PostgreSQL,首先需要修改PostgreSQL的核心配置文件,允许其监听所有网络接口并接受远程认证。

  1. 修改postgresql.conf文件
    打开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
    
  2. 修改pg_hba.conf文件
    打开PostgreSQL的客户端认证文件(路径同上,如/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
    
  3. 重启PostgreSQL服务
    保存上述文件后,重启PostgreSQL使配置生效:
    sudo systemctl restart postgresql
    

二、配置Debian防火墙
若系统启用了防火墙(如UFW),需允许PostgreSQL的默认端口(5432)或自定义端口通过:

# 允许5432端口(TCP)
sudo ufw allow 5432/tcp
# 启用防火墙(若未启用)
sudo ufw enable
# 检查防火墙状态
sudo ufw status

三、在pgAdmin中创建远程服务器连接

  1. 安装pgAdmin(若未安装)
    推荐通过官方仓库安装pgAdmin 4(支持Web界面):
    # 添加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
    
  2. 启动pgAdmin服务
    若使用systemd,启动pgAdmin并设置开机自启:
    sudo systemctl start pgadmin4
    sudo systemctl enable pgadmin4
    
  3. 创建远程服务器配置
    • 打开pgAdmin(通过浏览器访问http://localhost:5050或系统应用菜单),登录后点击左侧“Servers”→右键“Create”→“Server…”。
    • 在“General”选项卡中,输入服务器名称(如“Remote PostgreSQL”)。
    • 切换至“Connection”选项卡,填写以下信息:
      • Host:远程PostgreSQL服务器的IP地址或域名(如192.168.1.100)。
      • Port:PostgreSQL的端口(默认5432,若修改过则填写自定义端口)。
      • Authentication:选择“Standard”,输入远程PostgreSQL的用户名(如postgres)和密码。
    • 点击“Save”保存配置。
  4. 测试连接
    双击新创建的服务器,若配置正确,pgAdmin将显示远程服务器的数据库列表。

四、可选:配置SSL加密(提升安全性)
为避免数据明文传输,建议为PostgreSQL配置SSL:

  1. 生成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
    
  2. 修改postgresql.conf启用SSL
    打开postgresql.conf,添加以下参数:
    ssl = on
    ssl_cert_file = '/etc/postgresql/13/main/ssl/server.crt'
    ssl_key_file = '/etc/postgresql/13/main/ssl/server.key'
    
  3. 重启PostgreSQL
    sudo systemctl restart postgresql
    
  4. pgAdmin中配置SSL
    在pgAdmin创建服务器时,切换至“SSL”选项卡,勾选“Use SSL”,选择“Verify Full”(严格验证)或“Require”(仅要求SSL),点击“Save”。

五、常见问题排查

0
看了该问题的人还看了