IP地址管理:docker方式部署phpIPAMv1.7.3

     最近做一个项目,需要实现“以方格图的形式,展示指定范围内的IPv4地址或IPv4地址段使用情况,支持IPv4规划使用情况的列表展示,支持导出统计报表文件。支持设置IPv6规划数据的展示方式为树形或表格”。在网上找了一下,发现phpIPAM能满足需求。

一、概述

        phpIPAM(PHP IP Address Management)是一款开源的、基于 Web 的 IP 地址管理系统,专为高效管理 IPv4 和 IPv6 地址空间而设计。它提供直观的图形界面,帮助网络管理员对 IP 地址、子网、VLAN、设备、网络扫描、权限控制等进行全面管理。

核心功能概览

功能类别

主要能力

IP 地址管理

IPv4/IPv6 地址分配、状态跟踪、搜索

子网管理

CIDR 划分、继承、可视化展示

VLAN / VRF 管理

支持 802.1Q VLAN 和 VRF(虚拟路由转发)

自动发现

网络扫描、Ping、SNMP、DHCP 日志分析

用户权限

多用户、角色控制、部门隔离

API 接口

RESTful API,支持自动化集成

高可用与审计

变更日志、邮件通知、LDAP/AD 集成

二、安装部署

2.1下载

docker pull mysql:8.4.5

docker pull phpipam/phpipam-cron:v1.7.3

docker pull  phpipam/phpipam-www:v1.7.3

2.2编辑一个docker-compose.yml文件

services:
  phpipam-web:
    image: phpipam/phpipam-www:v1.7.3
    ports:
      - "8081:80"
    environment:
      - TZ=Asia/Shanghai
      - IPAM_DATABASE_HOST=192.168.1.204
      - IPAM_DATABASE_USER=root
      - IPAM_DATABASE_PASS=root@12345
      - IPAM_DATABASE_NAME=ipam_db
      - OFFLINE_MODE=true
      - IPAM_FOOTER_MESSAGE=北京科技有限公司技术支持
    restart: unless-stopped
    volumes:
      - phpipam-logo:/phpipam/css/images/logo
      - phpipam-ca:/usr/local/share/ca-certificates:ro

  phpipam-cron:
    image: phpipam/phpipam-cron:v1.7.3
    environment:
        - TZ=Asia/Shanghai
        - IPAM_DATABASE_HOST=192.168.1.204
        - IPAM_DATABASE_USER=root
        - IPAM_DATABASE_PASS=root@12345
        - IPAM_DATABASE_NAME=ipam_db
        - SCAN_INTERVAL=1h
    restart: unless-stopped
    volumes:
      - phpipam-ca:/usr/local/share/ca-certificates:ro

volumes:
  phpipam-logo:
  phpipam-ca:

2.3执行

docker-compose up -d

2.4.通过界面进行安装

​​​​​​http://127.0.0.1:8081/

2.5.系统效果

三、参数说明

ENV

Default

WWW/CRON Container

TZ

"UTC"

✅ ✅

IPAM_DISABLE_INSTALLER 

"false"

✅ ❌

IPAM_DATABASE_HOST 

"127.0.0.1"

✅ ✅

IPAM_DATABASE_USER 

"phpipam"

✅ ✅

IPAM_DATABASE_PASS 

"phpipamadmin"

✅ ✅

IPAM_DATABASE_NAME 

"phpipam"

✅ ✅

IPAM_DATABASE_PORT 

3306

✅ ✅

IPAM_DATABASE_WEBHOST 

"localhost"

✅ ✅

IPAM_BASE

"/"

✅ ❌

IPAM_TRUST_X_FORWARDED 

"false"

✅ ❌

PROXY_ENABLED 

false

✅ ✅

PROXY_SERVER 

"myproxy.something.com"

✅ ✅

PROXY_PORT 

8080

✅ ✅

PROXY_USE_AUTH 

false

✅ ✅

PROXY_USER 

"USERNAME"

✅ ✅

PROXY_PASS 

"PASSWORD"

✅ ✅

IPAM_DEBUG 

false

✅ ✅

OFFLINE_MODE 

false

✅ ❌

COOKIE_SAMESITE 

"Lax"

✅ ❌

IPAM_FOOTER_MESSAGE 

""

✅ ❌

IPAM_GMAPS_API_KEY 

""

✅ ❌

SCAN_INTERVAL

"1h"

❌ ✅

1. TZ - 时区设置

默认值: "UTC"

可覆盖: ✅

