phpIPAM IP 地址管理系统教程

phpIPAM 是一款开源的 IP 地址管理(IPAM)系统,提供可视化的 IP 地址规划、子网管理、VLAN 跟踪、设备关联和网络扫描等功能。随着网络规模的增长,使用电子表格管理 IP 地址越来越不可靠,phpIPAM 可以有效解决这个问题。本文将介绍如何在搬瓦工 VPS 上部署 phpIPAM,并讲解基本的使用方法。

一、功能概述

  • IP 地址管理:IPv4 和 IPv6 地址的分配、跟踪和回收。
  • 子网管理:层级化的子网规划,支持 CIDR 划分和可视化展示。
  • VLAN 管理:VLAN ID 和域的管理与跟踪。
  • 网络扫描:自动扫描子网发现在线主机。
  • REST API:提供完整的 API 接口,支持自动化集成。
  • 权限控制:多用户多角色的访问控制系统。

二、安装依赖

apt update
apt install apache2 php php-mysql php-curl php-gd php-intl php-pear php-imap php-mbstring php-xml php-gmp php-ldap php-cli mariadb-server git fping -y

三、配置数据库

mysql -u root <<MYSQL
CREATE DATABASE phpipam;
CREATE USER 'phpipam'@'localhost' IDENTIFIED BY 'PhpipamPass123';
GRANT ALL PRIVILEGES ON phpipam.* TO 'phpipam'@'localhost';
FLUSH PRIVILEGES;
MYSQL

四、下载安装 phpIPAM

cd /var/www/html
git clone --recursive https://github.com/phpipam/phpipam.git
cd phpipam
git checkout master

# 复制配置文件
cp config.dist.php config.php
nano config.php

修改数据库连接信息:

$db['host'] = 'localhost';
$db['user'] = 'phpipam';
$db['pass'] = 'PhpipamPass123';
$db['name'] = 'phpipam';
$db['port'] = 3306;

五、配置 Apache

cat > /etc/apache2/sites-available/phpipam.conf <<'EOF'

    ServerName ipam.example.com
    DocumentRoot /var/www/html/phpipam

    
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    

EOF

a2ensite phpipam
a2enmod rewrite
systemctl reload apache2

# 设置目录权限
chown -R www-data:www-data /var/www/html/phpipam

六、Web 安装向导

打开浏览器访问 http://你的服务器IP/phpipam,选择「New phpipam installation」开始安装。安装向导会自动导入数据库架构并创建管理员账户。默认管理员账户为 admin,密码为 ipamadmin,首次登录后务必修改密码。

七、使用 Docker 部署

mkdir -p /opt/phpipam && cd /opt/phpipam

cat > docker-compose.yml <<'EOF'
version: "3"
services:
  phpipam-web:
    image: phpipam/phpipam-www:latest
    ports:
      - "8080:80"
    environment:
      TZ: Asia/Shanghai
      IPAM_DATABASE_HOST: phpipam-mariadb
      IPAM_DATABASE_PASS: phpipampassword
      IPAM_DATABASE_WEBHOST: "%"
    restart: unless-stopped
    depends_on:
      - phpipam-mariadb

  phpipam-cron:
    image: phpipam/phpipam-cron:latest
    environment:
      TZ: Asia/Shanghai
      IPAM_DATABASE_HOST: phpipam-mariadb
      IPAM_DATABASE_PASS: phpipampassword
      SCAN_INTERVAL: "1h"
    restart: unless-stopped
    depends_on:
      - phpipam-mariadb

  phpipam-mariadb:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: phpipam
      MYSQL_USER: phpipam
      MYSQL_PASSWORD: phpipampassword
    restart: unless-stopped
    volumes:
      - phpipam-db-data:/var/lib/mysql

volumes:
  phpipam-db-data:
EOF

docker compose up -d

八、基本使用

8.1 创建子网

登录后进入「Subnets」页面,点击「Add subnet」添加子网。输入子网地址(如 192.168.1.0/24)、描述信息和所属 VLAN,phpIPAM 会自动计算子网容量和可用 IP 数量。

8.2 IP 地址分配

在子网详情页面可以看到所有 IP 地址的分配状态。点击空闲 IP 地址可以手动分配,也可以使用「First free」功能自动选择第一个可用 IP。

8.3 网络扫描

# 确保 fping 已安装
apt install fping -y

# 在 phpIPAM 管理界面开启扫描功能
# Administration > Scan agents > Add agent

8.4 REST API 使用

# 获取 API Token
curl -X POST "http://ipam.example.com/api/myapp/user/" \
    --user "admin:password"

# 查询子网信息
curl -X GET "http://ipam.example.com/api/myapp/subnets/" \
    -H "token: your_api_token"

# 获取子网中的 IP 地址列表
curl -X GET "http://ipam.example.com/api/myapp/subnets/1/addresses/" \
    -H "token: your_api_token"

# 创建新的 IP 地址记录
curl -X POST "http://ipam.example.com/api/myapp/addresses/" \
    -H "token: your_api_token" \
    -d "subnetId=1&ip=192.168.1.100&hostname=webserver01&description=Web Server"

九、常见问题

9.1 扫描功能不工作

# 检查 fping 权限
chmod u+s /usr/sbin/fping

# 手动测试扫描
fping -g 192.168.1.0/24 -a

9.2 API 返回 403 错误

在 phpIPAM 管理界面中进入 Administration > API,确保已创建 API 应用并设置了正确的权限。

总结

phpIPAM 是管理 IP 地址资源最实用的开源工具,特别适合网络规模较大、需要精细管理 IP 分配的运维场景。配合 NetBox 基础设施管理 可以实现更全面的网络资源管理。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的优惠,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。