描述: 设置容器运行的时区(如 "Asia/Shanghai", "Europe/London")

2. IPAM_DISABLE_INSTALLER

默认值: "false"

可覆盖: ✅

描述: 是否禁用 Web 安装向导页面。

安全建议:安装完成后应设为 "true",防止他人重新进入安装流程。

3. IPAM_DATABASE_HOST

默认值: "127.0.0.1"

可覆盖: ✅

描述: MySQL 数据库主机地址。

4. IPAM_DATABASE_USER

默认值: "phpipam"

可覆盖: ✅

描述: 连接 MySQL 的用户名。

✅ 可自定义,但需确保该用户已在 MySQL 中创建并授权。

5. IPAM_DATABASE_PASS

默认值: "phpipamadmin"

可覆盖: ✅

描述: 对应用户的密码。

✅ 建议修改为强密码。

6. IPAM_DATABASE_NAME

默认值: "phpipam"

可覆盖: ✅

描述: 要连接的数据库名称。

✅ 必须提前在 MySQL 中创建此数据库:

CREATE DATABASE phpipam CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

特性

utf8mb3

utf8mb4

✅ 支持最大字节数

3 字节

4 字节

✅ 支持 Unicode 范围

基本多文种平面(BMP)

全 Unicode(包括补充字符)

✅ 包含 emoji?

❌ 不支持

✅ 支持

✅ 包含特殊符号?

❌ 部分数学符号、表情符号不支持

✅ 支持

✅ MySQL 默认(v8.0+)

❌ 已弃用

✅ 是默认字符集

✅ 推荐使用

❌ 不推荐

✅ 强烈推荐

7. IPAM_DATABASE_PORT

默认值: 3306

可覆盖: ✅

描述: MySQL 端口。

✅ 一般无需修改,除非 MySQL 使用非标准端口。

8. IPAM_DATABASE_WEBHOST

默认值: "localhost"

可覆盖: ✅

描述: 允许从哪个主机连接 MySQL。MySQL 用户权限中的 Host 字段会用到。

9. IPAM_BASE

默认值: "/"

可覆盖: ✅

描述: 如果通过反向代理访问(如 Nginx),且路径不是根 /,比如想通过 http://example.com/ipam/ 访问,则设置:

10. IPAM_TRUST_X_FORWARDED

默认值: "false"

可覆盖: ✅

描述: 是否信任反向代理传来的 X-Forwarded-* 头(如客户端真实 IP)。

✅ 如果使用 Nginx、Apache、Traefik 等反向代理,建议开启:

11. PROXY_ENABLED

默认值: false

可覆盖: ✅

描述: 是否启用 HTTP/HTTPS 出站代理(用于 phpIPAM 自身访问外网)。

✅ 仅当服务器无法直连外网时才启用。

12. PROXY_SERVER, PROXY_PORT, PROXY_USE_AUTH, PROXY_USER, PROXY_PASS

用途: 配合 PROXY_ENABLED=true 使用,定义出站代理服务器信息。

13. IPAM_DEBUG

默认值: false

可覆盖: ✅

描述: 是否开启应用调试模式,输出 SQL 错误、日志等。

⚠️ 生产环境务必设为 false,避免敏感信息泄露。

14. OFFLINE_MODE

默认值: false

可覆盖: ✅

描述: 是否禁用所有对外网络请求(如检查更新、CDN 资源加载等)。

✅ 在内网或无互联网环境中建议开启:

OFFLINE_MODE=true

15. COOKIE_SAMESITE

默认值: "Lax"

可覆盖: ✅

描述: Cookie 的 SameSite 属性,增强安全性。

"Lax": 默认,较安全

"Strict": 更严格,跨站完全不发送 cookie

"None": 必须配合 HTTPS 使用

✅ 推荐保持 "Lax",除非有特殊单点登录需求。

16. IPAM_FOOTER_MESSAGE

默认值: ""

可覆盖: ✅

描述: 在每个页面底部显示自定义文本,如版权信息、联系人等。

17. IPAM_GMAPS_API_KEY

默认值: ""

可覆盖: ✅

注意: 该功能已在 v1.5.0 移除,被 OpenStreetMap 替代,因此这个变量已无效。

✅ 无需设置。

18. SCAN_INTERVAL

默认值: "1h"

可覆盖: ✅

描述: 自动扫描网络设备的间隔时间(用于发现在线主机)。

支持值:

5m, 10m, 15m, 30m

1h, 2h, 4h, 6h, 12h

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值